aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/restricted/boost
diff options
context:
space:
mode:
authorbugaevskiy <bugaevskiy@yandex-team.com>2022-09-12 23:05:41 +0300
committerbugaevskiy <bugaevskiy@yandex-team.com>2022-09-12 23:05:41 +0300
commit87c7569ea3c8aa5d371e9e3d15a8668c5cfcc4fc (patch)
tree9fd6fc04a73a1a71a82d73aaad66c86169ba9da0 /contrib/restricted/boost
parent7bde144e5863025eed4f1d14dd4c87568d419d0d (diff)
downloadydb-87c7569ea3c8aa5d371e9e3d15a8668c5cfcc4fc.tar.gz
Reimport boost/uuid as a separate project
Diffstat (limited to 'contrib/restricted/boost')
-rw-r--r--contrib/restricted/boost/CMakeLists.txt2
-rw-r--r--contrib/restricted/boost/assign/LICENSE23
-rw-r--r--contrib/restricted/boost/assign/README.md33
-rw-r--r--contrib/restricted/boost/boost/uuid/basic_name_generator.hpp166
-rw-r--r--contrib/restricted/boost/boost/uuid/detail/config.hpp74
-rw-r--r--contrib/restricted/boost/boost/uuid/detail/md5.hpp342
-rw-r--r--contrib/restricted/boost/boost/uuid/detail/random_provider.hpp75
-rw-r--r--contrib/restricted/boost/boost/uuid/detail/random_provider_arc4random.ipp32
-rw-r--r--contrib/restricted/boost/boost/uuid/detail/random_provider_bcrypt.ipp79
-rw-r--r--contrib/restricted/boost/boost/uuid/detail/random_provider_detect_platform.hpp62
-rw-r--r--contrib/restricted/boost/boost/uuid/detail/random_provider_getentropy.ipp37
-rw-r--r--contrib/restricted/boost/boost/uuid/detail/random_provider_include_platform.hpp27
-rw-r--r--contrib/restricted/boost/boost/uuid/detail/random_provider_posix.ipp95
-rw-r--r--contrib/restricted/boost/boost/uuid/detail/random_provider_wincrypt.ipp82
-rw-r--r--contrib/restricted/boost/boost/uuid/detail/sha1.hpp239
-rw-r--r--contrib/restricted/boost/boost/uuid/detail/uuid_generic.ipp51
-rw-r--r--contrib/restricted/boost/boost/uuid/detail/uuid_x86.ipp135
-rw-r--r--contrib/restricted/boost/boost/uuid/entropy_error.hpp45
-rw-r--r--contrib/restricted/boost/boost/uuid/name_generator.hpp38
-rw-r--r--contrib/restricted/boost/boost/uuid/name_generator_md5.hpp25
-rw-r--r--contrib/restricted/boost/boost/uuid/name_generator_sha1.hpp26
-rw-r--r--contrib/restricted/boost/boost/uuid/nil_generator.hpp34
-rw-r--r--contrib/restricted/boost/boost/uuid/random_generator.hpp176
-rw-r--r--contrib/restricted/boost/boost/uuid/sha1.hpp16
-rw-r--r--contrib/restricted/boost/boost/uuid/string_generator.hpp198
-rw-r--r--contrib/restricted/boost/boost/uuid/uuid.hpp212
-rw-r--r--contrib/restricted/boost/boost/uuid/uuid_generators.hpp19
-rw-r--r--contrib/restricted/boost/boost/uuid/uuid_io.hpp198
-rw-r--r--contrib/restricted/boost/boost/uuid/uuid_serialize.hpp20
-rw-r--r--contrib/restricted/boost/coroutine/include/boost/coroutine/detail/config.hpp13
-rw-r--r--contrib/restricted/boost/coroutine/include/boost/coroutine/detail/preallocated.hpp2
-rw-r--r--contrib/restricted/boost/coroutine/include/boost/coroutine/exceptions.hpp2
-rw-r--r--contrib/restricted/boost/coroutine/include/boost/coroutine/stack_context.hpp4
-rw-r--r--contrib/restricted/boost/coroutine/src/posix/stack_traits.cpp38
-rw-r--r--contrib/restricted/boost/property_tree/README.md22
-rw-r--r--contrib/restricted/boost/property_tree/include/boost/property_tree/exceptions.hpp8
-rw-r--r--contrib/restricted/boost/uuid/CMakeLists.txt31
-rw-r--r--contrib/restricted/boost/uuid/README.md62
38 files changed, 202 insertions, 2541 deletions
diff --git a/contrib/restricted/boost/CMakeLists.txt b/contrib/restricted/boost/CMakeLists.txt
index 146e6959b0..838cb90dad 100644
--- a/contrib/restricted/boost/CMakeLists.txt
+++ b/contrib/restricted/boost/CMakeLists.txt
@@ -86,6 +86,7 @@ add_subdirectory(ublas)
add_subdirectory(units)
add_subdirectory(unordered)
add_subdirectory(utility)
+add_subdirectory(uuid)
add_subdirectory(variant)
add_subdirectory(winapi)
add_subdirectory(xpressive)
@@ -152,6 +153,7 @@ target_link_libraries(contrib-restricted-boost INTERFACE
restricted-boost-units
restricted-boost-unordered
restricted-boost-utility
+ restricted-boost-uuid
restricted-boost-variant
restricted-boost-winapi
restricted-boost-xpressive
diff --git a/contrib/restricted/boost/assign/LICENSE b/contrib/restricted/boost/assign/LICENSE
new file mode 100644
index 0000000000..36b7cd93cd
--- /dev/null
+++ b/contrib/restricted/boost/assign/LICENSE
@@ -0,0 +1,23 @@
+Boost Software License - Version 1.0 - August 17th, 2003
+
+Permission is hereby granted, free of charge, to any person or organization
+obtaining a copy of the software and accompanying documentation covered by
+this license (the "Software") to use, reproduce, display, distribute,
+execute, and transmit the Software, and to prepare derivative works of the
+Software, and to permit third-parties to whom the Software is furnished to
+do so, all subject to the following:
+
+The copyright notices in the Software and this entire statement, including
+the above license grant, this restriction and the following disclaimer,
+must be included in all copies of the Software, in whole or in part, and
+all derivative works of the Software, unless such copies or derivative
+works are solely in the form of machine-executable object code generated by
+a source language processor.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
+SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
+FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
diff --git a/contrib/restricted/boost/assign/README.md b/contrib/restricted/boost/assign/README.md
new file mode 100644
index 0000000000..225ec10b99
--- /dev/null
+++ b/contrib/restricted/boost/assign/README.md
@@ -0,0 +1,33 @@
+Assign, part of collection of the [Boost C++ Libraries](http://github.com/boostorg), makes it easy to fill containers with data by overloading operator() and operator()().
+
+### License
+
+Distributed under the [Boost Software License, Version 1.0](http://www.boost.org/LICENSE_1_0.txt).
+
+### Properties
+
+* C++03
+* Header Only
+
+### Build Status
+
+Branch | GHA CI | Appveyor | Coverity Scan | codecov.io | Deps | Docs | Tests |
+:-------------: | ------ | -------- | ------------- | ---------- | ---- | ---- | ----- |
+[`master`](https://github.com/boostorg/assign/tree/master) | [![Build Status](https://github.com/boostorg/assign/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/boostorg/assign/actions?query=branch:master) | [![Build status](https://ci.appveyor.com/api/projects/status/a8pip7fvp609f0v2/branch/master?svg=true)](https://ci.appveyor.com/project/jeking3/assign-4i3tt/branch/master) | [![Coverity Scan Build Status](https://scan.coverity.com/projects/16318/badge.svg)](https://scan.coverity.com/projects/boostorg-assign) | [![codecov](https://codecov.io/gh/boostorg/assign/branch/master/graph/badge.svg)](https://codecov.io/gh/boostorg/assign/branch/master)| [![Deps](https://img.shields.io/badge/deps-master-brightgreen.svg)](https://pdimov.github.io/boostdep-report/master/assign.html) | [![Documentation](https://img.shields.io/badge/docs-master-brightgreen.svg)](http://www.boost.org/doc/libs/master/doc/html/assign.html) | [![Enter the Matrix](https://img.shields.io/badge/matrix-master-brightgreen.svg)](http://www.boost.org/development/tests/master/developer/assign.html)
+[`develop`](https://github.com/boostorg/assign/tree/develop) | [![Build Status](https://github.com/boostorg/assign/actions/workflows/ci.yml/badge.svg?branch=develop)](https://github.com/boostorg/assign/actions?query=branch:develop) | [![Build status](https://ci.appveyor.com/api/projects/status/a8pip7fvp609f0v2/branch/develop?svg=true)](https://ci.appveyor.com/project/jeking3/assign-4i3tt/branch/develop) | [![Coverity Scan Build Status](https://scan.coverity.com/projects/16318/badge.svg)](https://scan.coverity.com/projects/boostorg-assign) | [![codecov](https://codecov.io/gh/boostorg/assign/branch/develop/graph/badge.svg)](https://codecov.io/gh/boostorg/assign/branch/develop) | [![Deps](https://img.shields.io/badge/deps-develop-brightgreen.svg)](https://pdimov.github.io/boostdep-report/develop/assign.html) | [![Documentation](https://img.shields.io/badge/docs-develop-brightgreen.svg)](http://www.boost.org/doc/libs/develop/doc/html/assign.html) | [![Enter the Matrix](https://img.shields.io/badge/matrix-develop-brightgreen.svg)](http://www.boost.org/development/tests/develop/developer/assign.html)
+
+### Directories
+
+| Name | Purpose |
+| ----------- | ------------------------------ |
+| `doc` | documentation |
+| `include` | headers |
+| `test` | unit tests |
+
+### More information
+
+* [Ask questions](http://stackoverflow.com/questions/ask?tags=c%2B%2B,boost,boost-assign)
+* [Report bugs](https://github.com/boostorg/assign/issues): Be sure to mention Boost version, platform and compiler you're using. A small compilable code sample to reproduce the problem is always good as well.
+* Submit your patches as pull requests against **develop** branch. Note that by submitting patches you agree to license your modifications under the [Boost Software License, Version 1.0](http://www.boost.org/LICENSE_1_0.txt).
+* Discussions about the library are held on the [Boost developers mailing list](http://www.boost.org/community/groups.html#main). Be sure to read the [discussion policy](http://www.boost.org/community/policy.html) before posting and add the `[assign]` tag at the beginning of the subject line.
+
diff --git a/contrib/restricted/boost/boost/uuid/basic_name_generator.hpp b/contrib/restricted/boost/boost/uuid/basic_name_generator.hpp
deleted file mode 100644
index e82b5f92bb..0000000000
--- a/contrib/restricted/boost/boost/uuid/basic_name_generator.hpp
+++ /dev/null
@@ -1,166 +0,0 @@
-// Boost basic_name_generator.hpp header file -----------------------//
-
-// Copyright 2010 Andy Tompkins.
-// Copyright 2017 James E. King III
-
-// Distributed under the 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_UUID_BASIC_NAME_GENERATOR_HPP
-#define BOOST_UUID_BASIC_NAME_GENERATOR_HPP
-
-#include <boost/config.hpp>
-#include <boost/cstdint.hpp>
-#include <boost/static_assert.hpp>
-#include <boost/uuid/uuid.hpp>
-#include <cstring> // for strlen, wcslen
-#include <string>
-
-#ifdef BOOST_HAS_PRAGMA_ONCE
-#pragma once
-#endif
-
-#ifdef BOOST_NO_STDC_NAMESPACE
-namespace std {
- using ::size_t;
- using ::strlen;
- using ::wcslen;
-} //namespace std
-#endif //BOOST_NO_STDC_NAMESPACE
-
-namespace boost {
-namespace uuids {
-
-//! \brief Generate a name based UUID using
-//! the provided hashing algorithm that
-//! implements the NameHashProvider concept.
-template<class HashAlgo>
-class basic_name_generator
-{
- public:
- typedef uuid result_type;
- typedef typename HashAlgo::digest_type digest_type;
-
- explicit basic_name_generator(uuid const& namespace_uuid_)
- : namespace_uuid(namespace_uuid_)
- {}
-
- uuid operator()(const char* name) const {
- HashAlgo hash;
- hash.process_bytes(namespace_uuid.begin(), namespace_uuid.size());
- process_characters(hash, name, std::strlen(name));
- return hash_to_uuid(hash);
- }
-
- uuid operator()(const wchar_t* name) const {
- HashAlgo hash;
- hash.process_bytes(namespace_uuid.begin(), namespace_uuid.size());
- process_characters(hash, name, std::wcslen(name));
- return hash_to_uuid(hash);
- }
-
- template <typename ch, typename char_traits, typename alloc>
- uuid operator()(std::basic_string<ch, char_traits, alloc> const& name) const {
- HashAlgo hash;
- hash.process_bytes(namespace_uuid.begin(), namespace_uuid.size());
- process_characters(hash, name.c_str(), name.length());
- return hash_to_uuid(hash);
- }
-
- uuid operator()(void const* buffer, std::size_t byte_count) const {
- HashAlgo hash;
- hash.process_bytes(namespace_uuid.begin(), namespace_uuid.size());
- hash.process_bytes(buffer, byte_count);
- return hash_to_uuid(hash);
- };
-
-private:
- // we convert all characters to uint32_t so that each
- // character is 4 bytes regardless of sizeof(char) or
- // sizeof(wchar_t). We want the name string on any
- // platform / compiler to generate the same uuid
- // except for char
- template <typename char_type>
- void process_characters(HashAlgo& hash, char_type const*const characters, std::size_t count) const {
- BOOST_STATIC_ASSERT(sizeof(uint32_t) >= sizeof(char_type));
-
- for (std::size_t i=0; i<count; i++) {
- std::size_t c = characters[i];
- hash.process_byte(static_cast<unsigned char>((c >> 0) & 0xFF));
- hash.process_byte(static_cast<unsigned char>((c >> 8) & 0xFF));
- hash.process_byte(static_cast<unsigned char>((c >> 16) & 0xFF));
- hash.process_byte(static_cast<unsigned char>((c >> 24) & 0xFF));
- }
- }
-
- void process_characters(HashAlgo& hash, char const*const characters, std::size_t count) const {
- hash.process_bytes(characters, count);
- }
-
- uuid hash_to_uuid(HashAlgo& hash) const
- {
- digest_type digest;
- hash.get_digest(digest);
-
- BOOST_STATIC_ASSERT(sizeof(digest_type) >= 16);
-
- uuid u;
- for (int i=0; i<4; ++i) {
- *(u.begin() + i*4+0) = static_cast<uint8_t>((digest[i] >> 24) & 0xFF);
- *(u.begin() + i*4+1) = static_cast<uint8_t>((digest[i] >> 16) & 0xFF);
- *(u.begin() + i*4+2) = static_cast<uint8_t>((digest[i] >> 8) & 0xFF);
- *(u.begin() + i*4+3) = static_cast<uint8_t>((digest[i] >> 0) & 0xFF);
- }
-
- // set variant: must be 0b10xxxxxx
- *(u.begin()+8) &= 0xBF;
- *(u.begin()+8) |= 0x80;
-
- // set version
- unsigned char hashver = hash.get_version();
- *(u.begin()+6) &= 0x0F; // clear out the relevant bits
- *(u.begin()+6) |= (hashver << 4); // and apply them
-
- return u;
- }
-
-private:
- uuid namespace_uuid;
-};
-
-namespace ns {
-
-BOOST_FORCEINLINE uuid dns() {
- uuid result = {{
- 0x6b, 0xa7, 0xb8, 0x10, 0x9d, 0xad, 0x11, 0xd1 ,
- 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8 }};
- return result;
-}
-
-BOOST_FORCEINLINE uuid url() {
- uuid result = {{
- 0x6b, 0xa7, 0xb8, 0x11, 0x9d, 0xad, 0x11, 0xd1 ,
- 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8 }};
- return result;
-}
-
-BOOST_FORCEINLINE uuid oid() {
- uuid result = {{
- 0x6b, 0xa7, 0xb8, 0x12, 0x9d, 0xad, 0x11, 0xd1 ,
- 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8 }};
- return result;
-}
-
-BOOST_FORCEINLINE uuid x500dn() {
- uuid result = {{
- 0x6b, 0xa7, 0xb8, 0x14, 0x9d, 0xad, 0x11, 0xd1 ,
- 0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8 }};
- return result;
-}
-
-} // ns
-} // uuids
-} // boost
-
-#endif // BOOST_UUID_BASIC_NAME_GENERATOR_HPP
diff --git a/contrib/restricted/boost/boost/uuid/detail/config.hpp b/contrib/restricted/boost/boost/uuid/detail/config.hpp
deleted file mode 100644
index 602d4ab6af..0000000000
--- a/contrib/restricted/boost/boost/uuid/detail/config.hpp
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright Andrey Semashev 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)
- */
-/*!
- * \file uuid/detail/config.hpp
- *
- * \brief This header defines configuration macros for Boost.UUID.
- */
-
-#ifndef BOOST_UUID_DETAIL_CONFIG_HPP_INCLUDED_
-#define BOOST_UUID_DETAIL_CONFIG_HPP_INCLUDED_
-
-#include <boost/config.hpp>
-
-#ifdef BOOST_HAS_PRAGMA_ONCE
-#pragma once
-#endif
-
-#if !defined(BOOST_UUID_NO_SIMD)
-
-#if defined(__GNUC__) && defined(__SSE2__)
-
-// GCC and its pretenders go here
-#ifndef BOOST_UUID_USE_SSE2
-#define BOOST_UUID_USE_SSE2
-#endif
-
-#if defined(__SSE3__) && !defined(BOOST_UUID_USE_SSE3)
-#define BOOST_UUID_USE_SSE3
-#endif
-
-#if defined(__SSE4_1__) && !defined(BOOST_UUID_USE_SSE41)
-#define BOOST_UUID_USE_SSE41
-#endif
-
-#elif defined(_MSC_VER)
-
-#if (defined(_M_X64) || (defined(_M_IX86) && defined(_M_IX86_FP) && _M_IX86_FP >= 2)) && !defined(BOOST_UUID_USE_SSE2)
-#define BOOST_UUID_USE_SSE2
-#endif
-
-#if defined(__AVX__)
-#if !defined(BOOST_UUID_USE_SSE41)
-#define BOOST_UUID_USE_SSE41
-#endif
-#if !defined(BOOST_UUID_USE_SSE3)
-#define BOOST_UUID_USE_SSE3
-#endif
-#if !defined(BOOST_UUID_USE_SSE2)
-#define BOOST_UUID_USE_SSE2
-#endif
-#endif
-
-#endif
-
-// More advanced ISA extensions imply less advanced are also available
-#if !defined(BOOST_UUID_USE_SSE3) && defined(BOOST_UUID_USE_SSE41)
-#define BOOST_UUID_USE_SSE3
-#endif
-
-#if !defined(BOOST_UUID_USE_SSE2) && defined(BOOST_UUID_USE_SSE3)
-#define BOOST_UUID_USE_SSE2
-#endif
-
-#if !defined(BOOST_UUID_NO_SIMD) && !defined(BOOST_UUID_USE_SSE41) && !defined(BOOST_UUID_USE_SSE3) && !defined(BOOST_UUID_USE_SSE2)
-#define BOOST_UUID_NO_SIMD
-#endif
-
-#endif // !defined(BOOST_UUID_NO_SIMD)
-
-#endif // BOOST_UUID_DETAIL_CONFIG_HPP_INCLUDED_
diff --git a/contrib/restricted/boost/boost/uuid/detail/md5.hpp b/contrib/restricted/boost/boost/uuid/detail/md5.hpp
deleted file mode 100644
index 96d4695a69..0000000000
--- a/contrib/restricted/boost/boost/uuid/detail/md5.hpp
+++ /dev/null
@@ -1,342 +0,0 @@
-/*
- * This RFC 1321 compatible MD5 implementation originated at:
- * http://openwall.info/wiki/people/solar/software/public-domain-source-code/md5
- *
- * Author:
- * Alexander Peslyak, better known as Solar Designer <solar at openwall.com>
- *
- * This software was written by Alexander Peslyak in 2001. No copyright is
- * claimed, and the software is hereby placed in the public domain.
- * In case this attempt to disclaim copyright and place the software in the
- * public domain is deemed null and void, then the software is
- * Copyright (c) 2001 Alexander Peslyak and it is hereby released to the
- * general public under the following terms:
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted.
- *
- * There's ABSOLUTELY NO WARRANTY, express or implied.
- *
- */
-
-// Distributed under the 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_UUID_MD5_HPP
-#define BOOST_UUID_MD5_HPP
-
-#include <boost/cast.hpp>
-#include <boost/config.hpp>
-#include <boost/cstdint.hpp>
-#include <boost/uuid/uuid.hpp> // for version
-#include <string.h>
-
-namespace boost {
-namespace uuids {
-namespace detail {
-
-class md5
-{
-public:
- typedef unsigned int(digest_type)[4];
-
- md5()
- {
- MD5_Init(&ctx_);
- }
-
- void process_byte(unsigned char byte)
- {
- MD5_Update(&ctx_, &byte, 1);
- }
-
- void process_bytes(void const* buffer, std::size_t byte_count)
- {
- MD5_Update(&ctx_, buffer, boost::numeric_cast<unsigned long>(byte_count));
- }
-
- void get_digest(digest_type& digest)
- {
- MD5_Final(reinterpret_cast<unsigned char *>(&digest[0]), &ctx_);
- }
-
- unsigned char get_version() const
- {
- // RFC 4122 Section 4.1.3
- return uuid::version_name_based_md5;
- }
-
-private:
-
- /* Any 32-bit or wider unsigned integer data type will do */
- typedef uint32_t MD5_u32plus;
-
- typedef struct {
- MD5_u32plus lo, hi;
- MD5_u32plus a, b, c, d;
- unsigned char buffer[64];
- MD5_u32plus block[16];
- } MD5_CTX;
-
- /*
- * The basic MD5 functions.
- *
- * F and G are optimized compared to their RFC 1321 definitions for
- * architectures that lack an AND-NOT instruction, just like in Colin Plumb's
- * implementation.
- */
- BOOST_FORCEINLINE MD5_u32plus BOOST_UUID_DETAIL_MD5_F(MD5_u32plus x, MD5_u32plus y, MD5_u32plus z) { return ((z) ^ ((x) & ((y) ^ (z)))); }
- BOOST_FORCEINLINE MD5_u32plus BOOST_UUID_DETAIL_MD5_G(MD5_u32plus x, MD5_u32plus y, MD5_u32plus z) { return ((y) ^ ((z) & ((x) ^ (y)))); }
- BOOST_FORCEINLINE MD5_u32plus BOOST_UUID_DETAIL_MD5_H(MD5_u32plus x, MD5_u32plus y, MD5_u32plus z) { return (((x) ^ (y)) ^ (z)); }
- BOOST_FORCEINLINE MD5_u32plus BOOST_UUID_DETAIL_MD5_H2(MD5_u32plus x, MD5_u32plus y, MD5_u32plus z) { return ((x) ^ ((y) ^ (z))); }
- BOOST_FORCEINLINE MD5_u32plus BOOST_UUID_DETAIL_MD5_I(MD5_u32plus x, MD5_u32plus y, MD5_u32plus z) { return ((y) ^ ((x) | ~(z))); }
-
- /*
- * The MD5 transformation for all four rounds.
- */
- #define BOOST_UUID_DETAIL_MD5_STEP(f, a, b, c, d, x, t, s) \
- (a) += f((b), (c), (d)) + (x) + (t); \
- (a) = (((a) << (s)) | (((a) & 0xffffffff) >> (32 - (s)))); \
- (a) += (b);
-
- /*
- * SET reads 4 input bytes in little-endian byte order and stores them in a
- * properly aligned word in host byte order.
- *
- * The check for little-endian architectures that tolerate unaligned memory
- * accesses is just an optimization. Nothing will break if it fails to detect
- * a suitable architecture.
- *
- * Unfortunately, this optimization may be a C strict aliasing rules violation
- * if the caller's data buffer has effective type that cannot be aliased by
- * MD5_u32plus. In practice, this problem may occur if these MD5 routines are
- * inlined into a calling function, or with future and dangerously advanced
- * link-time optimizations. For the time being, keeping these MD5 routines in
- * their own translation unit avoids the problem.
- */
- #if defined(__i386__) || defined(__x86_64__) || defined(__vax__)
- #define BOOST_UUID_DETAIL_MD5_SET(n) \
- (*(MD5_u32plus *)&ptr[(n) * 4])
- #define BOOST_UUID_DETAIL_MD5_GET(n) \
- BOOST_UUID_DETAIL_MD5_SET(n)
- #else
- #define BOOST_UUID_DETAIL_MD5_SET(n) \
- (ctx->block[(n)] = \
- (MD5_u32plus)ptr[(n) * 4] | \
- ((MD5_u32plus)ptr[(n) * 4 + 1] << 8) | \
- ((MD5_u32plus)ptr[(n) * 4 + 2] << 16) | \
- ((MD5_u32plus)ptr[(n) * 4 + 3] << 24))
- #define BOOST_UUID_DETAIL_MD5_GET(n) \
- (ctx->block[(n)])
- #endif
-
- /*
- * This processes one or more 64-byte data blocks, but does NOT update the bit
- * counters. There are no alignment requirements.
- */
- const void *body(MD5_CTX *ctx, const void *data, unsigned long size)
- {
- const unsigned char *ptr;
- MD5_u32plus a, b, c, d;
- MD5_u32plus saved_a, saved_b, saved_c, saved_d;
-
- ptr = (const unsigned char *)data;
-
- a = ctx->a;
- b = ctx->b;
- c = ctx->c;
- d = ctx->d;
-
- do {
- saved_a = a;
- saved_b = b;
- saved_c = c;
- saved_d = d;
-
- /* Round 1 */
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_F, a, b, c, d, BOOST_UUID_DETAIL_MD5_SET(0), 0xd76aa478, 7)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_F, d, a, b, c, BOOST_UUID_DETAIL_MD5_SET(1), 0xe8c7b756, 12)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_F, c, d, a, b, BOOST_UUID_DETAIL_MD5_SET(2), 0x242070db, 17)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_F, b, c, d, a, BOOST_UUID_DETAIL_MD5_SET(3), 0xc1bdceee, 22)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_F, a, b, c, d, BOOST_UUID_DETAIL_MD5_SET(4), 0xf57c0faf, 7)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_F, d, a, b, c, BOOST_UUID_DETAIL_MD5_SET(5), 0x4787c62a, 12)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_F, c, d, a, b, BOOST_UUID_DETAIL_MD5_SET(6), 0xa8304613, 17)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_F, b, c, d, a, BOOST_UUID_DETAIL_MD5_SET(7), 0xfd469501, 22)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_F, a, b, c, d, BOOST_UUID_DETAIL_MD5_SET(8), 0x698098d8, 7)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_F, d, a, b, c, BOOST_UUID_DETAIL_MD5_SET(9), 0x8b44f7af, 12)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_F, c, d, a, b, BOOST_UUID_DETAIL_MD5_SET(10), 0xffff5bb1, 17)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_F, b, c, d, a, BOOST_UUID_DETAIL_MD5_SET(11), 0x895cd7be, 22)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_F, a, b, c, d, BOOST_UUID_DETAIL_MD5_SET(12), 0x6b901122, 7)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_F, d, a, b, c, BOOST_UUID_DETAIL_MD5_SET(13), 0xfd987193, 12)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_F, c, d, a, b, BOOST_UUID_DETAIL_MD5_SET(14), 0xa679438e, 17)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_F, b, c, d, a, BOOST_UUID_DETAIL_MD5_SET(15), 0x49b40821, 22)
-
- /* Round 2 */
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_G, a, b, c, d, BOOST_UUID_DETAIL_MD5_GET(1), 0xf61e2562, 5)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_G, d, a, b, c, BOOST_UUID_DETAIL_MD5_GET(6), 0xc040b340, 9)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_G, c, d, a, b, BOOST_UUID_DETAIL_MD5_GET(11), 0x265e5a51, 14)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_G, b, c, d, a, BOOST_UUID_DETAIL_MD5_GET(0), 0xe9b6c7aa, 20)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_G, a, b, c, d, BOOST_UUID_DETAIL_MD5_GET(5), 0xd62f105d, 5)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_G, d, a, b, c, BOOST_UUID_DETAIL_MD5_GET(10), 0x02441453, 9)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_G, c, d, a, b, BOOST_UUID_DETAIL_MD5_GET(15), 0xd8a1e681, 14)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_G, b, c, d, a, BOOST_UUID_DETAIL_MD5_GET(4), 0xe7d3fbc8, 20)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_G, a, b, c, d, BOOST_UUID_DETAIL_MD5_GET(9), 0x21e1cde6, 5)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_G, d, a, b, c, BOOST_UUID_DETAIL_MD5_GET(14), 0xc33707d6, 9)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_G, c, d, a, b, BOOST_UUID_DETAIL_MD5_GET(3), 0xf4d50d87, 14)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_G, b, c, d, a, BOOST_UUID_DETAIL_MD5_GET(8), 0x455a14ed, 20)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_G, a, b, c, d, BOOST_UUID_DETAIL_MD5_GET(13), 0xa9e3e905, 5)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_G, d, a, b, c, BOOST_UUID_DETAIL_MD5_GET(2), 0xfcefa3f8, 9)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_G, c, d, a, b, BOOST_UUID_DETAIL_MD5_GET(7), 0x676f02d9, 14)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_G, b, c, d, a, BOOST_UUID_DETAIL_MD5_GET(12), 0x8d2a4c8a, 20)
-
- /* Round 3 */
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_H, a, b, c, d, BOOST_UUID_DETAIL_MD5_GET(5), 0xfffa3942, 4)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_H2, d, a, b, c, BOOST_UUID_DETAIL_MD5_GET(8), 0x8771f681, 11)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_H, c, d, a, b, BOOST_UUID_DETAIL_MD5_GET(11), 0x6d9d6122, 16)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_H2, b, c, d, a, BOOST_UUID_DETAIL_MD5_GET(14), 0xfde5380c, 23)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_H, a, b, c, d, BOOST_UUID_DETAIL_MD5_GET(1), 0xa4beea44, 4)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_H2, d, a, b, c, BOOST_UUID_DETAIL_MD5_GET(4), 0x4bdecfa9, 11)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_H, c, d, a, b, BOOST_UUID_DETAIL_MD5_GET(7), 0xf6bb4b60, 16)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_H2, b, c, d, a, BOOST_UUID_DETAIL_MD5_GET(10), 0xbebfbc70, 23)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_H, a, b, c, d, BOOST_UUID_DETAIL_MD5_GET(13), 0x289b7ec6, 4)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_H2, d, a, b, c, BOOST_UUID_DETAIL_MD5_GET(0), 0xeaa127fa, 11)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_H, c, d, a, b, BOOST_UUID_DETAIL_MD5_GET(3), 0xd4ef3085, 16)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_H2, b, c, d, a, BOOST_UUID_DETAIL_MD5_GET(6), 0x04881d05, 23)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_H, a, b, c, d, BOOST_UUID_DETAIL_MD5_GET(9), 0xd9d4d039, 4)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_H2, d, a, b, c, BOOST_UUID_DETAIL_MD5_GET(12), 0xe6db99e5, 11)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_H, c, d, a, b, BOOST_UUID_DETAIL_MD5_GET(15), 0x1fa27cf8, 16)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_H2, b, c, d, a, BOOST_UUID_DETAIL_MD5_GET(2), 0xc4ac5665, 23)
-
- /* Round 4 */
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_I, a, b, c, d, BOOST_UUID_DETAIL_MD5_GET(0), 0xf4292244, 6)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_I, d, a, b, c, BOOST_UUID_DETAIL_MD5_GET(7), 0x432aff97, 10)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_I, c, d, a, b, BOOST_UUID_DETAIL_MD5_GET(14), 0xab9423a7, 15)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_I, b, c, d, a, BOOST_UUID_DETAIL_MD5_GET(5), 0xfc93a039, 21)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_I, a, b, c, d, BOOST_UUID_DETAIL_MD5_GET(12), 0x655b59c3, 6)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_I, d, a, b, c, BOOST_UUID_DETAIL_MD5_GET(3), 0x8f0ccc92, 10)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_I, c, d, a, b, BOOST_UUID_DETAIL_MD5_GET(10), 0xffeff47d, 15)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_I, b, c, d, a, BOOST_UUID_DETAIL_MD5_GET(1), 0x85845dd1, 21)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_I, a, b, c, d, BOOST_UUID_DETAIL_MD5_GET(8), 0x6fa87e4f, 6)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_I, d, a, b, c, BOOST_UUID_DETAIL_MD5_GET(15), 0xfe2ce6e0, 10)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_I, c, d, a, b, BOOST_UUID_DETAIL_MD5_GET(6), 0xa3014314, 15)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_I, b, c, d, a, BOOST_UUID_DETAIL_MD5_GET(13), 0x4e0811a1, 21)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_I, a, b, c, d, BOOST_UUID_DETAIL_MD5_GET(4), 0xf7537e82, 6)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_I, d, a, b, c, BOOST_UUID_DETAIL_MD5_GET(11), 0xbd3af235, 10)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_I, c, d, a, b, BOOST_UUID_DETAIL_MD5_GET(2), 0x2ad7d2bb, 15)
- BOOST_UUID_DETAIL_MD5_STEP(BOOST_UUID_DETAIL_MD5_I, b, c, d, a, BOOST_UUID_DETAIL_MD5_GET(9), 0xeb86d391, 21)
-
- a += saved_a;
- b += saved_b;
- c += saved_c;
- d += saved_d;
-
- ptr += 64;
- } while (size -= 64);
-
- ctx->a = a;
- ctx->b = b;
- ctx->c = c;
- ctx->d = d;
-
- return ptr;
- }
-
- void MD5_Init(MD5_CTX *ctx)
- {
- ctx->a = 0x67452301;
- ctx->b = 0xefcdab89;
- ctx->c = 0x98badcfe;
- ctx->d = 0x10325476;
-
- ctx->lo = 0;
- ctx->hi = 0;
- }
-
- void MD5_Update(MD5_CTX *ctx, const void *data, unsigned long size)
- {
- MD5_u32plus saved_lo;
- unsigned long used, available;
-
- saved_lo = ctx->lo;
- if ((ctx->lo = (saved_lo + size) & 0x1fffffff) < saved_lo)
- ctx->hi++;
- ctx->hi += size >> 29;
-
- used = saved_lo & 0x3f;
-
- if (used) {
- available = 64 - used;
-
- if (size < available) {
- memcpy(&ctx->buffer[used], data, size);
- return;
- }
-
- memcpy(&ctx->buffer[used], data, available);
- data = (const unsigned char *)data + available;
- size -= available;
- body(ctx, ctx->buffer, 64);
- }
-
- if (size >= 64) {
- data = body(ctx, data, size & ~(unsigned long)0x3f);
- size &= 0x3f;
- }
-
- memcpy(ctx->buffer, data, size);
- }
-
- #define BOOST_UUID_DETAIL_MD5_OUT(dst, src) \
- (dst)[0] = (unsigned char)(src); \
- (dst)[1] = (unsigned char)((src) >> 8); \
- (dst)[2] = (unsigned char)((src) >> 16); \
- (dst)[3] = (unsigned char)((src) >> 24);
-
- void MD5_Final(unsigned char *result, MD5_CTX *ctx)
- {
- unsigned long used, available;
-
- used = ctx->lo & 0x3f;
-
- ctx->buffer[used++] = 0x80;
-
- available = 64 - used;
-
- if (available < 8) {
- memset(&ctx->buffer[used], 0, available);
- body(ctx, ctx->buffer, 64);
- used = 0;
- available = 64;
- }
-
- memset(&ctx->buffer[used], 0, available - 8);
-
- ctx->lo <<= 3;
- BOOST_UUID_DETAIL_MD5_OUT(&ctx->buffer[56], ctx->lo)
- BOOST_UUID_DETAIL_MD5_OUT(&ctx->buffer[60], ctx->hi)
-
- body(ctx, ctx->buffer, 64);
-
- BOOST_UUID_DETAIL_MD5_OUT(&result[0], ctx->a)
- BOOST_UUID_DETAIL_MD5_OUT(&result[4], ctx->b)
- BOOST_UUID_DETAIL_MD5_OUT(&result[8], ctx->c)
- BOOST_UUID_DETAIL_MD5_OUT(&result[12], ctx->d)
-
- memset(ctx, 0, sizeof(*ctx));
- }
-
-#undef BOOST_UUID_DETAIL_MD5_OUT
-#undef BOOST_UUID_DETAIL_MD5_SET
-#undef BOOST_UUID_DETAIL_MD5_GET
-#undef BOOST_UUID_DETAIL_MD5_STEP
-
- MD5_CTX ctx_;
-};
-
-
-} // detail
-} // uuids
-} // boost
-
-#endif // BOOST_UUID_MD5_HPP
diff --git a/contrib/restricted/boost/boost/uuid/detail/random_provider.hpp b/contrib/restricted/boost/boost/uuid/detail/random_provider.hpp
deleted file mode 100644
index 03d8f26f95..0000000000
--- a/contrib/restricted/boost/boost/uuid/detail/random_provider.hpp
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-// Copyright (c) 2017 James E. King III
-//
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENCE_1_0.txt)
-//
-// Platform-specific random entropy provider
-//
-
-#ifndef BOOST_UUID_DETAIL_RANDOM_PROVIDER_HPP
-#define BOOST_UUID_DETAIL_RANDOM_PROVIDER_HPP
-
-#include <boost/core/noncopyable.hpp>
-#include <boost/cstdint.hpp>
-#include <boost/limits.hpp>
-#include <boost/static_assert.hpp>
-#include <boost/type_traits/is_integral.hpp>
-#include <boost/type_traits/is_unsigned.hpp>
-#include <boost/uuid/entropy_error.hpp>
-#include <climits>
-#include <iterator>
-
-// Detection of the platform is separated from inclusion of the correct
-// header to facilitate mock testing of the provider implementations.
-
-#include <boost/uuid/detail/random_provider_detect_platform.hpp>
-#include <boost/uuid/detail/random_provider_include_platform.hpp>
-
-
-namespace boost {
-namespace uuids {
-namespace detail {
-
-//! \brief Contains code common to all random_provider implementations.
-//! \note random_provider_base is required to provide this method:
-//! void get_random_bytes(void *buf, size_t siz);
-//! \note noncopyable because of some base implementations so
-//! this makes it uniform across platforms to avoid any
-//! porting surprises
-class random_provider
- : public detail::random_provider_base,
- public noncopyable
-{
-public:
- //! Leverage the provider as a SeedSeq for
- //! PseudoRandomNumberGeneration seeing.
- //! \note: See Boost.Random documentation for more details
- template<class Iter>
- void generate(Iter first, Iter last)
- {
- typedef typename std::iterator_traits<Iter>::value_type value_type;
- BOOST_STATIC_ASSERT(is_integral<value_type>::value);
- BOOST_STATIC_ASSERT(is_unsigned<value_type>::value);
- BOOST_STATIC_ASSERT(sizeof(value_type) * CHAR_BIT >= 32);
-
- for (; first != last; ++first)
- {
- get_random_bytes(&*first, sizeof(*first));
- *first &= (std::numeric_limits<boost::uint32_t>::max)();
- }
- }
-
- //! Return the name of the selected provider
- const char * name() const
- {
- return BOOST_UUID_RANDOM_PROVIDER_STRINGIFY(BOOST_UUID_RANDOM_PROVIDER_NAME);
- }
-};
-
-} // detail
-} // uuids
-} // boost
-
-#endif // BOOST_UUID_DETAIL_RANDOM_PROVIDER_HPP
diff --git a/contrib/restricted/boost/boost/uuid/detail/random_provider_arc4random.ipp b/contrib/restricted/boost/boost/uuid/detail/random_provider_arc4random.ipp
deleted file mode 100644
index 6facf28718..0000000000
--- a/contrib/restricted/boost/boost/uuid/detail/random_provider_arc4random.ipp
+++ /dev/null
@@ -1,32 +0,0 @@
-//
-// Copyright (c) 2017 James E. King III
-//
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENCE_1_0.txt)
-//
-// "A Replacement Call for Random"
-// https://man.openbsd.org/arc4random.3
-//
-
-#include <stdlib.h>
-
-namespace boost {
-namespace uuids {
-namespace detail {
-
-class random_provider_base
-{
- public:
- //! Obtain entropy and place it into a memory location
- //! \param[in] buf the location to write entropy
- //! \param[in] siz the number of bytes to acquire
- void get_random_bytes(void *buf, size_t siz)
- {
- arc4random_buf(buf, siz);
- }
-};
-
-} // detail
-} // uuids
-} // boost
diff --git a/contrib/restricted/boost/boost/uuid/detail/random_provider_bcrypt.ipp b/contrib/restricted/boost/boost/uuid/detail/random_provider_bcrypt.ipp
deleted file mode 100644
index 8fedf67b53..0000000000
--- a/contrib/restricted/boost/boost/uuid/detail/random_provider_bcrypt.ipp
+++ /dev/null
@@ -1,79 +0,0 @@
-//
-// Copyright (c) 2017 James E. King III
-//
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENCE_1_0.txt)
-//
-// BCrypt provider for entropy
-//
-
-#include <boost/core/ignore_unused.hpp>
-#include <boost/numeric/conversion/cast.hpp>
-#include <boost/winapi/bcrypt.hpp>
-#include <boost/winapi/get_last_error.hpp>
-#include <boost/throw_exception.hpp>
-
-#if defined(BOOST_UUID_FORCE_AUTO_LINK) || (!defined(BOOST_ALL_NO_LIB) && !defined(BOOST_UUID_RANDOM_PROVIDER_NO_LIB))
-# define BOOST_LIB_NAME "bcrypt"
-# define BOOST_AUTO_LINK_NOMANGLE
-# include <boost/config/auto_link.hpp>
-# undef BOOST_AUTO_LINK_NOMANGLE
-#endif
-
-namespace boost {
-namespace uuids {
-namespace detail {
-
-class random_provider_base
-{
- public:
- random_provider_base()
- : hProv_(NULL)
- {
- boost::winapi::NTSTATUS_ status =
- boost::winapi::BCryptOpenAlgorithmProvider(
- &hProv_,
- boost::winapi::BCRYPT_RNG_ALGORITHM_,
- NULL,
- 0);
-
- if (status)
- {
- BOOST_THROW_EXCEPTION(entropy_error(status, "BCryptOpenAlgorithmProvider"));
- }
- }
-
- ~random_provider_base() BOOST_NOEXCEPT
- {
- if (hProv_)
- {
- ignore_unused(boost::winapi::BCryptCloseAlgorithmProvider(hProv_, 0));
- }
- }
-
- //! Obtain entropy and place it into a memory location
- //! \param[in] buf the location to write entropy
- //! \param[in] siz the number of bytes to acquire
- void get_random_bytes(void *buf, size_t siz)
- {
- boost::winapi::NTSTATUS_ status =
- boost::winapi::BCryptGenRandom(
- hProv_,
- static_cast<boost::winapi::PUCHAR_>(buf),
- boost::numeric_cast<boost::winapi::ULONG_>(siz),
- 0);
-
- if (status)
- {
- BOOST_THROW_EXCEPTION(entropy_error(status, "BCryptGenRandom"));
- }
- }
-
- private:
- boost::winapi::BCRYPT_ALG_HANDLE_ hProv_;
-};
-
-} // detail
-} // uuids
-} // boost
diff --git a/contrib/restricted/boost/boost/uuid/detail/random_provider_detect_platform.hpp b/contrib/restricted/boost/boost/uuid/detail/random_provider_detect_platform.hpp
deleted file mode 100644
index 497d7f42c1..0000000000
--- a/contrib/restricted/boost/boost/uuid/detail/random_provider_detect_platform.hpp
+++ /dev/null
@@ -1,62 +0,0 @@
-//
-// Copyright (c) 2017 James E. King III
-//
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENCE_1_0.txt)
-//
-// Platform-specific random entropy provider platform detection
-//
-
-#ifndef BOOST_UUID_DETAIL_RANDOM_PROVIDER_PLATFORM_DETECTION_HPP
-#define BOOST_UUID_DETAIL_RANDOM_PROVIDER_PLATFORM_DETECTION_HPP
-
-#include <boost/predef/library/c/cloudabi.h>
-#include <boost/predef/library/c/gnu.h>
-#include <boost/predef/os/bsd/open.h>
-#include <boost/predef/os/windows.h>
-
-//
-// Platform Detection - will load in the correct header and
-// will define the class <tt>random_provider_base</tt>.
-//
-
-#if BOOST_OS_BSD_OPEN >= BOOST_VERSION_NUMBER(2, 1, 0) || BOOST_LIB_C_CLOUDABI
-# define BOOST_UUID_RANDOM_PROVIDER_ARC4RANDOM
-# define BOOST_UUID_RANDOM_PROVIDER_NAME arc4random
-
-#elif BOOST_OS_WINDOWS
-# include <boost/winapi/config.hpp>
-# if BOOST_WINAPI_PARTITION_APP_SYSTEM && \
- !defined(BOOST_UUID_RANDOM_PROVIDER_FORCE_WINCRYPT) && \
- !defined(_WIN32_WCE) && \
- (defined(BOOST_WINAPI_IS_MINGW_W64) || \
- (BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6))
-# define BOOST_UUID_RANDOM_PROVIDER_BCRYPT
-# define BOOST_UUID_RANDOM_PROVIDER_NAME bcrypt
-
-# elif BOOST_WINAPI_PARTITION_DESKTOP || BOOST_WINAPI_PARTITION_SYSTEM
-# define BOOST_UUID_RANDOM_PROVIDER_WINCRYPT
-# define BOOST_UUID_RANDOM_PROVIDER_NAME wincrypt
-# else
-# error Unable to find a suitable windows entropy provider
-# endif
-
-#elif BOOST_LIB_C_GNU >= BOOST_VERSION_NUMBER(2, 25, 0) && !defined(BOOST_UUID_RANDOM_PROVIDER_FORCE_POSIX)
-# define BOOST_UUID_RANDOM_PROVIDER_GETENTROPY
-# define BOOST_UUID_RANDOM_PROVIDER_NAME getentropy
-
-#else
-# define BOOST_UUID_RANDOM_PROVIDER_POSIX
-# define BOOST_UUID_RANDOM_PROVIDER_NAME posix
-
-#endif
-
-#define BOOST_UUID_RANDOM_PROVIDER_STRINGIFY2(X) #X
-#define BOOST_UUID_RANDOM_PROVIDER_STRINGIFY(X) BOOST_UUID_RANDOM_PROVIDER_STRINGIFY2(X)
-
-#if defined(BOOST_UUID_RANDOM_PROVIDER_SHOW)
-#pragma message("BOOST_UUID_RANDOM_PROVIDER_NAME " BOOST_UUID_RANDOM_PROVIDER_STRINGIFY(BOOST_UUID_RANDOM_PROVIDER_NAME))
-#endif
-
-#endif // BOOST_UUID_DETAIL_RANDOM_PROVIDER_PLATFORM_DETECTION_HPP
diff --git a/contrib/restricted/boost/boost/uuid/detail/random_provider_getentropy.ipp b/contrib/restricted/boost/boost/uuid/detail/random_provider_getentropy.ipp
deleted file mode 100644
index 1379bf709c..0000000000
--- a/contrib/restricted/boost/boost/uuid/detail/random_provider_getentropy.ipp
+++ /dev/null
@@ -1,37 +0,0 @@
-//
-// Copyright (c) 2017 James E. King III
-//
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENCE_1_0.txt)
-//
-// getentropy() capable platforms
-//
-
-#include <boost/throw_exception.hpp>
-#include <cerrno>
-#include <unistd.h>
-
-namespace boost {
-namespace uuids {
-namespace detail {
-
-class random_provider_base
-{
- public:
- //! Obtain entropy and place it into a memory location
- //! \param[in] buf the location to write entropy
- //! \param[in] siz the number of bytes to acquire
- void get_random_bytes(void *buf, size_t siz)
- {
- if (-1 == getentropy(buf, siz))
- {
- int err = errno;
- BOOST_THROW_EXCEPTION(entropy_error(err, "getentropy"));
- }
- }
-};
-
-} // detail
-} // uuids
-} // boost
diff --git a/contrib/restricted/boost/boost/uuid/detail/random_provider_include_platform.hpp b/contrib/restricted/boost/boost/uuid/detail/random_provider_include_platform.hpp
deleted file mode 100644
index 7d14ec94c0..0000000000
--- a/contrib/restricted/boost/boost/uuid/detail/random_provider_include_platform.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-//
-// Copyright (c) 2017 James E. King III
-//
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENCE_1_0.txt)
-//
-// Platform-specific random entropy provider platform definition
-//
-
-#ifndef BOOST_UUID_DETAIL_RANDOM_PROVIDER_PLATFORM_INCLUDE_HPP
-#define BOOST_UUID_DETAIL_RANDOM_PROVIDER_PLATFORM_INCLUDE_HPP
-
-#if defined(BOOST_UUID_RANDOM_PROVIDER_ARC4RANDOM)
-# include <boost/uuid/detail/random_provider_arc4random.ipp>
-#elif defined(BOOST_UUID_RANDOM_PROVIDER_BCRYPT)
-# include <boost/uuid/detail/random_provider_bcrypt.ipp>
-#elif defined(BOOST_UUID_RANDOM_PROVIDER_GETENTROPY)
-# include <boost/uuid/detail/random_provider_getentropy.ipp>
-#elif defined(BOOST_UUID_RANDOM_PROVIDER_POSIX)
-# include <boost/uuid/detail/random_provider_posix.ipp>
-#elif defined(BOOST_UUID_RANDOM_PROVIDER_WINCRYPT)
-# include <boost/uuid/detail/random_provider_wincrypt.ipp>
-#endif
-
-#endif // BOOST_UUID_DETAIL_RANDOM_PROVIDER_PLATFORM_INCLUDE_HPP
-
diff --git a/contrib/restricted/boost/boost/uuid/detail/random_provider_posix.ipp b/contrib/restricted/boost/boost/uuid/detail/random_provider_posix.ipp
deleted file mode 100644
index 726661c89c..0000000000
--- a/contrib/restricted/boost/boost/uuid/detail/random_provider_posix.ipp
+++ /dev/null
@@ -1,95 +0,0 @@
-/* boost uuid/detail/random_provider_posix implementation
-*
-* Copyright Jens Maurer 2000
-* Copyright 2007 Andy Tompkins.
-* Copyright Steven Watanabe 2010-2011
-* Copyright 2017 James E. King III
-*
-* Distributed under the 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$
-*/
-
-#include <boost/core/ignore_unused.hpp>
-#include <boost/throw_exception.hpp>
-#include <boost/uuid/entropy_error.hpp>
-#include <cerrno>
-#include <fcntl.h> // open
-#include <sys/stat.h>
-#include <sys/types.h>
-#if defined(BOOST_HAS_UNISTD_H)
-#include <unistd.h>
-#endif
-
-#ifndef BOOST_UUID_RANDOM_PROVIDER_POSIX_IMPL_CLOSE
-#define BOOST_UUID_RANDOM_PROVIDER_POSIX_IMPL_CLOSE ::close
-#endif
-#ifndef BOOST_UUID_RANDOM_PROVIDER_POSIX_IMPL_OPEN
-#define BOOST_UUID_RANDOM_PROVIDER_POSIX_IMPL_OPEN ::open
-#endif
-#ifndef BOOST_UUID_RANDOM_PROVIDER_POSIX_IMPL_READ
-#define BOOST_UUID_RANDOM_PROVIDER_POSIX_IMPL_READ ::read
-#endif
-
-namespace boost {
-namespace uuids {
-namespace detail {
-
-class random_provider_base
-{
- public:
- random_provider_base()
- : fd_(0)
- {
- int flags = O_RDONLY;
-#if defined(O_CLOEXEC)
- flags |= O_CLOEXEC;
-#endif
- fd_ = BOOST_UUID_RANDOM_PROVIDER_POSIX_IMPL_OPEN("/dev/urandom", flags);
-
- if (-1 == fd_)
- {
- int err = errno;
- BOOST_THROW_EXCEPTION(entropy_error(err, "open /dev/urandom"));
- }
- }
-
- ~random_provider_base() BOOST_NOEXCEPT
- {
- if (fd_)
- {
- ignore_unused(BOOST_UUID_RANDOM_PROVIDER_POSIX_IMPL_CLOSE(fd_));
- }
- }
-
- //! Obtain entropy and place it into a memory location
- //! \param[in] buf the location to write entropy
- //! \param[in] siz the number of bytes to acquire
- void get_random_bytes(void *buf, size_t siz)
- {
- size_t offset = 0;
- do
- {
- ssize_t sz = BOOST_UUID_RANDOM_PROVIDER_POSIX_IMPL_READ(
- fd_, static_cast<char *>(buf) + offset, siz - offset);
-
- if (sz < 1)
- {
- int err = errno;
- BOOST_THROW_EXCEPTION(entropy_error(err, "read"));
- }
-
- offset += sz;
-
- } while (offset < siz);
- }
-
- private:
- int fd_;
-};
-
-} // detail
-} // uuids
-} // boost
diff --git a/contrib/restricted/boost/boost/uuid/detail/random_provider_wincrypt.ipp b/contrib/restricted/boost/boost/uuid/detail/random_provider_wincrypt.ipp
deleted file mode 100644
index 806e1e0c8b..0000000000
--- a/contrib/restricted/boost/boost/uuid/detail/random_provider_wincrypt.ipp
+++ /dev/null
@@ -1,82 +0,0 @@
-/* boost uuid/detail/random_provider_wincrypt implementation
-*
-* Copyright Jens Maurer 2000
-* Copyright 2007 Andy Tompkins.
-* Copyright Steven Watanabe 2010-2011
-* Copyright 2017 James E. King III
-*
-* Distributed under the 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$
-*/
-
-#include <boost/core/ignore_unused.hpp>
-#include <boost/numeric/conversion/cast.hpp>
-#include <boost/winapi/crypt.hpp>
-#include <boost/winapi/get_last_error.hpp>
-#include <boost/throw_exception.hpp>
-
-#if defined(BOOST_UUID_FORCE_AUTO_LINK) || (!defined(BOOST_ALL_NO_LIB) && !defined(BOOST_UUID_RANDOM_PROVIDER_NO_LIB))
-# if defined(_WIN32_WCE)
-# define BOOST_LIB_NAME "coredll"
-# else
-# define BOOST_LIB_NAME "advapi32"
-# endif
-# define BOOST_AUTO_LINK_NOMANGLE
-# include <boost/config/auto_link.hpp>
-# undef BOOST_AUTO_LINK_NOMANGLE
-#endif
-
-namespace boost {
-namespace uuids {
-namespace detail {
-
-class random_provider_base
-{
- public:
- random_provider_base()
- : hProv_(NULL)
- {
- if (!boost::winapi::CryptAcquireContextW(
- &hProv_,
- NULL,
- NULL,
- boost::winapi::PROV_RSA_FULL_,
- boost::winapi::CRYPT_VERIFYCONTEXT_ | boost::winapi::CRYPT_SILENT_))
- {
- boost::winapi::DWORD_ err = boost::winapi::GetLastError();
- BOOST_THROW_EXCEPTION(entropy_error(err, "CryptAcquireContext"));
- }
- }
-
- ~random_provider_base() BOOST_NOEXCEPT
- {
- if (hProv_)
- {
- ignore_unused(boost::winapi::CryptReleaseContext(hProv_, 0));
- }
- }
-
- //! Obtain entropy and place it into a memory location
- //! \param[in] buf the location to write entropy
- //! \param[in] siz the number of bytes to acquire
- void get_random_bytes(void *buf, size_t siz)
- {
- if (!boost::winapi::CryptGenRandom(hProv_,
- boost::numeric_cast<boost::winapi::DWORD_>(siz),
- static_cast<boost::winapi::BYTE_ *>(buf)))
- {
- boost::winapi::DWORD_ err = boost::winapi::GetLastError();
- BOOST_THROW_EXCEPTION(entropy_error(err, "CryptGenRandom"));
- }
- }
-
- private:
- boost::winapi::HCRYPTPROV_ hProv_;
-};
-
-} // detail
-} // uuids
-} // boost
diff --git a/contrib/restricted/boost/boost/uuid/detail/sha1.hpp b/contrib/restricted/boost/boost/uuid/detail/sha1.hpp
deleted file mode 100644
index 7831e571bc..0000000000
--- a/contrib/restricted/boost/boost/uuid/detail/sha1.hpp
+++ /dev/null
@@ -1,239 +0,0 @@
-// boost/uuid/sha1.hpp header file ----------------------------------------------//
-
-// Copyright 2007 Andy Tompkins.
-// Distributed under the 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
-// 29 May 2007 - Initial Revision
-// 25 Feb 2008 - moved to namespace boost::uuids::detail
-// 10 Jan 2012 - can now handle the full size of messages (2^64 - 1 bits)
-
-// This is a byte oriented implementation
-
-#ifndef BOOST_UUID_SHA1_H
-#define BOOST_UUID_SHA1_H
-
-#include <boost/static_assert.hpp>
-#include <boost/throw_exception.hpp>
-#include <boost/uuid/uuid.hpp> // for version
-#include <cstddef>
-#include <stdexcept>
-#include <string>
-
-#ifdef BOOST_NO_STDC_NAMESPACE
-namespace std {
- using ::size_t;
-} // namespace std
-#endif
-
-namespace boost {
-namespace uuids {
-namespace detail {
-
-BOOST_STATIC_ASSERT(sizeof(unsigned char)*8 == 8);
-BOOST_STATIC_ASSERT(sizeof(unsigned int)*8 == 32);
-
-inline unsigned int left_rotate(unsigned int x, std::size_t n)
-{
- return (x<<n) ^ (x>> (32-n));
-}
-
-class sha1
-{
-public:
- typedef unsigned int(digest_type)[5];
-public:
- sha1();
-
- void reset();
-
- void process_byte(unsigned char byte);
- void process_block(void const* bytes_begin, void const* bytes_end);
- void process_bytes(void const* buffer, std::size_t byte_count);
-
- void get_digest(digest_type& digest);
- unsigned char get_version() const;
-
-private:
- void process_block();
- void process_byte_impl(unsigned char byte);
-
-private:
- unsigned int h_[5];
-
- unsigned char block_[64];
-
- std::size_t block_byte_index_;
- std::size_t bit_count_low;
- std::size_t bit_count_high;
-};
-
-inline sha1::sha1()
-{
- reset();
-}
-
-inline void sha1::reset()
-{
- h_[0] = 0x67452301;
- h_[1] = 0xEFCDAB89;
- h_[2] = 0x98BADCFE;
- h_[3] = 0x10325476;
- h_[4] = 0xC3D2E1F0;
-
- block_byte_index_ = 0;
- bit_count_low = 0;
- bit_count_high = 0;
-}
-
-inline void sha1::process_byte(unsigned char byte)
-{
- process_byte_impl(byte);
-
- // size_t max value = 0xFFFFFFFF
- //if (bit_count_low + 8 >= 0x100000000) { // would overflow
- //if (bit_count_low >= 0x100000000-8) {
- if (bit_count_low < 0xFFFFFFF8) {
- bit_count_low += 8;
- } else {
- bit_count_low = 0;
-
- if (bit_count_high <= 0xFFFFFFFE) {
- ++bit_count_high;
- } else {
- BOOST_THROW_EXCEPTION(std::runtime_error("sha1 too many bytes"));
- }
- }
-}
-
-inline void sha1::process_byte_impl(unsigned char byte)
-{
- block_[block_byte_index_++] = byte;
-
- if (block_byte_index_ == 64) {
- block_byte_index_ = 0;
- process_block();
- }
-}
-
-inline void sha1::process_block(void const* bytes_begin, void const* bytes_end)
-{
- unsigned char const* begin = static_cast<unsigned char const*>(bytes_begin);
- unsigned char const* end = static_cast<unsigned char const*>(bytes_end);
- for(; begin != end; ++begin) {
- process_byte(*begin);
- }
-}
-
-inline void sha1::process_bytes(void const* buffer, std::size_t byte_count)
-{
- unsigned char const* b = static_cast<unsigned char const*>(buffer);
- process_block(b, b+byte_count);
-}
-
-inline void sha1::process_block()
-{
- unsigned int w[80];
- for (std::size_t i=0; i<16; ++i) {
- w[i] = (block_[i*4 + 0] << 24);
- w[i] |= (block_[i*4 + 1] << 16);
- w[i] |= (block_[i*4 + 2] << 8);
- w[i] |= (block_[i*4 + 3]);
- }
- for (std::size_t i=16; i<80; ++i) {
- w[i] = left_rotate((w[i-3] ^ w[i-8] ^ w[i-14] ^ w[i-16]), 1);
- }
-
- unsigned int a = h_[0];
- unsigned int b = h_[1];
- unsigned int c = h_[2];
- unsigned int d = h_[3];
- unsigned int e = h_[4];
-
- for (std::size_t i=0; i<80; ++i) {
- unsigned int f;
- unsigned int k;
-
- if (i<20) {
- f = (b & c) | (~b & d);
- k = 0x5A827999;
- } else if (i<40) {
- f = b ^ c ^ d;
- k = 0x6ED9EBA1;
- } else if (i<60) {
- f = (b & c) | (b & d) | (c & d);
- k = 0x8F1BBCDC;
- } else {
- f = b ^ c ^ d;
- k = 0xCA62C1D6;
- }
-
- unsigned temp = left_rotate(a, 5) + f + e + k + w[i];
- e = d;
- d = c;
- c = left_rotate(b, 30);
- b = a;
- a = temp;
- }
-
- h_[0] += a;
- h_[1] += b;
- h_[2] += c;
- h_[3] += d;
- h_[4] += e;
-}
-
-inline unsigned char sha1::get_version() const
-{
- // RFC 4122 Section 4.1.3
- return uuid::version_name_based_sha1;
-}
-
-inline void sha1::get_digest(digest_type& digest)
-{
- // append the bit '1' to the message
- process_byte_impl(0x80);
-
- // append k bits '0', where k is the minimum number >= 0
- // such that the resulting message length is congruent to 56 (mod 64)
- // check if there is enough space for padding and bit_count
- if (block_byte_index_ > 56) {
- // finish this block
- while (block_byte_index_ != 0) {
- process_byte_impl(0);
- }
-
- // one more block
- while (block_byte_index_ < 56) {
- process_byte_impl(0);
- }
- } else {
- while (block_byte_index_ < 56) {
- process_byte_impl(0);
- }
- }
-
- // append length of message (before pre-processing)
- // as a 64-bit big-endian integer
- process_byte_impl( static_cast<unsigned char>((bit_count_high>>24) & 0xFF) );
- process_byte_impl( static_cast<unsigned char>((bit_count_high>>16) & 0xFF) );
- process_byte_impl( static_cast<unsigned char>((bit_count_high>>8 ) & 0xFF) );
- process_byte_impl( static_cast<unsigned char>((bit_count_high) & 0xFF) );
- process_byte_impl( static_cast<unsigned char>((bit_count_low>>24) & 0xFF) );
- process_byte_impl( static_cast<unsigned char>((bit_count_low>>16) & 0xFF) );
- process_byte_impl( static_cast<unsigned char>((bit_count_low>>8 ) & 0xFF) );
- process_byte_impl( static_cast<unsigned char>((bit_count_low) & 0xFF) );
-
- // get final digest
- digest[0] = h_[0];
- digest[1] = h_[1];
- digest[2] = h_[2];
- digest[3] = h_[3];
- digest[4] = h_[4];
-}
-
-}}} // namespace boost::uuids::detail
-
-#endif
diff --git a/contrib/restricted/boost/boost/uuid/detail/uuid_generic.ipp b/contrib/restricted/boost/boost/uuid/detail/uuid_generic.ipp
deleted file mode 100644
index 07c5cf4033..0000000000
--- a/contrib/restricted/boost/boost/uuid/detail/uuid_generic.ipp
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright Andy Tompkins 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)
- */
-/*!
- * \file uuid/detail/uuid_generic.ipp
- *
- * \brief This header contains generic implementation of \c boost::uuid operations.
- */
-
-#ifndef BOOST_UUID_DETAIL_UUID_GENERIC_IPP_INCLUDED_
-#define BOOST_UUID_DETAIL_UUID_GENERIC_IPP_INCLUDED_
-
-#include <string.h>
-
-namespace boost {
-namespace uuids {
-
-inline bool uuid::is_nil() const BOOST_NOEXCEPT
-{
- for (std::size_t i = 0; i < sizeof(data); ++i)
- {
- if (data[i] != 0U)
- return false;
- }
- return true;
-}
-
-inline void uuid::swap(uuid& rhs) BOOST_NOEXCEPT
-{
- uuid tmp = *this;
- *this = rhs;
- rhs = tmp;
-}
-
-inline bool operator== (uuid const& lhs, uuid const& rhs) BOOST_NOEXCEPT
-{
- return memcmp(lhs.data, rhs.data, sizeof(lhs.data)) == 0;
-}
-
-inline bool operator< (uuid const& lhs, uuid const& rhs) BOOST_NOEXCEPT
-{
- return memcmp(lhs.data, rhs.data, sizeof(lhs.data)) < 0;
-}
-
-} // namespace uuids
-} // namespace boost
-
-#endif // BOOST_UUID_DETAIL_UUID_GENERIC_IPP_INCLUDED_
diff --git a/contrib/restricted/boost/boost/uuid/detail/uuid_x86.ipp b/contrib/restricted/boost/boost/uuid/detail/uuid_x86.ipp
deleted file mode 100644
index 0ccddef88b..0000000000
--- a/contrib/restricted/boost/boost/uuid/detail/uuid_x86.ipp
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright Andrey Semashev 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)
- */
-/*!
- * \file uuid/detail/uuid_x86.ipp
- *
- * \brief This header contains optimized SSE implementation of \c boost::uuid operations.
- */
-
-#ifndef BOOST_UUID_DETAIL_UUID_X86_IPP_INCLUDED_
-#define BOOST_UUID_DETAIL_UUID_X86_IPP_INCLUDED_
-
-// MSVC does not always have immintrin.h (at least, not up to MSVC 10), so include the appropriate header for each instruction set
-#if defined(BOOST_UUID_USE_SSE41)
-#include <smmintrin.h>
-#elif defined(BOOST_UUID_USE_SSE3)
-#include <pmmintrin.h>
-#else
-#include <emmintrin.h>
-#endif
-
-#if defined(BOOST_MSVC) && defined(_M_X64) && !defined(BOOST_UUID_USE_SSE3) && (BOOST_MSVC < 1900 /* Fixed in Visual Studio 2015 */ )
-// At least MSVC 9 (VS2008) and 12 (VS2013) have an optimizer bug that sometimes results in incorrect SIMD code
-// generated in Release x64 mode. In particular, it affects operator==, where the compiler sometimes generates
-// pcmpeqd with a memory opereand instead of movdqu followed by pcmpeqd. The problem is that uuid can be
-// not aligned to 16 bytes and pcmpeqd causes alignment violation in this case. We cannot be sure that other
-// MSVC versions are not affected so we apply the workaround for all versions, except VS2015 on up where
-// the bug has been fixed.
-//
-// https://svn.boost.org/trac/boost/ticket/8509#comment:3
-// https://connect.microsoft.com/VisualStudio/feedbackdetail/view/981648#tabs
-#define BOOST_UUID_DETAIL_MSVC_BUG981648
-#if BOOST_MSVC >= 1600
-extern "C" void _ReadWriteBarrier(void);
-#pragma intrinsic(_ReadWriteBarrier)
-#endif
-#endif
-
-namespace boost {
-namespace uuids {
-namespace detail {
-
-BOOST_FORCEINLINE __m128i load_unaligned_si128(const uint8_t* p) BOOST_NOEXCEPT
-{
-#if defined(BOOST_UUID_USE_SSE3)
- return _mm_lddqu_si128(reinterpret_cast< const __m128i* >(p));
-#elif !defined(BOOST_UUID_DETAIL_MSVC_BUG981648)
- return _mm_loadu_si128(reinterpret_cast< const __m128i* >(p));
-#elif defined(BOOST_MSVC) && BOOST_MSVC >= 1600
- __m128i mm = _mm_loadu_si128(reinterpret_cast< const __m128i* >(p));
- // Make sure this load doesn't get merged with the subsequent instructions
- _ReadWriteBarrier();
- return mm;
-#else
- // VS2008 x64 doesn't respect _ReadWriteBarrier above, so we have to generate this crippled code to load unaligned data
- return _mm_unpacklo_epi64(_mm_loadl_epi64(reinterpret_cast< const __m128i* >(p)), _mm_loadl_epi64(reinterpret_cast< const __m128i* >(p + 8)));
-#endif
-}
-
-} // namespace detail
-
-inline bool uuid::is_nil() const BOOST_NOEXCEPT
-{
- __m128i mm = uuids::detail::load_unaligned_si128(data);
-#if defined(BOOST_UUID_USE_SSE41)
- return _mm_test_all_zeros(mm, mm) != 0;
-#else
- mm = _mm_cmpeq_epi32(mm, _mm_setzero_si128());
- return _mm_movemask_epi8(mm) == 0xFFFF;
-#endif
-}
-
-inline void uuid::swap(uuid& rhs) BOOST_NOEXCEPT
-{
- __m128i mm_this = uuids::detail::load_unaligned_si128(data);
- __m128i mm_rhs = uuids::detail::load_unaligned_si128(rhs.data);
- _mm_storeu_si128(reinterpret_cast< __m128i* >(rhs.data), mm_this);
- _mm_storeu_si128(reinterpret_cast< __m128i* >(data), mm_rhs);
-}
-
-inline bool operator== (uuid const& lhs, uuid const& rhs) BOOST_NOEXCEPT
-{
- __m128i mm_left = uuids::detail::load_unaligned_si128(lhs.data);
- __m128i mm_right = uuids::detail::load_unaligned_si128(rhs.data);
-
-#if defined(BOOST_UUID_USE_SSE41)
- __m128i mm = _mm_xor_si128(mm_left, mm_right);
- return _mm_test_all_zeros(mm, mm) != 0;
-#else
- __m128i mm_cmp = _mm_cmpeq_epi32(mm_left, mm_right);
- return _mm_movemask_epi8(mm_cmp) == 0xFFFF;
-#endif
-}
-
-inline bool operator< (uuid const& lhs, uuid const& rhs) BOOST_NOEXCEPT
-{
- __m128i mm_left = uuids::detail::load_unaligned_si128(lhs.data);
- __m128i mm_right = uuids::detail::load_unaligned_si128(rhs.data);
-
- // To emulate lexicographical_compare behavior we have to perform two comparisons - the forward and reverse one.
- // Then we know which bytes are equivalent and which ones are different, and for those different the comparison results
- // will be opposite. Then we'll be able to find the first differing comparison result (for both forward and reverse ways),
- // and depending on which way it is for, this will be the result of the operation. There are a few notes to consider:
- //
- // 1. Due to little endian byte order the first bytes go into the lower part of the xmm registers,
- // so the comparison results in the least significant bits will actually be the most signigicant for the final operation result.
- // This means we have to determine which of the comparison results have the least significant bit on, and this is achieved with
- // the "(x - 1) ^ x" trick.
- // 2. Because there is only signed comparison in SSE/AVX, we have to invert byte comparison results whenever signs of the corresponding
- // bytes are different. I.e. in signed comparison it's -1 < 1, but in unsigned it is the opposite (255 > 1). To do that we XOR left and right,
- // making the most significant bit of each byte 1 if the signs are different, and later apply this mask with another XOR to the comparison results.
- // 3. pcmpgtw compares for "greater" relation, so we swap the arguments to get what we need.
-
- const __m128i mm_signs_mask = _mm_xor_si128(mm_left, mm_right);
-
- __m128i mm_cmp = _mm_cmpgt_epi8(mm_right, mm_left), mm_rcmp = _mm_cmpgt_epi8(mm_left, mm_right);
-
- mm_cmp = _mm_xor_si128(mm_signs_mask, mm_cmp);
- mm_rcmp = _mm_xor_si128(mm_signs_mask, mm_rcmp);
-
- uint32_t cmp = static_cast< uint32_t >(_mm_movemask_epi8(mm_cmp)), rcmp = static_cast< uint32_t >(_mm_movemask_epi8(mm_rcmp));
-
- cmp = (cmp - 1u) ^ cmp;
- rcmp = (rcmp - 1u) ^ rcmp;
-
- return cmp < rcmp;
-}
-
-} // namespace uuids
-} // namespace boost
-
-#endif // BOOST_UUID_DETAIL_UUID_X86_IPP_INCLUDED_
diff --git a/contrib/restricted/boost/boost/uuid/entropy_error.hpp b/contrib/restricted/boost/boost/uuid/entropy_error.hpp
deleted file mode 100644
index 27f2936e5e..0000000000
--- a/contrib/restricted/boost/boost/uuid/entropy_error.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-//
-// Copyright (c) 2017 James E. King III
-//
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENCE_1_0.txt)
-//
-// Entropy error class
-//
-
-#ifndef BOOST_UUID_RANDOM_ENTROPY_ERROR_HPP
-#define BOOST_UUID_RANDOM_ENTROPY_ERROR_HPP
-
-#include <boost/cstdint.hpp>
-#include <stdexcept>
-#include <string>
-
-namespace boost {
-namespace uuids {
-
-//! \brief Given boost::system::system_error is in a module that
-//! is not header-only, we define our own exception type
-//! to handle entropy provider errors instead,
-class entropy_error : public std::runtime_error
-{
-public:
- entropy_error(boost::intmax_t errCode, const std::string& message)
- : std::runtime_error(message)
- , m_errcode(errCode)
- {
- }
-
- virtual boost::intmax_t errcode() const
- {
- return m_errcode;
- }
-
-private:
- boost::intmax_t m_errcode;
-};
-
-} // uuids
-} // boost
-
-#endif // BOOST_UUID_RANDOM_ENTROPY_ERROR_HPP
diff --git a/contrib/restricted/boost/boost/uuid/name_generator.hpp b/contrib/restricted/boost/boost/uuid/name_generator.hpp
deleted file mode 100644
index ead8174d1c..0000000000
--- a/contrib/restricted/boost/boost/uuid/name_generator.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-// Boost name_generator.hpp header file -----------------------------//
-
-// Copyright 2010 Andy Tompkins.
-// Copyright 2017 James E. King III
-
-// Distributed under the 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_UUID_NAME_GENERATOR_HPP
-#define BOOST_UUID_NAME_GENERATOR_HPP
-
-#include <boost/config.hpp>
-#include <boost/uuid/name_generator_sha1.hpp>
-
-#ifdef BOOST_HAS_PRAGMA_ONCE
-#pragma once
-#endif
-
-namespace boost {
-namespace uuids {
-
-//! \deprecated
-//! \brief this provides backwards compatibility with previous boost
-//! releases however it is now deprecated to ensure that once
-//! a new hashing algorithm is defined for name generation that
-//! there is no confusion - at that time this will be removed.
-typedef name_generator_sha1 name_generator;
-
-//! \brief this provides the latest name generator hashing algorithm
-//! regardless of boost release; if you do not need stable
-//! name generation across releases then this will suffice
-typedef name_generator_sha1 name_generator_latest;
-
-} // uuids
-} // boost
-
-#endif // BOOST_UUID_NAME_GENERATOR_HPP
diff --git a/contrib/restricted/boost/boost/uuid/name_generator_md5.hpp b/contrib/restricted/boost/boost/uuid/name_generator_md5.hpp
deleted file mode 100644
index 7b13698df2..0000000000
--- a/contrib/restricted/boost/boost/uuid/name_generator_md5.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-// Boost name_generator_md5.hpp header file ------------------------//
-
-// Copyright 2017 James E. King III
-
-// Distributed under the 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_UUID_NAME_GENERATOR_MD5_HPP
-#define BOOST_UUID_NAME_GENERATOR_MD5_HPP
-
-#include <boost/uuid/basic_name_generator.hpp>
-#include <boost/uuid/detail/md5.hpp>
-
-namespace boost {
-namespace uuids {
-
-//! \brief MD5 hashing is defined in RFC 4122 however it is not commonly
-//! used; the definition is provided for backwards compatibility.
-typedef basic_name_generator<detail::md5> name_generator_md5;
-
-} // uuids
-} // boost
-
-#endif // BOOST_UUID_NAME_GENERATOR_MD5_HPP
diff --git a/contrib/restricted/boost/boost/uuid/name_generator_sha1.hpp b/contrib/restricted/boost/boost/uuid/name_generator_sha1.hpp
deleted file mode 100644
index c34425f5b0..0000000000
--- a/contrib/restricted/boost/boost/uuid/name_generator_sha1.hpp
+++ /dev/null
@@ -1,26 +0,0 @@
-// Boost name_generator_sha1.hpp header file ------------------------//
-
-// Copyright 2010 Andy Tompkins.
-// Copyright 2017 James E. King III
-
-// Distributed under the 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_UUID_NAME_GENERATOR_SHA1_HPP
-#define BOOST_UUID_NAME_GENERATOR_SHA1_HPP
-
-#include <boost/uuid/basic_name_generator.hpp>
-#include <boost/uuid/detail/sha1.hpp>
-
-namespace boost {
-namespace uuids {
-
-//! \brief SHA1 hashing is the default method defined in RFC 4122 to be
-//! used when backwards compatibility is not necessary.
-typedef basic_name_generator<detail::sha1> name_generator_sha1;
-
-} // uuids
-} // boost
-
-#endif // BOOST_UUID_NAME_GENERATOR_SHA1_HPP
diff --git a/contrib/restricted/boost/boost/uuid/nil_generator.hpp b/contrib/restricted/boost/boost/uuid/nil_generator.hpp
deleted file mode 100644
index c3c5818376..0000000000
--- a/contrib/restricted/boost/boost/uuid/nil_generator.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-// Boost nil_generator.hpp header file ----------------------------------------------//
-
-// Copyright 2010 Andy Tompkins.
-// Distributed under the 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_UUID_NIL_GENERATOR_HPP
-#define BOOST_UUID_NIL_GENERATOR_HPP
-
-#include <boost/uuid/uuid.hpp>
-
-namespace boost {
-namespace uuids {
-
-// generate a nil uuid
-struct nil_generator {
- typedef uuid result_type;
-
- uuid operator()() const {
- // initialize to all zeros
- uuid u = {{0}};
- return u;
- }
-};
-
-inline uuid nil_uuid() {
- return nil_generator()();
-}
-
-}} // namespace boost::uuids
-
-#endif // BOOST_UUID_NIL_GENERATOR_HPP
-
diff --git a/contrib/restricted/boost/boost/uuid/random_generator.hpp b/contrib/restricted/boost/boost/uuid/random_generator.hpp
deleted file mode 100644
index c84fc5472c..0000000000
--- a/contrib/restricted/boost/boost/uuid/random_generator.hpp
+++ /dev/null
@@ -1,176 +0,0 @@
-// Boost random_generator.hpp header file ----------------------------------------------//
-
-// Copyright 2010 Andy Tompkins.
-// Copyright 2017 James E. King III
-// Distributed under the 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_UUID_RANDOM_GENERATOR_HPP
-#define BOOST_UUID_RANDOM_GENERATOR_HPP
-
-#include <boost/assert.hpp>
-#include <boost/core/enable_if.hpp>
-#include <boost/core/null_deleter.hpp>
-#include <boost/random/mersenne_twister.hpp>
-#include <boost/random/uniform_int.hpp>
-#include <boost/random/variate_generator.hpp>
-#include <boost/shared_ptr.hpp>
-#include <boost/tti/has_member_function.hpp>
-#include <boost/uuid/detail/random_provider.hpp>
-#include <boost/uuid/uuid.hpp>
-#include <limits>
-
-namespace boost {
-namespace uuids {
-
-namespace detail {
- template<class U>
- U& set_uuid_random_vv(U& u)
- {
- // set variant
- // must be 0b10xxxxxx
- *(u.begin() + 8) &= 0xBF;
- *(u.begin() + 8) |= 0x80;
-
- // set version
- // must be 0b0100xxxx
- *(u.begin() + 6) &= 0x4F; //0b01001111
- *(u.begin() + 6) |= 0x40; //0b01000000
-
- return u;
- }
-
- BOOST_TTI_HAS_MEMBER_FUNCTION(seed)
-}
-
-//! generate a random-based uuid
-//! \param[in] UniformRandomNumberGenerator see Boost.Random documentation
-template <typename UniformRandomNumberGenerator>
-class basic_random_generator {
-private:
- typedef uniform_int<unsigned long> distribution_type;
- typedef variate_generator<UniformRandomNumberGenerator*, distribution_type> generator_type;
-
-public:
- typedef uuid result_type;
-
- // default constructor creates the random number generator and
- // if the UniformRandomNumberGenerator is a PseudoRandomNumberGenerator
- // then it gets seeded by a random_provider.
- basic_random_generator()
- : pURNG(new UniformRandomNumberGenerator)
- , generator
- ( pURNG.get()
- , distribution_type
- ( (std::numeric_limits<unsigned long>::min)()
- , (std::numeric_limits<unsigned long>::max)()
- )
- )
- {
- // seed the random number generator if it is capable
- seed(*pURNG);
- }
-
- // keep a reference to a random number generator
- // don't seed a given random number generator
- explicit basic_random_generator(UniformRandomNumberGenerator& gen)
- : pURNG(&gen, boost::null_deleter())
- , generator
- ( pURNG.get()
- , distribution_type
- ( (std::numeric_limits<unsigned long>::min)()
- , (std::numeric_limits<unsigned long>::max)()
- )
- )
- {}
-
- // keep a pointer to a random number generator
- // don't seed a given random number generator
- explicit basic_random_generator(UniformRandomNumberGenerator* pGen)
- : pURNG(pGen, boost::null_deleter())
- , generator
- ( pURNG.get()
- , distribution_type
- ( (std::numeric_limits<unsigned long>::min)()
- , (std::numeric_limits<unsigned long>::max)()
- )
- )
- {
- BOOST_ASSERT(pURNG);
- }
-
- result_type operator()()
- {
- result_type u;
-
- int i=0;
- unsigned long random_value = generator();
- for (uuid::iterator it=u.begin(); it!=u.end(); ++it, ++i) {
- if (i==sizeof(unsigned long)) {
- random_value = generator();
- i = 0;
- }
-
- // static_cast gets rid of warnings of converting unsigned long to boost::uint8_t
- *it = static_cast<uuid::value_type>((random_value >> (i*8)) & 0xFF);
- }
-
- return detail::set_uuid_random_vv(u);
- }
-
-private:
- // Detect whether UniformRandomNumberGenerator has a seed() method which indicates that
- // it is a PseudoRandomNumberGenerator and needs a seed to initialize it. This allows
- // basic_random_generator to take any type of UniformRandomNumberGenerator and still
- // meet the post-conditions for the default constructor.
-
- template<class MaybePseudoRandomNumberGenerator>
- typename boost::enable_if<detail::has_member_function_seed<MaybePseudoRandomNumberGenerator, void> >::type
- seed(MaybePseudoRandomNumberGenerator& rng)
- {
- detail::random_provider seeder;
- rng.seed(seeder);
- }
-
- template<class MaybePseudoRandomNumberGenerator>
- typename boost::disable_if<detail::has_member_function_seed<MaybePseudoRandomNumberGenerator, void> >::type
- seed(MaybePseudoRandomNumberGenerator&)
- {
- }
-
- shared_ptr<UniformRandomNumberGenerator> pURNG;
- generator_type generator;
-};
-
-//! \brief a far less complex random generator that uses
-//! operating system provided entropy which will
-//! satisfy the majority of use cases
-class random_generator_pure
-{
-public:
- typedef uuid result_type;
-
- //! \returns a random, valid uuid
- //! \throws entropy_error
- result_type operator()()
- {
- result_type result;
- prov_.get_random_bytes(&result, sizeof(result_type));
- return detail::set_uuid_random_vv(result);
- }
-
-private:
- detail::random_provider prov_;
-};
-
-#if defined(BOOST_UUID_RANDOM_GENERATOR_COMPAT)
-typedef basic_random_generator<mt19937> random_generator;
-#else
-typedef random_generator_pure random_generator;
-typedef basic_random_generator<mt19937> random_generator_mt19937;
-#endif
-
-}} // namespace boost::uuids
-
-#endif // BOOST_UUID_RANDOM_GENERATOR_HPP
diff --git a/contrib/restricted/boost/boost/uuid/sha1.hpp b/contrib/restricted/boost/boost/uuid/sha1.hpp
deleted file mode 100644
index 4a689cf261..0000000000
--- a/contrib/restricted/boost/boost/uuid/sha1.hpp
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * Distributed under the 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_UUID_SHA1_DEPRECATED_HPP
-#define BOOST_UUID_SHA1_DEPRECATED_HPP
-
-#include <boost/uuid/detail/sha1.hpp>
-
-#if defined(__GNUC__) || defined(_MSC_VER)
-#pragma message("This header is implementation detail and provided for backwards compatibility.")
-#endif
-
-#endif // BOOST_UUID_SHA1_DEPRECATED_HPP
diff --git a/contrib/restricted/boost/boost/uuid/string_generator.hpp b/contrib/restricted/boost/boost/uuid/string_generator.hpp
deleted file mode 100644
index b75f166713..0000000000
--- a/contrib/restricted/boost/boost/uuid/string_generator.hpp
+++ /dev/null
@@ -1,198 +0,0 @@
-// Boost string_generator.hpp header file ----------------------------------------------//
-
-// Copyright 2010 Andy Tompkins.
-// Distributed under the 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_UUID_STRING_GENERATOR_HPP
-#define BOOST_UUID_STRING_GENERATOR_HPP
-
-#include <boost/uuid/uuid.hpp>
-#include <string>
-#include <cstring> // for strlen, wcslen
-#include <iterator>
-#include <algorithm> // for find
-#include <stdexcept>
-#include <boost/throw_exception.hpp>
-
-#ifdef BOOST_NO_STDC_NAMESPACE
-namespace std {
- using ::strlen;
- using ::wcslen;
-} //namespace std
-#endif //BOOST_NO_STDC_NAMESPACE
-
-namespace boost {
-namespace uuids {
-
-// generate a uuid from a string
-// lexical_cast works fine using uuid_io.hpp
-// but this generator should accept more forms
-// and be more efficient
-// would like to accept the following forms:
-// 0123456789abcdef0123456789abcdef
-// 01234567-89ab-cdef-0123-456789abcdef
-// {01234567-89ab-cdef-0123-456789abcdef}
-// {0123456789abcdef0123456789abcdef}
-// others?
-struct string_generator {
- typedef uuid result_type;
-
- template <typename ch, typename char_traits, typename alloc>
- uuid operator()(std::basic_string<ch, char_traits, alloc> const& s) const {
- return operator()(s.begin(), s.end());
- }
-
- uuid operator()(char const*const s) const {
- return operator()(s, s+std::strlen(s));
- }
-
- uuid operator()(wchar_t const*const s) const {
- return operator()(s, s+std::wcslen(s));
- }
-
- template <typename CharIterator>
- uuid operator()(CharIterator begin, CharIterator end) const
- {
- typedef typename std::iterator_traits<CharIterator>::value_type char_type;
-
- // check open brace
- char_type c = get_next_char(begin, end);
- bool has_open_brace = is_open_brace(c);
- char_type open_brace_char = c;
- if (has_open_brace) {
- c = get_next_char(begin, end);
- }
-
- bool has_dashes = false;
-
- uuid u;
- int i=0;
- for (uuid::iterator it_byte=u.begin(); it_byte!=u.end(); ++it_byte, ++i) {
- if (it_byte != u.begin()) {
- c = get_next_char(begin, end);
- }
-
- if (i == 4) {
- has_dashes = is_dash(c);
- if (has_dashes) {
- c = get_next_char(begin, end);
- }
- }
-
- // if there are dashes, they must be in every slot
- else if (i == 6 || i == 8 || i == 10) {
- if (has_dashes == true) {
- if (is_dash(c)) {
- c = get_next_char(begin, end);
- } else {
- throw_invalid();
- }
- }
- }
-
-
- *it_byte = get_value(c);
-
- c = get_next_char(begin, end);
- *it_byte <<= 4;
- *it_byte |= get_value(c);
- }
-
- // check close brace
- if (has_open_brace) {
- c = get_next_char(begin, end);
- check_close_brace(c, open_brace_char);
- }
-
- // check end of string - any additional data is an invalid uuid
- if (begin != end) {
- throw_invalid();
- }
-
- return u;
- }
-
-private:
- template <typename CharIterator>
- typename std::iterator_traits<CharIterator>::value_type
- get_next_char(CharIterator& begin, CharIterator end) const {
- if (begin == end) {
- throw_invalid();
- }
- return *begin++;
- }
-
- unsigned char get_value(char c) const {
- static char const digits_begin[] = "0123456789abcdefABCDEF";
- static size_t digits_len = (sizeof(digits_begin) / sizeof(char)) - 1;
- static char const*const digits_end = digits_begin + digits_len;
-
- static unsigned char const values[] =
- { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,10,11,12,13,14,15 };
-
- size_t pos = std::find(digits_begin, digits_end, c) - digits_begin;
- if (pos >= digits_len) {
- throw_invalid();
- }
- return values[pos];
- }
-
- unsigned char get_value(wchar_t c) const {
- static wchar_t const digits_begin[] = L"0123456789abcdefABCDEF";
- static size_t digits_len = (sizeof(digits_begin) / sizeof(wchar_t)) - 1;
- static wchar_t const*const digits_end = digits_begin + digits_len;
-
- static unsigned char const values[] =
- { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,10,11,12,13,14,15 };
-
- size_t pos = std::find(digits_begin, digits_end, c) - digits_begin;
- if (pos >= digits_len) {
- throw_invalid();
- }
- return values[pos];
- }
-
- bool is_dash(char c) const {
- return c == '-';
- }
-
- bool is_dash(wchar_t c) const {
- return c == L'-';
- }
-
- // return closing brace
- bool is_open_brace(char c) const {
- return (c == '{');
- }
-
- bool is_open_brace(wchar_t c) const {
- return (c == L'{');
- }
-
- void check_close_brace(char c, char open_brace) const {
- if (open_brace == '{' && c == '}') {
- //great
- } else {
- throw_invalid();
- }
- }
-
- void check_close_brace(wchar_t c, wchar_t open_brace) const {
- if (open_brace == L'{' && c == L'}') {
- // great
- } else {
- throw_invalid();
- }
- }
-
- void throw_invalid() const {
- BOOST_THROW_EXCEPTION(std::runtime_error("invalid uuid string"));
- }
-};
-
-}} // namespace boost::uuids
-
-#endif //BOOST_UUID_STRING_GENERATOR_HPP
-
diff --git a/contrib/restricted/boost/boost/uuid/uuid.hpp b/contrib/restricted/boost/boost/uuid/uuid.hpp
deleted file mode 100644
index e542d91b20..0000000000
--- a/contrib/restricted/boost/boost/uuid/uuid.hpp
+++ /dev/null
@@ -1,212 +0,0 @@
-// Boost uuid.hpp header file ----------------------------------------------//
-
-// Copyright 2006 Andy Tompkins.
-// Distributed under the 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
-// 06 Feb 2006 - Initial Revision
-// 09 Nov 2006 - fixed variant and version bits for v4 guids
-// 13 Nov 2006 - added serialization
-// 17 Nov 2006 - added name-based guid creation
-// 20 Nov 2006 - add fixes for gcc (from Tim Blechmann)
-// 07 Mar 2007 - converted to header only
-// 10 May 2007 - removed need for Boost.Thread
-// - added better seed - thanks Peter Dimov
-// - removed null()
-// - replaced byte_count() and output_bytes() with size() and begin() and end()
-// 11 May 2007 - fixed guid(ByteInputIterator first, ByteInputIterator last)
-// - optimized operator>>
-// 14 May 2007 - converted from guid to uuid
-// 29 May 2007 - uses new implementation of sha1
-// 01 Jun 2007 - removed using namespace directives
-// 09 Nov 2007 - moved implementation to uuid.ipp file
-// 12 Nov 2007 - moved serialize code to uuid_serialize.hpp file
-// 25 Feb 2008 - moved to namespace boost::uuids
-// 19 Mar 2009 - changed to a POD, reorganized files
-// 28 Nov 2009 - disabled deprecated warnings for MSVC
-// 30 Nov 2009 - used BOOST_STATIC_CONSTANT
-// 02 Dec 2009 - removed BOOST_STATIC_CONSTANT - not all compilers like it
-// 29 Apr 2013 - added support for noexcept and constexpr, added optimizations for SSE/AVX
-
-#ifndef BOOST_UUID_HPP
-#define BOOST_UUID_HPP
-
-#include <cstddef>
-#include <boost/cstdint.hpp>
-#include <boost/uuid/detail/config.hpp>
-#ifndef BOOST_UUID_NO_TYPE_TRAITS
-#include <boost/type_traits/is_pod.hpp>
-#include <boost/type_traits/integral_constant.hpp>
-#endif
-
-#ifdef BOOST_HAS_PRAGMA_ONCE
-#pragma once
-#endif
-
-#if defined(_MSC_VER)
-#pragma warning(push) // Save warning settings.
-#pragma warning(disable : 4996) // Disable deprecated std::swap_ranges, std::equal
-#endif
-
-#ifdef BOOST_NO_STDC_NAMESPACE
-namespace std {
- using ::size_t;
- using ::ptrdiff_t;
-} //namespace std
-#endif //BOOST_NO_STDC_NAMESPACE
-
-namespace boost {
-namespace uuids {
-
-struct uuid
-{
-public:
- typedef uint8_t value_type;
- typedef uint8_t& reference;
- typedef uint8_t const& const_reference;
- typedef uint8_t* iterator;
- typedef uint8_t const* const_iterator;
- typedef std::size_t size_type;
- typedef std::ptrdiff_t difference_type;
-
- // This does not work on some compilers
- // They seem to want the variable definec in
- // a cpp file
- //BOOST_STATIC_CONSTANT(size_type, static_size = 16);
- static BOOST_CONSTEXPR size_type static_size() BOOST_NOEXCEPT { return 16; }
-
-public:
- iterator begin() BOOST_NOEXCEPT { return data; }
- const_iterator begin() const BOOST_NOEXCEPT { return data; }
- iterator end() BOOST_NOEXCEPT { return data+size(); }
- const_iterator end() const BOOST_NOEXCEPT { return data+size(); }
-
- BOOST_CONSTEXPR size_type size() const BOOST_NOEXCEPT { return static_size(); }
-
- bool is_nil() const BOOST_NOEXCEPT;
-
- enum variant_type
- {
- variant_ncs, // NCS backward compatibility
- variant_rfc_4122, // defined in RFC 4122 document
- variant_microsoft, // Microsoft Corporation backward compatibility
- variant_future // future definition
- };
- variant_type variant() const BOOST_NOEXCEPT
- {
- // variant is stored in octet 7
- // which is index 8, since indexes count backwards
- unsigned char octet7 = data[8]; // octet 7 is array index 8
- if ( (octet7 & 0x80) == 0x00 ) { // 0b0xxxxxxx
- return variant_ncs;
- } else if ( (octet7 & 0xC0) == 0x80 ) { // 0b10xxxxxx
- return variant_rfc_4122;
- } else if ( (octet7 & 0xE0) == 0xC0 ) { // 0b110xxxxx
- return variant_microsoft;
- } else {
- //assert( (octet7 & 0xE0) == 0xE0 ) // 0b111xxxx
- return variant_future;
- }
- }
-
- enum version_type
- {
- version_unknown = -1,
- version_time_based = 1,
- version_dce_security = 2,
- version_name_based_md5 = 3,
- version_random_number_based = 4,
- version_name_based_sha1 = 5
- };
- version_type version() const BOOST_NOEXCEPT
- {
- // version is stored in octet 9
- // which is index 6, since indexes count backwards
- uint8_t octet9 = data[6];
- if ( (octet9 & 0xF0) == 0x10 ) {
- return version_time_based;
- } else if ( (octet9 & 0xF0) == 0x20 ) {
- return version_dce_security;
- } else if ( (octet9 & 0xF0) == 0x30 ) {
- return version_name_based_md5;
- } else if ( (octet9 & 0xF0) == 0x40 ) {
- return version_random_number_based;
- } else if ( (octet9 & 0xF0) == 0x50 ) {
- return version_name_based_sha1;
- } else {
- return version_unknown;
- }
- }
-
- // note: linear complexity
- void swap(uuid& rhs) BOOST_NOEXCEPT;
-
-public:
- // or should it be array<uint8_t, 16>
- uint8_t data[16];
-};
-
-bool operator== (uuid const& lhs, uuid const& rhs) BOOST_NOEXCEPT;
-bool operator< (uuid const& lhs, uuid const& rhs) BOOST_NOEXCEPT;
-
-inline bool operator!=(uuid const& lhs, uuid const& rhs) BOOST_NOEXCEPT
-{
- return !(lhs == rhs);
-}
-
-inline bool operator>(uuid const& lhs, uuid const& rhs) BOOST_NOEXCEPT
-{
- return rhs < lhs;
-}
-inline bool operator<=(uuid const& lhs, uuid const& rhs) BOOST_NOEXCEPT
-{
- return !(rhs < lhs);
-}
-
-inline bool operator>=(uuid const& lhs, uuid const& rhs) BOOST_NOEXCEPT
-{
- return !(lhs < rhs);
-}
-
-inline void swap(uuid& lhs, uuid& rhs) BOOST_NOEXCEPT
-{
- lhs.swap(rhs);
-}
-
-// This is equivalent to boost::hash_range(u.begin(), u.end());
-inline std::size_t hash_value(uuid const& u) BOOST_NOEXCEPT
-{
- std::size_t seed = 0;
- for(uuid::const_iterator i=u.begin(), e=u.end(); i != e; ++i)
- {
- seed ^= static_cast<std::size_t>(*i) + 0x9e3779b9 + (seed << 6) + (seed >> 2);
- }
-
- return seed;
-}
-
-}} //namespace boost::uuids
-
-#ifndef BOOST_UUID_NO_TYPE_TRAITS
-// type traits specializations
-namespace boost {
-
-template <>
-struct is_pod<uuids::uuid> : true_type {};
-
-} // namespace boost
-#endif
-
-#if defined(BOOST_UUID_USE_SSE2)
-#include <boost/uuid/detail/uuid_x86.ipp>
-#else
-#include <boost/uuid/detail/uuid_generic.ipp>
-#endif
-
-#if defined(_MSC_VER)
-#pragma warning(pop) // Restore warnings to previous state.
-#endif
-
-#endif // BOOST_UUID_HPP
diff --git a/contrib/restricted/boost/boost/uuid/uuid_generators.hpp b/contrib/restricted/boost/boost/uuid/uuid_generators.hpp
deleted file mode 100644
index 29d39ccf65..0000000000
--- a/contrib/restricted/boost/boost/uuid/uuid_generators.hpp
+++ /dev/null
@@ -1,19 +0,0 @@
-// Boost uuid_generators.hpp header file ----------------------------------------------//
-
-// Copyright 2006 Andy Tompkins.
-// Distributed under the 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
-// 06 Feb 2006 - Initial Revision
-
-#ifndef BOOST_UUID_GENERATORS_HPP
-#define BOOST_UUID_GENERATORS_HPP
-
-#include <boost/uuid/nil_generator.hpp>
-#include <boost/uuid/string_generator.hpp>
-#include <boost/uuid/name_generator.hpp>
-#include <boost/uuid/random_generator.hpp>
-
-#endif //BOOST_UUID_GENERATORS_HPP
diff --git a/contrib/restricted/boost/boost/uuid/uuid_io.hpp b/contrib/restricted/boost/boost/uuid/uuid_io.hpp
deleted file mode 100644
index e92e88131b..0000000000
--- a/contrib/restricted/boost/boost/uuid/uuid_io.hpp
+++ /dev/null
@@ -1,198 +0,0 @@
-// Boost uuid_io.hpp header file ----------------------------------------------//
-
-// Copyright 2009 Andy Tompkins.
-// Distributed under the 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
-// 20 Mar 2009 - Initial Revision
-// 28 Nov 2009 - disabled deprecated warnings for MSVC
-
-#ifndef BOOST_UUID_IO_HPP
-#define BOOST_UUID_IO_HPP
-
-#include <boost/uuid/uuid.hpp>
-#include <ios>
-#include <ostream>
-#include <istream>
-#include <boost/io/ios_state.hpp>
-#include <locale>
-#include <algorithm>
-
-#if defined(_MSC_VER)
-#pragma warning(push) // Save warning settings.
-#pragma warning(disable : 4996) // Disable deprecated std::ctype<char>::widen, std::copy
-#endif
-
-namespace boost {
-namespace uuids {
-
-template <typename ch, typename char_traits>
- std::basic_ostream<ch, char_traits>& operator<<(std::basic_ostream<ch, char_traits> &os, uuid const& u)
-{
- io::ios_flags_saver flags_saver(os);
- io::basic_ios_fill_saver<ch, char_traits> fill_saver(os);
-
- const typename std::basic_ostream<ch, char_traits>::sentry ok(os);
- if (ok) {
- const std::streamsize width = os.width(0);
- const std::streamsize uuid_width = 36;
- const std::ios_base::fmtflags flags = os.flags();
- const typename std::basic_ios<ch, char_traits>::char_type fill = os.fill();
- if (flags & (std::ios_base::right | std::ios_base::internal)) {
- for (std::streamsize i=uuid_width; i<width; i++) {
- os << fill;
- }
- }
-
- os << std::hex << std::right;
- os.fill(os.widen('0'));
-
- std::size_t i=0;
- for (uuid::const_iterator i_data = u.begin(); i_data!=u.end(); ++i_data, ++i) {
- os.width(2);
- os << static_cast<unsigned int>(*i_data);
- if (i == 3 || i == 5 || i == 7 || i == 9) {
- os << os.widen('-');
- }
- }
-
- if (flags & std::ios_base::left) {
- for (std::streamsize s=uuid_width; s<width; s++) {
- os << fill;
- }
- }
-
- os.width(0); //used the width so reset it
- }
- return os;
-}
-
-template <typename ch, typename char_traits>
- std::basic_istream<ch, char_traits>& operator>>(std::basic_istream<ch, char_traits> &is, uuid &u)
-{
- const typename std::basic_istream<ch, char_traits>::sentry ok(is);
- if (ok) {
- unsigned char data[16];
-
- typedef std::ctype<ch> ctype_t;
- ctype_t const& ctype = std::use_facet<ctype_t>(is.getloc());
-
- ch xdigits[16];
- {
- char szdigits[] = "0123456789ABCDEF";
- ctype.widen(szdigits, szdigits+16, xdigits);
- }
- ch*const xdigits_end = xdigits+16;
-
- ch c;
- for (std::size_t i=0; i<u.size() && is; ++i) {
- is >> c;
- c = ctype.toupper(c);
-
- ch* f = std::find(xdigits, xdigits_end, c);
- if (f == xdigits_end) {
- is.setstate(std::ios_base::failbit);
- break;
- }
-
- unsigned char byte = static_cast<unsigned char>(std::distance(&xdigits[0], f));
-
- is >> c;
- c = ctype.toupper(c);
- f = std::find(xdigits, xdigits_end, c);
- if (f == xdigits_end) {
- is.setstate(std::ios_base::failbit);
- break;
- }
-
- byte <<= 4;
- byte |= static_cast<unsigned char>(std::distance(&xdigits[0], f));
-
- data[i] = byte;
-
- if (is) {
- if (i == 3 || i == 5 || i == 7 || i == 9) {
- is >> c;
- if (c != is.widen('-')) is.setstate(std::ios_base::failbit);
- }
- }
- }
-
- if (is) {
- std::copy(data, data+16, u.begin());
- }
- }
- return is;
-}
-
-namespace detail {
-inline char to_char(size_t i) {
- if (i <= 9) {
- return static_cast<char>('0' + i);
- } else {
- return static_cast<char>('a' + (i-10));
- }
-}
-
-inline wchar_t to_wchar(size_t i) {
- if (i <= 9) {
- return static_cast<wchar_t>(L'0' + i);
- } else {
- return static_cast<wchar_t>(L'a' + (i-10));
- }
-}
-
-} // namespace detail
-
-inline std::string to_string(uuid const& u)
-{
- std::string result;
- result.reserve(36);
-
- std::size_t i=0;
- for (uuid::const_iterator it_data = u.begin(); it_data!=u.end(); ++it_data, ++i) {
- const size_t hi = ((*it_data) >> 4) & 0x0F;
- result += detail::to_char(hi);
-
- const size_t lo = (*it_data) & 0x0F;
- result += detail::to_char(lo);
-
- if (i == 3 || i == 5 || i == 7 || i == 9) {
- result += '-';
- }
- }
- return result;
-}
-
-#ifndef BOOST_NO_STD_WSTRING
-inline std::wstring to_wstring(uuid const& u)
-{
- std::wstring result;
- result.reserve(36);
-
- std::size_t i=0;
- for (uuid::const_iterator it_data = u.begin(); it_data!=u.end(); ++it_data, ++i) {
- const size_t hi = ((*it_data) >> 4) & 0x0F;
- result += detail::to_wchar(hi);
-
- const size_t lo = (*it_data) & 0x0F;
- result += detail::to_wchar(lo);
-
- if (i == 3 || i == 5 || i == 7 || i == 9) {
- result += L'-';
- }
- }
- return result;
-}
-
-#endif
-
-}} //namespace boost::uuids
-
-#if defined(_MSC_VER)
-#pragma warning(pop) // Restore warnings to previous state.
-#endif
-
-#endif // BOOST_UUID_IO_HPP
diff --git a/contrib/restricted/boost/boost/uuid/uuid_serialize.hpp b/contrib/restricted/boost/boost/uuid/uuid_serialize.hpp
deleted file mode 100644
index 3d8a608b18..0000000000
--- a/contrib/restricted/boost/boost/uuid/uuid_serialize.hpp
+++ /dev/null
@@ -1,20 +0,0 @@
-// Boost uuid_serialize.hpp header file ----------------------------------------------//
-
-// Copyright 2007 Andy Tompkins.
-// Distributed under the 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
-// 12 Nov 2007 - Initial Revision
-// 25 Feb 2008 - moved to namespace boost::uuids::detail
-
-#ifndef BOOST_UUID_SERIALIZE_HPP
-#define BOOST_UUID_SERIALIZE_HPP
-
-#include <boost/uuid/uuid.hpp>
-#include <boost/serialization/level.hpp>
-
-BOOST_CLASS_IMPLEMENTATION(boost::uuids::uuid, boost::serialization::primitive_type)
-
-#endif // BOOST_UUID_SERIALIZE_HPP
diff --git a/contrib/restricted/boost/coroutine/include/boost/coroutine/detail/config.hpp b/contrib/restricted/boost/coroutine/include/boost/coroutine/detail/config.hpp
index 12632bbf7b..13fcfb5cdd 100644
--- a/contrib/restricted/boost/coroutine/include/boost/coroutine/detail/config.hpp
+++ b/contrib/restricted/boost/coroutine/include/boost/coroutine/detail/config.hpp
@@ -10,14 +10,6 @@
#include <boost/config.hpp>
#include <boost/detail/workaround.hpp>
-#ifndef BOOST_COROUTINES_NO_DEPRECATION_WARNING
-# if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__DMC__)
-# pragma message ("Warning: Boost.Coroutine is now deprecated. Please switch to Boost.Coroutine2. To disable this warning message, define BOOST_COROUTINES_NO_DEPRECATION_WARNING.")
-# elif defined(__GNUC__) || defined(__HP_aCC) || defined(__SUNPRO_CC) || defined(__IBMCPP__)
-# warning "Boost.Coroutine is now deprecated. Please switch to Boost.Coroutine2. To disable this warning message, define BOOST_COROUTINES_NO_DEPRECATION_WARNING."
-# endif
-#endif
-
#ifdef BOOST_COROUTINES_DECL
# undef BOOST_COROUTINES_DECL
#endif
@@ -46,4 +38,9 @@
#define BOOST_COROUTINES_UNIDIRECT
#define BOOST_COROUTINES_SYMMETRIC
+#if defined(__OpenBSD__)
+// stacks need mmap(2) with MAP_STACK
+# define BOOST_COROUTINES_USE_MAP_STACK
+#endif
+
#endif // BOOST_COROUTINES_DETAIL_CONFIG_H
diff --git a/contrib/restricted/boost/coroutine/include/boost/coroutine/detail/preallocated.hpp b/contrib/restricted/boost/coroutine/include/boost/coroutine/detail/preallocated.hpp
index 1658561ac8..a18acd3740 100644
--- a/contrib/restricted/boost/coroutine/include/boost/coroutine/detail/preallocated.hpp
+++ b/contrib/restricted/boost/coroutine/include/boost/coroutine/detail/preallocated.hpp
@@ -22,7 +22,7 @@ namespace boost {
namespace coroutines {
namespace detail {
-struct preallocated {
+struct BOOST_COROUTINES_DECL preallocated {
void * sp;
std::size_t size;
stack_context sctx;
diff --git a/contrib/restricted/boost/coroutine/include/boost/coroutine/exceptions.hpp b/contrib/restricted/boost/coroutine/include/boost/coroutine/exceptions.hpp
index 5dbd55f106..c6cbd01d8d 100644
--- a/contrib/restricted/boost/coroutine/include/boost/coroutine/exceptions.hpp
+++ b/contrib/restricted/boost/coroutine/include/boost/coroutine/exceptions.hpp
@@ -11,7 +11,7 @@
#include <string>
#include <boost/config.hpp>
-#include <boost/detail/scoped_enum_emulation.hpp>
+#include <boost/core/scoped_enum.hpp>
#include <boost/system/error_code.hpp>
#include <boost/system/system_error.hpp>
#include <boost/type_traits/integral_constant.hpp>
diff --git a/contrib/restricted/boost/coroutine/include/boost/coroutine/stack_context.hpp b/contrib/restricted/boost/coroutine/include/boost/coroutine/stack_context.hpp
index 433056f7a1..3f57b2527b 100644
--- a/contrib/restricted/boost/coroutine/include/boost/coroutine/stack_context.hpp
+++ b/contrib/restricted/boost/coroutine/include/boost/coroutine/stack_context.hpp
@@ -21,7 +21,7 @@ namespace boost {
namespace coroutines {
#if defined(BOOST_USE_SEGMENTED_STACKS)
-struct stack_context
+struct BOOST_COROUTINES_DECL stack_context
{
typedef void * segments_context[BOOST_CONTEXT_SEGMENTS];
@@ -40,7 +40,7 @@ struct stack_context
{}
};
#else
-struct stack_context
+struct BOOST_COROUTINES_DECL stack_context
{
std::size_t size;
void * sp;
diff --git a/contrib/restricted/boost/coroutine/src/posix/stack_traits.cpp b/contrib/restricted/boost/coroutine/src/posix/stack_traits.cpp
index b629943221..7a467b7493 100644
--- a/contrib/restricted/boost/coroutine/src/posix/stack_traits.cpp
+++ b/contrib/restricted/boost/coroutine/src/posix/stack_traits.cpp
@@ -19,7 +19,7 @@ extern "C" {
#include <cmath>
#include <boost/assert.hpp>
-#include <boost/thread.hpp>
+#include <boost/config.hpp>
#if !defined (SIGSTKSZ)
# define SIGSTKSZ (8 * 1024)
@@ -32,36 +32,27 @@ extern "C" {
namespace {
-void pagesize_( std::size_t * size)
+std::size_t pagesize()
{
// conform to POSIX.1-2001
- * size = ::sysconf( _SC_PAGESIZE);
+ return ::sysconf( _SC_PAGESIZE);
}
-void stacksize_limit_( rlimit * limit)
+rlim_t stacksize_limit_()
{
+ rlimit limit;
// conforming to POSIX.1-2001
#if defined(BOOST_DISABLE_ASSERTS) || defined(NDEBUG)
- ::getrlimit( RLIMIT_STACK, limit);
+ ::getrlimit( RLIMIT_STACK, & limit);
#else
- const int result = ::getrlimit( RLIMIT_STACK, limit);
+ const int result = ::getrlimit( RLIMIT_STACK, & limit);
BOOST_ASSERT( 0 == result);
#endif
+ return limit.rlim_max;
}
-std::size_t pagesize()
-{
- static std::size_t size = 0;
- static boost::once_flag flag;
- boost::call_once( flag, pagesize_, & size);
- return size;
-}
-
-rlimit stacksize_limit()
-{
- static rlimit limit;
- static boost::once_flag flag;
- boost::call_once( flag, stacksize_limit_, & limit);
+rlim_t stacksize_limit() BOOST_NOEXCEPT_OR_NOTHROW {
+ static rlim_t limit = stacksize_limit_();
return limit;
}
@@ -72,11 +63,14 @@ namespace coroutines {
bool
stack_traits::is_unbounded() BOOST_NOEXCEPT
-{ return RLIM_INFINITY == stacksize_limit().rlim_max; }
+{ return RLIM_INFINITY == stacksize_limit(); }
std::size_t
stack_traits::page_size() BOOST_NOEXCEPT
-{ return pagesize(); }
+{
+ static std::size_t size = pagesize();
+ return size;
+}
std::size_t
stack_traits::default_size() BOOST_NOEXCEPT
@@ -98,7 +92,7 @@ std::size_t
stack_traits::maximum_size() BOOST_NOEXCEPT
{
BOOST_ASSERT( ! is_unbounded() );
- return static_cast< std::size_t >( stacksize_limit().rlim_max);
+ return static_cast< std::size_t >( stacksize_limit() );
}
}}
diff --git a/contrib/restricted/boost/property_tree/README.md b/contrib/restricted/boost/property_tree/README.md
new file mode 100644
index 0000000000..c1a1318d95
--- /dev/null
+++ b/contrib/restricted/boost/property_tree/README.md
@@ -0,0 +1,22 @@
+# Maintainer
+
+This library is currently maintained by [Richard Hodges](mailto:hodges.r@gmail.com) with generous support
+from the C++ Alliance.
+
+# Build Status
+
+Branch | Status
+--------|-------
+develop | [![CI](https://github.com/boostorg/property_tree/actions/workflows/ci.yml/badge.svg?branch=develop)](https://github.com/boostorg/property_tree/actions/workflows/ci.yml)
+master | [![CI](https://github.com/boostorg/property_tree/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/boostorg/property_tree/actions/workflows/ci.yml)
+
+# Licence
+
+This software is distributed under the [Boost Software License, Version 1.0](http://www.boost.org/LICENSE_1_0.txt).
+
+# Original Work
+
+This library is the work of Marcin Kalicinski and Sebastian Redl<br/>
+
+Copyright (C) 2002-2006 Marcin Kalicinski<br/>
+Copyright (C) 2009 Sebastian Redl
diff --git a/contrib/restricted/boost/property_tree/include/boost/property_tree/exceptions.hpp b/contrib/restricted/boost/property_tree/include/boost/property_tree/exceptions.hpp
index 6435bff85a..de7b5774ea 100644
--- a/contrib/restricted/boost/property_tree/include/boost/property_tree/exceptions.hpp
+++ b/contrib/restricted/boost/property_tree/include/boost/property_tree/exceptions.hpp
@@ -15,8 +15,8 @@
#include <boost/property_tree/ptree_fwd.hpp>
#include <boost/any.hpp>
-#include <string>
#include <stdexcept>
+#include <string>
namespace boost { namespace property_tree
{
@@ -31,7 +31,7 @@ namespace boost { namespace property_tree
/// @param what The message to associate with this error.
ptree_error(const std::string &what);
- ~ptree_error();
+ ~ptree_error() BOOST_OVERRIDE;
};
@@ -48,7 +48,7 @@ namespace boost { namespace property_tree
template<class T> ptree_bad_data(const std::string &what,
const T &data);
- ~ptree_bad_data();
+ ~ptree_bad_data() BOOST_OVERRIDE;
/// Retrieve the data associated with this error. This is the source
/// value that failed to be translated. You need to explicitly
@@ -70,7 +70,7 @@ namespace boost { namespace property_tree
template<class T> ptree_bad_path(const std::string &what,
const T &path);
- ~ptree_bad_path();
+ ~ptree_bad_path() BOOST_OVERRIDE;
/// Retrieve the invalid path. You need to explicitly specify the
/// type of path.
diff --git a/contrib/restricted/boost/uuid/CMakeLists.txt b/contrib/restricted/boost/uuid/CMakeLists.txt
new file mode 100644
index 0000000000..e4c160b3e3
--- /dev/null
+++ b/contrib/restricted/boost/uuid/CMakeLists.txt
@@ -0,0 +1,31 @@
+
+# This file was gererated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-uuid INTERFACE)
+target_include_directories(restricted-boost-uuid INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/uuid/include
+)
+target_link_libraries(restricted-boost-uuid INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ restricted-boost-assert
+ restricted-boost-config
+ restricted-boost-core
+ restricted-boost-io
+ restricted-boost-numeric_conversion
+ restricted-boost-predef
+ restricted-boost-random
+ restricted-boost-serialization
+ restricted-boost-smart_ptr
+ restricted-boost-static_assert
+ restricted-boost-throw_exception
+ restricted-boost-tti
+ restricted-boost-type_traits
+ restricted-boost-winapi
+)
diff --git a/contrib/restricted/boost/uuid/README.md b/contrib/restricted/boost/uuid/README.md
new file mode 100644
index 0000000000..debf7c40a6
--- /dev/null
+++ b/contrib/restricted/boost/uuid/README.md
@@ -0,0 +1,62 @@
+Uuid, part of collection of the [Boost C++ Libraries](http://github.com/boostorg), provides a C++ wrapper around [RFC-4122](http://www.ietf.org/rfc/rfc4122.txt) UUIDs.
+
+### License
+
+Distributed under the [Boost Software License, Version 1.0](http://www.boost.org/LICENSE_1_0.txt).
+
+### Properties
+
+* C++03
+* Header-only
+
+### Build Status
+
+Branch | Travis | Appveyor | Coverity Scan | codecov.io | Deps | Docs | Tests |
+:-------------: | ------ | -------- | ------------- | ---------- | ---- | ---- | ----- |
+[`master`](https://github.com/boostorg/uuid/tree/master) | [![Build Status](https://travis-ci.org/boostorg/uuid.svg?branch=master)](https://travis-ci.org/boostorg/uuid) | [![Build status](https://ci.appveyor.com/api/projects/status/nuihr6s92fjb9gwy/branch/master?svg=true)](https://ci.appveyor.com/project/jeking3/uuid-gaamf/branch/master) | [![Coverity Scan Build Status](https://scan.coverity.com/projects/13982/badge.svg)](https://scan.coverity.com/projects/boostorg-uuid) | [![codecov](https://codecov.io/gh/boostorg/uuid/branch/master/graph/badge.svg)](https://codecov.io/gh/boostorg/uuid/branch/master)| [![Deps](https://img.shields.io/badge/deps-master-brightgreen.svg)](https://pdimov.github.io/boostdep-report/master/uuid.html) | [![Documentation](https://img.shields.io/badge/docs-master-brightgreen.svg)](http://www.boost.org/doc/libs/master/doc/html/uuid.html) | [![Enter the Matrix](https://img.shields.io/badge/matrix-master-brightgreen.svg)](http://www.boost.org/development/tests/master/developer/uuid.html)
+[`develop`](https://github.com/boostorg/uuid/tree/develop) | [![Build Status](https://travis-ci.org/boostorg/uuid.svg?branch=develop)](https://travis-ci.org/boostorg/uuid) | [![Build status](https://ci.appveyor.com/api/projects/status/nuihr6s92fjb9gwy/branch/develop?svg=true)](https://ci.appveyor.com/project/jeking3/uuid-gaamf/branch/develop) | [![Coverity Scan Build Status](https://scan.coverity.com/projects/13982/badge.svg)](https://scan.coverity.com/projects/boostorg-uuid) | [![codecov](https://codecov.io/gh/boostorg/uuid/branch/develop/graph/badge.svg)](https://codecov.io/gh/boostorg/uuid/branch/develop) | [![Deps](https://img.shields.io/badge/deps-develop-brightgreen.svg)](https://pdimov.github.io/boostdep-report/develop/uuid.html) | [![Documentation](https://img.shields.io/badge/docs-develop-brightgreen.svg)](http://www.boost.org/doc/libs/develop/doc/html/uuid.html) | [![Enter the Matrix](https://img.shields.io/badge/matrix-develop-brightgreen.svg)](http://www.boost.org/development/tests/develop/developer/uuid.html)
+
+### Directories
+
+| Name | Purpose |
+| ----------- | ------------------------------ |
+| `ci` | continuous integration scripts |
+| `doc` | documentation |
+| `include` | headers |
+| `test` | unit tests |
+
+### More information
+
+* [Ask questions](http://stackoverflow.com/questions/ask?tags=c%2B%2B,boost,boost-uuid)
+* [Report bugs](https://github.com/boostorg/uuid/issues): Be sure to mention Boost version, platform and compiler you're using. A small compilable code sample to reproduce the problem is always good as well.
+* Submit your patches as pull requests against **develop** branch. Note that by submitting patches you agree to license your modifications under the [Boost Software License, Version 1.0](http://www.boost.org/LICENSE_1_0.txt).
+* Discussions about the library are held on the [Boost developers mailing list](http://www.boost.org/community/groups.html#main). Be sure to read the [discussion policy](http://www.boost.org/community/policy.html) before posting and add the `[uuid]` tag at the beginning of the subject line.
+
+### Code Example - UUID Generation
+
+ // Copyright 2017 James E. King III
+ // Distributed under the Boost Software License, Version 1.0.
+ // (See http://www.boost.org/LICENSE_1_0.txt)
+ // mkuuid.cpp example
+
+ #include <boost/lexical_cast.hpp>
+ #include <boost/uuid/random_generator.hpp>
+ #include <boost/uuid/uuid_io.hpp>
+ #include <iostream>
+
+ int main(void)
+ {
+ boost::uuids::random_generator gen;
+ std::cout << boost::lexical_cast<std::string>(gen()) << std::endl;
+ return 0;
+ }
+
+ ----
+
+ $ clang++ -ansi -Wall -Wextra -std=c++03 -O3 mkuuid.cpp -o mkuuid
+ $ ./mkuuid
+ 2c186eb0-89cf-4a3c-9b97-86db1670d5f4
+ $ ./mkuuid
+ a9d3fbb9-0383-4389-a8a8-61f6629f90b6
+
+