From 4f626cd728197c588b2837000bc97f8fd4d5ef10 Mon Sep 17 00:00:00 2001 From: jj683 <87266000+jj683@users.noreply.github.com> Date: Tue, 29 Oct 2024 08:14:57 +0100 Subject: [PATCH 1/4] Update nlohmann/json to 3.11.3 (#1623) --- 3rdParty/json/include/json.hpp | 1549 +++++++++++++++++--------------- 1 file changed, 838 insertions(+), 711 deletions(-) diff --git a/3rdParty/json/include/json.hpp b/3rdParty/json/include/json.hpp index 60ba1df7b4..8b72ea6539 100644 --- a/3rdParty/json/include/json.hpp +++ b/3rdParty/json/include/json.hpp @@ -1,9 +1,9 @@ // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT /****************************************************************************\ @@ -34,10 +34,10 @@ // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -47,10 +47,10 @@ // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -59,7 +59,7 @@ #ifndef JSON_SKIP_LIBRARY_VERSION_CHECK #if defined(NLOHMANN_JSON_VERSION_MAJOR) && defined(NLOHMANN_JSON_VERSION_MINOR) && defined(NLOHMANN_JSON_VERSION_PATCH) - #if NLOHMANN_JSON_VERSION_MAJOR != 3 || NLOHMANN_JSON_VERSION_MINOR != 11 || NLOHMANN_JSON_VERSION_PATCH != 2 + #if NLOHMANN_JSON_VERSION_MAJOR != 3 || NLOHMANN_JSON_VERSION_MINOR != 11 || NLOHMANN_JSON_VERSION_PATCH != 3 #warning "Already included a different version of the library!" #endif #endif @@ -67,7 +67,7 @@ #define NLOHMANN_JSON_VERSION_MAJOR 3 // NOLINT(modernize-macro-to-enum) #define NLOHMANN_JSON_VERSION_MINOR 11 // NOLINT(modernize-macro-to-enum) -#define NLOHMANN_JSON_VERSION_PATCH 2 // NOLINT(modernize-macro-to-enum) +#define NLOHMANN_JSON_VERSION_PATCH 3 // NOLINT(modernize-macro-to-enum) #ifndef JSON_DIAGNOSTICS #define JSON_DIAGNOSTICS 0 @@ -149,10 +149,10 @@ // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -172,10 +172,10 @@ // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -192,10 +192,10 @@ // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -208,10 +208,10 @@ // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -220,10 +220,10 @@ // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -233,10 +233,10 @@ // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -320,10 +320,10 @@ NLOHMANN_JSON_NAMESPACE_END // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-FileCopyrightText: 2016-2021 Evan Nemerson // SPDX-License-Identifier: MIT @@ -2485,6 +2485,14 @@ JSON_HEDLEY_DIAGNOSTIC_POP #endif #endif +#ifndef JSON_HAS_STATIC_RTTI + #if !defined(_HAS_STATIC_RTTI) || _HAS_STATIC_RTTI != 0 + #define JSON_HAS_STATIC_RTTI 1 + #else + #define JSON_HAS_STATIC_RTTI 0 + #endif +#endif + #ifdef JSON_HAS_CPP_17 #define JSON_INLINE_VARIABLE inline #else @@ -2750,6 +2758,9 @@ JSON_HEDLEY_DIAGNOSTIC_POP friend void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ friend void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) } +#define NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE(Type, ...) \ + friend void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } + /*! @brief macro @def NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE @@ -2759,11 +2770,13 @@ JSON_HEDLEY_DIAGNOSTIC_POP inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ inline void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } +#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(Type, ...) \ + inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } + #define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(Type, ...) \ inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ inline void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) } - // inspired from https://stackoverflow.com/a/26745591 // allows to call any std function as if (e.g. with begin): // using std::begin; begin(x); @@ -2926,10 +2939,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -3001,10 +3014,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -3043,10 +3056,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-FileCopyrightText: 2018 The Abseil Authors // SPDX-License-Identifier: MIT @@ -3217,10 +3230,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -3229,14 +3242,15 @@ NLOHMANN_JSON_NAMESPACE_END #include // false_type, is_constructible, is_integral, is_same, true_type #include // declval #include // tuple +#include // char_traits // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -3301,10 +3315,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -3321,10 +3335,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -3345,10 +3359,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT #ifndef INCLUDE_NLOHMANN_JSON_FWD_HPP_ @@ -3392,7 +3406,7 @@ NLOHMANN_JSON_NAMESPACE_END template class AllocatorType = std::allocator, template class JSONSerializer = adl_serializer, - class BinaryType = std::vector, + class BinaryType = std::vector, // cppcheck-suppress syntaxError class CustomBaseClass = void> class basic_json; @@ -3581,6 +3595,63 @@ struct actual_object_comparator template using actual_object_comparator_t = typename actual_object_comparator::type; +///////////////// +// char_traits // +///////////////// + +// Primary template of char_traits calls std char_traits +template +struct char_traits : std::char_traits +{}; + +// Explicitly define char traits for unsigned char since it is not standard +template<> +struct char_traits : std::char_traits +{ + using char_type = unsigned char; + using int_type = uint64_t; + + // Redefine to_int_type function + static int_type to_int_type(char_type c) noexcept + { + return static_cast(c); + } + + static char_type to_char_type(int_type i) noexcept + { + return static_cast(i); + } + + static constexpr int_type eof() noexcept + { + return static_cast(EOF); + } +}; + +// Explicitly define char traits for signed char since it is not standard +template<> +struct char_traits : std::char_traits +{ + using char_type = signed char; + using int_type = uint64_t; + + // Redefine to_int_type function + static int_type to_int_type(char_type c) noexcept + { + return static_cast(c); + } + + static char_type to_char_type(int_type i) noexcept + { + return static_cast(i); + } + + static constexpr int_type eof() noexcept + { + return static_cast(EOF); + } +}; + /////////////////// // is_ functions // /////////////////// @@ -3617,7 +3688,6 @@ template struct is_default_constructible> : conjunction...> {}; - template struct is_constructible : std::is_constructible {}; @@ -3633,7 +3703,6 @@ struct is_constructible> : is_default_constructible struct is_constructible> : is_default_constructible> {}; - template struct is_iterator_traits : std::false_type {}; @@ -4043,7 +4112,6 @@ struct value_in_range_of_impl2 } }; - template struct value_in_range_of_impl2 { @@ -4142,10 +4210,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -4169,27 +4237,28 @@ inline std::size_t concat_length() } template -inline std::size_t concat_length(const char* cstr, Args&& ... rest); +inline std::size_t concat_length(const char* cstr, const Args& ... rest); template -inline std::size_t concat_length(const StringType& str, Args&& ... rest); +inline std::size_t concat_length(const StringType& str, const Args& ... rest); template -inline std::size_t concat_length(const char /*c*/, Args&& ... rest) +inline std::size_t concat_length(const char /*c*/, const Args& ... rest) { - return 1 + concat_length(std::forward(rest)...); + return 1 + concat_length(rest...); } template -inline std::size_t concat_length(const char* cstr, Args&& ... rest) +inline std::size_t concat_length(const char* cstr, const Args& ... rest) { - return ::strlen(cstr) + concat_length(std::forward(rest)...); + // cppcheck-suppress ignoredReturnValue + return ::strlen(cstr) + concat_length(rest...); } template -inline std::size_t concat_length(const StringType& str, Args&& ... rest) +inline std::size_t concat_length(const StringType& str, const Args& ... rest) { - return str.size() + concat_length(std::forward(rest)...); + return str.size() + concat_length(rest...); } template @@ -4280,7 +4349,7 @@ template inline OutStringType concat(Args && ... args) { OutStringType str; - str.reserve(concat_length(std::forward(args)...)); + str.reserve(concat_length(args...)); concat_into(str, std::forward(args)...); return str; } @@ -4289,7 +4358,6 @@ inline OutStringType concat(Args && ... args) NLOHMANN_JSON_NAMESPACE_END - NLOHMANN_JSON_NAMESPACE_BEGIN namespace detail { @@ -4337,9 +4405,9 @@ class exception : public std::exception { case value_t::array: { - for (std::size_t i = 0; i < current->m_parent->m_value.array->size(); ++i) + for (std::size_t i = 0; i < current->m_parent->m_data.m_value.array->size(); ++i) { - if (¤t->m_parent->m_value.array->operator[](i) == current) + if (¤t->m_parent->m_data.m_value.array->operator[](i) == current) { tokens.emplace_back(std::to_string(i)); break; @@ -4350,7 +4418,7 @@ class exception : public std::exception case value_t::object: { - for (const auto& element : *current->m_parent->m_value.object) + for (const auto& element : *current->m_parent->m_data.m_value.object) { if (&element.second == current) { @@ -4528,10 +4596,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -4552,10 +4620,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -5058,10 +5126,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -5078,10 +5146,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -5150,10 +5218,10 @@ template class iteration_proxy_value // older GCCs are a bit fussy and require explicit noexcept specifiers on defaulted functions iteration_proxy_value(iteration_proxy_value&&) noexcept(std::is_nothrow_move_constructible::value - && std::is_nothrow_move_constructible::value) = default; + && std::is_nothrow_move_constructible::value) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor,cppcoreguidelines-noexcept-move-operations) iteration_proxy_value& operator=(iteration_proxy_value&&) noexcept(std::is_nothrow_move_assignable::value - && std::is_nothrow_move_assignable::value) = default; + && std::is_nothrow_move_assignable::value) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor,cppcoreguidelines-noexcept-move-operations) ~iteration_proxy_value() = default; /// dereference operator (needed for range-based for) @@ -5343,7 +5411,7 @@ namespace detail /* * Note all external_constructor<>::construct functions need to call - * j.m_value.destroy(j.m_type) to avoid a memory leak in case j contains an + * j.m_data.m_value.destroy(j.m_data.m_type) to avoid a memory leak in case j contains an * allocated value (e.g., a string). See bug issue * https://github.com/nlohmann/json/issues/2865 for more information. */ @@ -5356,9 +5424,9 @@ struct external_constructor template static void construct(BasicJsonType& j, typename BasicJsonType::boolean_t b) noexcept { - j.m_value.destroy(j.m_type); - j.m_type = value_t::boolean; - j.m_value = b; + j.m_data.m_value.destroy(j.m_data.m_type); + j.m_data.m_type = value_t::boolean; + j.m_data.m_value = b; j.assert_invariant(); } }; @@ -5369,18 +5437,18 @@ struct external_constructor template static void construct(BasicJsonType& j, const typename BasicJsonType::string_t& s) { - j.m_value.destroy(j.m_type); - j.m_type = value_t::string; - j.m_value = s; + j.m_data.m_value.destroy(j.m_data.m_type); + j.m_data.m_type = value_t::string; + j.m_data.m_value = s; j.assert_invariant(); } template static void construct(BasicJsonType& j, typename BasicJsonType::string_t&& s) { - j.m_value.destroy(j.m_type); - j.m_type = value_t::string; - j.m_value = std::move(s); + j.m_data.m_value.destroy(j.m_data.m_type); + j.m_data.m_type = value_t::string; + j.m_data.m_value = std::move(s); j.assert_invariant(); } @@ -5389,9 +5457,9 @@ struct external_constructor int > = 0 > static void construct(BasicJsonType& j, const CompatibleStringType& str) { - j.m_value.destroy(j.m_type); - j.m_type = value_t::string; - j.m_value.string = j.template create(str); + j.m_data.m_value.destroy(j.m_data.m_type); + j.m_data.m_type = value_t::string; + j.m_data.m_value.string = j.template create(str); j.assert_invariant(); } }; @@ -5402,18 +5470,18 @@ struct external_constructor template static void construct(BasicJsonType& j, const typename BasicJsonType::binary_t& b) { - j.m_value.destroy(j.m_type); - j.m_type = value_t::binary; - j.m_value = typename BasicJsonType::binary_t(b); + j.m_data.m_value.destroy(j.m_data.m_type); + j.m_data.m_type = value_t::binary; + j.m_data.m_value = typename BasicJsonType::binary_t(b); j.assert_invariant(); } template static void construct(BasicJsonType& j, typename BasicJsonType::binary_t&& b) { - j.m_value.destroy(j.m_type); - j.m_type = value_t::binary; - j.m_value = typename BasicJsonType::binary_t(std::move(b)); + j.m_data.m_value.destroy(j.m_data.m_type); + j.m_data.m_type = value_t::binary; + j.m_data.m_value = typename BasicJsonType::binary_t(std::move(b)); j.assert_invariant(); } }; @@ -5424,9 +5492,9 @@ struct external_constructor template static void construct(BasicJsonType& j, typename BasicJsonType::number_float_t val) noexcept { - j.m_value.destroy(j.m_type); - j.m_type = value_t::number_float; - j.m_value = val; + j.m_data.m_value.destroy(j.m_data.m_type); + j.m_data.m_type = value_t::number_float; + j.m_data.m_value = val; j.assert_invariant(); } }; @@ -5437,9 +5505,9 @@ struct external_constructor template static void construct(BasicJsonType& j, typename BasicJsonType::number_unsigned_t val) noexcept { - j.m_value.destroy(j.m_type); - j.m_type = value_t::number_unsigned; - j.m_value = val; + j.m_data.m_value.destroy(j.m_data.m_type); + j.m_data.m_type = value_t::number_unsigned; + j.m_data.m_value = val; j.assert_invariant(); } }; @@ -5450,9 +5518,9 @@ struct external_constructor template static void construct(BasicJsonType& j, typename BasicJsonType::number_integer_t val) noexcept { - j.m_value.destroy(j.m_type); - j.m_type = value_t::number_integer; - j.m_value = val; + j.m_data.m_value.destroy(j.m_data.m_type); + j.m_data.m_type = value_t::number_integer; + j.m_data.m_value = val; j.assert_invariant(); } }; @@ -5463,9 +5531,9 @@ struct external_constructor template static void construct(BasicJsonType& j, const typename BasicJsonType::array_t& arr) { - j.m_value.destroy(j.m_type); - j.m_type = value_t::array; - j.m_value = arr; + j.m_data.m_value.destroy(j.m_data.m_type); + j.m_data.m_type = value_t::array; + j.m_data.m_value = arr; j.set_parents(); j.assert_invariant(); } @@ -5473,9 +5541,9 @@ struct external_constructor template static void construct(BasicJsonType& j, typename BasicJsonType::array_t&& arr) { - j.m_value.destroy(j.m_type); - j.m_type = value_t::array; - j.m_value = std::move(arr); + j.m_data.m_value.destroy(j.m_data.m_type); + j.m_data.m_type = value_t::array; + j.m_data.m_value = std::move(arr); j.set_parents(); j.assert_invariant(); } @@ -5488,9 +5556,9 @@ struct external_constructor using std::begin; using std::end; - j.m_value.destroy(j.m_type); - j.m_type = value_t::array; - j.m_value.array = j.template create(begin(arr), end(arr)); + j.m_data.m_value.destroy(j.m_data.m_type); + j.m_data.m_type = value_t::array; + j.m_data.m_value.array = j.template create(begin(arr), end(arr)); j.set_parents(); j.assert_invariant(); } @@ -5498,14 +5566,14 @@ struct external_constructor template static void construct(BasicJsonType& j, const std::vector& arr) { - j.m_value.destroy(j.m_type); - j.m_type = value_t::array; - j.m_value = value_t::array; - j.m_value.array->reserve(arr.size()); + j.m_data.m_value.destroy(j.m_data.m_type); + j.m_data.m_type = value_t::array; + j.m_data.m_value = value_t::array; + j.m_data.m_value.array->reserve(arr.size()); for (const bool x : arr) { - j.m_value.array->push_back(x); - j.set_parent(j.m_value.array->back()); + j.m_data.m_value.array->push_back(x); + j.set_parent(j.m_data.m_value.array->back()); } j.assert_invariant(); } @@ -5514,13 +5582,13 @@ struct external_constructor enable_if_t::value, int> = 0> static void construct(BasicJsonType& j, const std::valarray& arr) { - j.m_value.destroy(j.m_type); - j.m_type = value_t::array; - j.m_value = value_t::array; - j.m_value.array->resize(arr.size()); + j.m_data.m_value.destroy(j.m_data.m_type); + j.m_data.m_type = value_t::array; + j.m_data.m_value = value_t::array; + j.m_data.m_value.array->resize(arr.size()); if (arr.size() > 0) { - std::copy(std::begin(arr), std::end(arr), j.m_value.array->begin()); + std::copy(std::begin(arr), std::end(arr), j.m_data.m_value.array->begin()); } j.set_parents(); j.assert_invariant(); @@ -5533,9 +5601,9 @@ struct external_constructor template static void construct(BasicJsonType& j, const typename BasicJsonType::object_t& obj) { - j.m_value.destroy(j.m_type); - j.m_type = value_t::object; - j.m_value = obj; + j.m_data.m_value.destroy(j.m_data.m_type); + j.m_data.m_type = value_t::object; + j.m_data.m_value = obj; j.set_parents(); j.assert_invariant(); } @@ -5543,9 +5611,9 @@ struct external_constructor template static void construct(BasicJsonType& j, typename BasicJsonType::object_t&& obj) { - j.m_value.destroy(j.m_type); - j.m_type = value_t::object; - j.m_value = std::move(obj); + j.m_data.m_value.destroy(j.m_data.m_type); + j.m_data.m_type = value_t::object; + j.m_data.m_value = std::move(obj); j.set_parents(); j.assert_invariant(); } @@ -5557,9 +5625,9 @@ struct external_constructor using std::begin; using std::end; - j.m_value.destroy(j.m_type); - j.m_type = value_t::object; - j.m_value.object = j.template create(begin(obj), end(obj)); + j.m_data.m_value.destroy(j.m_data.m_type); + j.m_data.m_type = value_t::object; + j.m_data.m_value.object = j.template create(begin(obj), end(obj)); j.set_parents(); j.assert_invariant(); } @@ -5799,10 +5867,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -5911,10 +5979,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -6044,10 +6112,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -6070,10 +6138,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -6097,6 +6165,8 @@ NLOHMANN_JSON_NAMESPACE_END // #include +// #include + NLOHMANN_JSON_NAMESPACE_BEGIN namespace detail @@ -6143,7 +6213,6 @@ class file_input_adapter std::FILE* m_file; }; - /*! Input adapter for a (caching) istream. Ignores a UFT Byte Order Mark at beginning of input. Does not support changing the underlying std::streambuf @@ -6217,16 +6286,16 @@ class iterator_input_adapter : current(std::move(first)), end(std::move(last)) {} - typename std::char_traits::int_type get_character() + typename char_traits::int_type get_character() { if (JSON_HEDLEY_LIKELY(current != end)) { - auto result = std::char_traits::to_int_type(*current); + auto result = char_traits::to_int_type(*current); std::advance(current, 1); return result; } - return std::char_traits::eof(); + return char_traits::eof(); } private: @@ -6242,7 +6311,6 @@ class iterator_input_adapter } }; - template struct wide_string_input_helper; @@ -6366,7 +6434,7 @@ struct wide_string_input_helper } }; -// Wraps another input apdater to convert wide character types into individual bytes. +// Wraps another input adapter to convert wide character types into individual bytes. template class wide_string_input_adapter { @@ -6411,7 +6479,6 @@ class wide_string_input_adapter std::size_t utf8_bytes_filled = 0; }; - template struct iterator_input_adapter_factory { @@ -6568,10 +6635,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -6713,7 +6780,6 @@ struct json_sax virtual ~json_sax() = default; }; - namespace detail { /*! @@ -6815,7 +6881,7 @@ class json_sax_dom_parser JSON_ASSERT(ref_stack.back()->is_object()); // add null at given key and store the reference for later - object_element = &(ref_stack.back()->m_value.object->operator[](val)); + object_element = &(ref_stack.back()->m_data.m_value.object->operator[](val)); return true; } @@ -6890,8 +6956,8 @@ class json_sax_dom_parser if (ref_stack.back()->is_array()) { - ref_stack.back()->m_value.array->emplace_back(std::forward(v)); - return &(ref_stack.back()->m_value.array->back()); + ref_stack.back()->m_data.m_value.array->emplace_back(std::forward(v)); + return &(ref_stack.back()->m_data.m_value.array->back()); } JSON_ASSERT(ref_stack.back()->is_object()); @@ -7010,7 +7076,7 @@ class json_sax_dom_callback_parser // add discarded value at given key and store the reference for later if (keep && ref_stack.back()) { - object_element = &(ref_stack.back()->m_value.object->operator[](val) = discarded); + object_element = &(ref_stack.back()->m_data.m_value.object->operator[](val) = discarded); } return true; @@ -7095,7 +7161,7 @@ class json_sax_dom_callback_parser // remove discarded value if (!keep && !ref_stack.empty() && ref_stack.back()->is_array()) { - ref_stack.back()->m_value.array->pop_back(); + ref_stack.back()->m_data.m_value.array->pop_back(); } return true; @@ -7162,7 +7228,7 @@ class json_sax_dom_callback_parser if (ref_stack.empty()) { root = std::move(value); - return {true, &root}; + return {true, & root}; } // skip this value if we already decided to skip the parent @@ -7178,8 +7244,8 @@ class json_sax_dom_callback_parser // array if (ref_stack.back()->is_array()) { - ref_stack.back()->m_value.array->emplace_back(std::move(value)); - return {true, &(ref_stack.back()->m_value.array->back())}; + ref_stack.back()->m_data.m_value.array->emplace_back(std::move(value)); + return {true, & (ref_stack.back()->m_data.m_value.array->back())}; } // object @@ -7301,10 +7367,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -7325,6 +7391,8 @@ NLOHMANN_JSON_NAMESPACE_END // #include +// #include + NLOHMANN_JSON_NAMESPACE_BEGIN namespace detail @@ -7419,7 +7487,7 @@ class lexer : public lexer_base using number_float_t = typename BasicJsonType::number_float_t; using string_t = typename BasicJsonType::string_t; using char_type = typename InputAdapterType::char_type; - using char_int_type = typename std::char_traits::int_type; + using char_int_type = typename char_traits::int_type; public: using token_type = typename lexer_base::token_type; @@ -7526,7 +7594,7 @@ class lexer : public lexer_base for (auto range = ranges.begin(); range != ranges.end(); ++range) { get(); - if (JSON_HEDLEY_LIKELY(*range <= current && current <= *(++range))) + if (JSON_HEDLEY_LIKELY(*range <= current && current <= *(++range))) // NOLINT(bugprone-inc-dec-in-conditions) { add(current); } @@ -7569,7 +7637,7 @@ class lexer : public lexer_base switch (get()) { // end of file while parsing string - case std::char_traits::eof(): + case char_traits::eof(): { error_message = "invalid string: missing closing quote"; return token_type::parse_error; @@ -8158,7 +8226,7 @@ class lexer : public lexer_base { case '\n': case '\r': - case std::char_traits::eof(): + case char_traits::eof(): case '\0': return true; @@ -8175,7 +8243,7 @@ class lexer : public lexer_base { switch (get()) { - case std::char_traits::eof(): + case char_traits::eof(): case '\0': { error_message = "invalid comment; missing closing '*/'"; @@ -8604,10 +8672,10 @@ class lexer : public lexer_base token_type scan_literal(const char_type* literal_text, const std::size_t length, token_type return_type) { - JSON_ASSERT(std::char_traits::to_char_type(current) == literal_text[0]); + JSON_ASSERT(char_traits::to_char_type(current) == literal_text[0]); for (std::size_t i = 1; i < length; ++i) { - if (JSON_HEDLEY_UNLIKELY(std::char_traits::to_char_type(get()) != literal_text[i])) + if (JSON_HEDLEY_UNLIKELY(char_traits::to_char_type(get()) != literal_text[i])) { error_message = "invalid literal"; return token_type::parse_error; @@ -8625,7 +8693,7 @@ class lexer : public lexer_base { token_buffer.clear(); token_string.clear(); - token_string.push_back(std::char_traits::to_char_type(current)); + token_string.push_back(char_traits::to_char_type(current)); } /* @@ -8633,7 +8701,7 @@ class lexer : public lexer_base This function provides the interface to the used input adapter. It does not throw in case the input reached EOF, but returns a - `std::char_traits::eof()` in that case. Stores the scanned characters + `char_traits::eof()` in that case. Stores the scanned characters for use in error messages. @return character read from the input @@ -8653,9 +8721,9 @@ class lexer : public lexer_base current = ia.get_character(); } - if (JSON_HEDLEY_LIKELY(current != std::char_traits::eof())) + if (JSON_HEDLEY_LIKELY(current != char_traits::eof())) { - token_string.push_back(std::char_traits::to_char_type(current)); + token_string.push_back(char_traits::to_char_type(current)); } if (current == '\n') @@ -8694,7 +8762,7 @@ class lexer : public lexer_base --position.chars_read_current_line; } - if (JSON_HEDLEY_LIKELY(current != std::char_traits::eof())) + if (JSON_HEDLEY_LIKELY(current != char_traits::eof())) { JSON_ASSERT(!token_string.empty()); token_string.pop_back(); @@ -8888,7 +8956,7 @@ class lexer : public lexer_base // end of input (the null byte is needed when parsing from // string literals) case '\0': - case std::char_traits::eof(): + case char_traits::eof(): return token_type::end_of_input; // error @@ -8906,7 +8974,7 @@ class lexer : public lexer_base const bool ignore_comments = false; /// the current character - char_int_type current = std::char_traits::eof(); + char_int_type current = char_traits::eof(); /// whether the next get() call should just return current bool next_unget = false; @@ -8940,10 +9008,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -9132,7 +9200,6 @@ static inline bool little_endianness(int num = 1) noexcept return *reinterpret_cast(&num) == 1; } - /////////////////// // binary reader // /////////////////// @@ -9150,7 +9217,7 @@ class binary_reader using binary_t = typename BasicJsonType::binary_t; using json_sax_t = SAX; using char_type = typename InputAdapterType::char_type; - using char_int_type = typename std::char_traits::int_type; + using char_int_type = typename char_traits::int_type; public: /*! @@ -9223,7 +9290,7 @@ class binary_reader get(); } - if (JSON_HEDLEY_UNLIKELY(current != std::char_traits::eof())) + if (JSON_HEDLEY_UNLIKELY(current != char_traits::eof())) { return sax->parse_error(chars_read, get_token_string(), parse_error::create(110, chars_read, exception_message(input_format, concat("expected end of input; last byte: 0x", get_token_string()), "value"), nullptr)); @@ -9306,7 +9373,7 @@ class binary_reader exception_message(input_format_t::bson, concat("string length must be at least 1, is ", std::to_string(len)), "string"), nullptr)); } - return get_string(input_format_t::bson, len - static_cast(1), result) && get() != std::char_traits::eof(); + return get_string(input_format_t::bson, len - static_cast(1), result) && get() != char_traits::eof(); } /*! @@ -9500,7 +9567,7 @@ class binary_reader switch (get_char ? get() : current) { // EOF - case std::char_traits::eof(): + case char_traits::eof(): return unexpect_eof(input_format_t::cbor, "value"); // Integer 0x00..0x17 (0..23) @@ -10275,7 +10342,7 @@ class binary_reader switch (get()) { // EOF - case std::char_traits::eof(): + case char_traits::eof(): return unexpect_eof(input_format_t::msgpack, "value"); // positive fixint @@ -11377,7 +11444,7 @@ class binary_reader { switch (prefix) { - case std::char_traits::eof(): // EOF + case char_traits::eof(): // EOF return unexpect_eof(input_format, "value"); case 'T': // true @@ -11822,7 +11889,7 @@ class binary_reader This function provides the interface to the used input adapter. It does not throw in case the input reached EOF, but returns a -'ve valued - `std::char_traits::eof()` in that case. + `char_traits::eof()` in that case. @return character read from the input */ @@ -11964,7 +12031,7 @@ class binary_reader JSON_HEDLEY_NON_NULL(3) bool unexpect_eof(const input_format_t format, const char* context) const { - if (JSON_HEDLEY_UNLIKELY(current == std::char_traits::eof())) + if (JSON_HEDLEY_UNLIKELY(current == char_traits::eof())) { return sax->parse_error(chars_read, "", parse_error::create(110, chars_read, exception_message(format, "unexpected end of input", context), nullptr)); @@ -12031,7 +12098,7 @@ class binary_reader InputAdapterType ia; /// the current character - char_int_type current = std::char_traits::eof(); + char_int_type current = char_traits::eof(); /// the number of characters read std::size_t chars_read = 0; @@ -12093,10 +12160,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -12442,13 +12509,25 @@ class parser m_lexer.get_token_string(), parse_error::create(101, m_lexer.get_position(), exception_message(token_type::uninitialized, "value"), nullptr)); } + case token_type::end_of_input: + { + if (JSON_HEDLEY_UNLIKELY(m_lexer.get_position().chars_read_total == 1)) + { + return sax->parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + parse_error::create(101, m_lexer.get_position(), + "attempting to parse an empty input; check that your input string or stream contains the expected JSON", nullptr)); + } + return sax->parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + parse_error::create(101, m_lexer.get_position(), exception_message(token_type::literal_or_value, "value"), nullptr)); + } case token_type::uninitialized: case token_type::end_array: case token_type::end_object: case token_type::name_separator: case token_type::value_separator: - case token_type::end_of_input: case token_type::literal_or_value: default: // the last token was unexpected { @@ -12610,10 +12689,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -12623,10 +12702,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -12782,10 +12861,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -12890,7 +12969,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci { JSON_ASSERT(m_object != nullptr); - switch (m_object->m_type) + switch (m_object->m_data.m_type) { case value_t::object: { @@ -12987,17 +13066,17 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci { JSON_ASSERT(m_object != nullptr); - switch (m_object->m_type) + switch (m_object->m_data.m_type) { case value_t::object: { - m_it.object_iterator = m_object->m_value.object->begin(); + m_it.object_iterator = m_object->m_data.m_value.object->begin(); break; } case value_t::array: { - m_it.array_iterator = m_object->m_value.array->begin(); + m_it.array_iterator = m_object->m_data.m_value.array->begin(); break; } @@ -13031,17 +13110,17 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci { JSON_ASSERT(m_object != nullptr); - switch (m_object->m_type) + switch (m_object->m_data.m_type) { case value_t::object: { - m_it.object_iterator = m_object->m_value.object->end(); + m_it.object_iterator = m_object->m_data.m_value.object->end(); break; } case value_t::array: { - m_it.array_iterator = m_object->m_value.array->end(); + m_it.array_iterator = m_object->m_data.m_value.array->end(); break; } @@ -13070,17 +13149,17 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci { JSON_ASSERT(m_object != nullptr); - switch (m_object->m_type) + switch (m_object->m_data.m_type) { case value_t::object: { - JSON_ASSERT(m_it.object_iterator != m_object->m_value.object->end()); + JSON_ASSERT(m_it.object_iterator != m_object->m_data.m_value.object->end()); return m_it.object_iterator->second; } case value_t::array: { - JSON_ASSERT(m_it.array_iterator != m_object->m_value.array->end()); + JSON_ASSERT(m_it.array_iterator != m_object->m_data.m_value.array->end()); return *m_it.array_iterator; } @@ -13114,17 +13193,17 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci { JSON_ASSERT(m_object != nullptr); - switch (m_object->m_type) + switch (m_object->m_data.m_type) { case value_t::object: { - JSON_ASSERT(m_it.object_iterator != m_object->m_value.object->end()); + JSON_ASSERT(m_it.object_iterator != m_object->m_data.m_value.object->end()); return &(m_it.object_iterator->second); } case value_t::array: { - JSON_ASSERT(m_it.array_iterator != m_object->m_value.array->end()); + JSON_ASSERT(m_it.array_iterator != m_object->m_data.m_value.array->end()); return &*m_it.array_iterator; } @@ -13167,7 +13246,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci { JSON_ASSERT(m_object != nullptr); - switch (m_object->m_type) + switch (m_object->m_data.m_type) { case value_t::object: { @@ -13218,7 +13297,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci { JSON_ASSERT(m_object != nullptr); - switch (m_object->m_type) + switch (m_object->m_data.m_type) { case value_t::object: { @@ -13265,7 +13344,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci JSON_ASSERT(m_object != nullptr); - switch (m_object->m_type) + switch (m_object->m_data.m_type) { case value_t::object: return (m_it.object_iterator == other.m_it.object_iterator); @@ -13310,7 +13389,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci JSON_ASSERT(m_object != nullptr); - switch (m_object->m_type) + switch (m_object->m_data.m_type) { case value_t::object: JSON_THROW(invalid_iterator::create(213, "cannot compare order of object iterators", m_object)); @@ -13366,7 +13445,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci { JSON_ASSERT(m_object != nullptr); - switch (m_object->m_type) + switch (m_object->m_data.m_type) { case value_t::object: JSON_THROW(invalid_iterator::create(209, "cannot use offsets with object iterators", m_object)); @@ -13445,7 +13524,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci { JSON_ASSERT(m_object != nullptr); - switch (m_object->m_type) + switch (m_object->m_data.m_type) { case value_t::object: JSON_THROW(invalid_iterator::create(209, "cannot use offsets with object iterators", m_object)); @@ -13474,7 +13553,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci { JSON_ASSERT(m_object != nullptr); - switch (m_object->m_type) + switch (m_object->m_data.m_type) { case value_t::object: JSON_THROW(invalid_iterator::create(208, "cannot use operator[] for object iterators", m_object)); @@ -13544,10 +13623,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -13677,6 +13756,14 @@ NLOHMANN_JSON_NAMESPACE_END // #include // #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-License-Identifier: MIT + #include // conditional, is_same @@ -13713,10 +13800,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -14104,7 +14191,7 @@ class json_pointer if (reference_token == "-") { // explicitly treat "-" as index beyond the end - ptr = &ptr->operator[](ptr->m_value.array->size()); + ptr = &ptr->operator[](ptr->m_data.m_value.array->size()); } else { @@ -14156,7 +14243,7 @@ class json_pointer { // "-" always fails the range check JSON_THROW(detail::out_of_range::create(402, detail::concat( - "array index '-' (", std::to_string(ptr->m_value.array->size()), + "array index '-' (", std::to_string(ptr->m_data.m_value.array->size()), ") is out of range"), ptr)); } @@ -14213,7 +14300,7 @@ class json_pointer if (JSON_HEDLEY_UNLIKELY(reference_token == "-")) { // "-" cannot be used for const access - JSON_THROW(detail::out_of_range::create(402, detail::concat("array index '-' (", std::to_string(ptr->m_value.array->size()), ") is out of range"), ptr)); + JSON_THROW(detail::out_of_range::create(402, detail::concat("array index '-' (", std::to_string(ptr->m_data.m_value.array->size()), ") is out of range"), ptr)); } // use unchecked array access @@ -14263,7 +14350,7 @@ class json_pointer { // "-" always fails the range check JSON_THROW(detail::out_of_range::create(402, detail::concat( - "array index '-' (", std::to_string(ptr->m_value.array->size()), + "array index '-' (", std::to_string(ptr->m_data.m_value.array->size()), ") is out of range"), ptr)); } @@ -14458,7 +14545,7 @@ class json_pointer { case detail::value_t::array: { - if (value.m_value.array->empty()) + if (value.m_data.m_value.array->empty()) { // flatten empty array as null result[reference_string] = nullptr; @@ -14466,10 +14553,10 @@ class json_pointer else { // iterate array and use index as reference string - for (std::size_t i = 0; i < value.m_value.array->size(); ++i) + for (std::size_t i = 0; i < value.m_data.m_value.array->size(); ++i) { flatten(detail::concat(reference_string, '/', std::to_string(i)), - value.m_value.array->operator[](i), result); + value.m_data.m_value.array->operator[](i), result); } } break; @@ -14477,7 +14564,7 @@ class json_pointer case detail::value_t::object: { - if (value.m_value.object->empty()) + if (value.m_data.m_value.object->empty()) { // flatten empty object as null result[reference_string] = nullptr; @@ -14485,7 +14572,7 @@ class json_pointer else { // iterate object and use keys as reference string - for (const auto& element : *value.m_value.object) + for (const auto& element : *value.m_data.m_value.object) { flatten(detail::concat(reference_string, '/', detail::escape(element.first)), element.second, result); } @@ -14532,7 +14619,7 @@ class json_pointer BasicJsonType result; // iterate the JSON object values - for (const auto& element : *value.m_value.object) + for (const auto& element : *value.m_data.m_value.object) { if (JSON_HEDLEY_UNLIKELY(!element.second.is_primitive())) { @@ -14708,10 +14795,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -14800,10 +14887,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -14826,10 +14913,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -15015,7 +15102,7 @@ class binary_writer { case value_t::object: { - write_bson_object(*j.m_value.object); + write_bson_object(*j.m_data.m_value.object); break; } @@ -15050,7 +15137,7 @@ class binary_writer case value_t::boolean: { - oa->write_character(j.m_value.boolean + oa->write_character(j.m_data.m_value.boolean ? to_char_type(0xF5) : to_char_type(0xF4)); break; @@ -15058,42 +15145,42 @@ class binary_writer case value_t::number_integer: { - if (j.m_value.number_integer >= 0) + if (j.m_data.m_value.number_integer >= 0) { // CBOR does not differentiate between positive signed // integers and unsigned integers. Therefore, we used the // code from the value_t::number_unsigned case here. - if (j.m_value.number_integer <= 0x17) + if (j.m_data.m_value.number_integer <= 0x17) { - write_number(static_cast(j.m_value.number_integer)); + write_number(static_cast(j.m_data.m_value.number_integer)); } - else if (j.m_value.number_integer <= (std::numeric_limits::max)()) + else if (j.m_data.m_value.number_integer <= (std::numeric_limits::max)()) { oa->write_character(to_char_type(0x18)); - write_number(static_cast(j.m_value.number_integer)); + write_number(static_cast(j.m_data.m_value.number_integer)); } - else if (j.m_value.number_integer <= (std::numeric_limits::max)()) + else if (j.m_data.m_value.number_integer <= (std::numeric_limits::max)()) { oa->write_character(to_char_type(0x19)); - write_number(static_cast(j.m_value.number_integer)); + write_number(static_cast(j.m_data.m_value.number_integer)); } - else if (j.m_value.number_integer <= (std::numeric_limits::max)()) + else if (j.m_data.m_value.number_integer <= (std::numeric_limits::max)()) { oa->write_character(to_char_type(0x1A)); - write_number(static_cast(j.m_value.number_integer)); + write_number(static_cast(j.m_data.m_value.number_integer)); } else { oa->write_character(to_char_type(0x1B)); - write_number(static_cast(j.m_value.number_integer)); + write_number(static_cast(j.m_data.m_value.number_integer)); } } else { // The conversions below encode the sign in the first // byte, and the value is converted to a positive number. - const auto positive_number = -1 - j.m_value.number_integer; - if (j.m_value.number_integer >= -24) + const auto positive_number = -1 - j.m_data.m_value.number_integer; + if (j.m_data.m_value.number_integer >= -24) { write_number(static_cast(0x20 + positive_number)); } @@ -15123,52 +15210,52 @@ class binary_writer case value_t::number_unsigned: { - if (j.m_value.number_unsigned <= 0x17) + if (j.m_data.m_value.number_unsigned <= 0x17) { - write_number(static_cast(j.m_value.number_unsigned)); + write_number(static_cast(j.m_data.m_value.number_unsigned)); } - else if (j.m_value.number_unsigned <= (std::numeric_limits::max)()) + else if (j.m_data.m_value.number_unsigned <= (std::numeric_limits::max)()) { oa->write_character(to_char_type(0x18)); - write_number(static_cast(j.m_value.number_unsigned)); + write_number(static_cast(j.m_data.m_value.number_unsigned)); } - else if (j.m_value.number_unsigned <= (std::numeric_limits::max)()) + else if (j.m_data.m_value.number_unsigned <= (std::numeric_limits::max)()) { oa->write_character(to_char_type(0x19)); - write_number(static_cast(j.m_value.number_unsigned)); + write_number(static_cast(j.m_data.m_value.number_unsigned)); } - else if (j.m_value.number_unsigned <= (std::numeric_limits::max)()) + else if (j.m_data.m_value.number_unsigned <= (std::numeric_limits::max)()) { oa->write_character(to_char_type(0x1A)); - write_number(static_cast(j.m_value.number_unsigned)); + write_number(static_cast(j.m_data.m_value.number_unsigned)); } else { oa->write_character(to_char_type(0x1B)); - write_number(static_cast(j.m_value.number_unsigned)); + write_number(static_cast(j.m_data.m_value.number_unsigned)); } break; } case value_t::number_float: { - if (std::isnan(j.m_value.number_float)) + if (std::isnan(j.m_data.m_value.number_float)) { // NaN is 0xf97e00 in CBOR oa->write_character(to_char_type(0xF9)); oa->write_character(to_char_type(0x7E)); oa->write_character(to_char_type(0x00)); } - else if (std::isinf(j.m_value.number_float)) + else if (std::isinf(j.m_data.m_value.number_float)) { // Infinity is 0xf97c00, -Infinity is 0xf9fc00 oa->write_character(to_char_type(0xf9)); - oa->write_character(j.m_value.number_float > 0 ? to_char_type(0x7C) : to_char_type(0xFC)); + oa->write_character(j.m_data.m_value.number_float > 0 ? to_char_type(0x7C) : to_char_type(0xFC)); oa->write_character(to_char_type(0x00)); } else { - write_compact_float(j.m_value.number_float, detail::input_format_t::cbor); + write_compact_float(j.m_data.m_value.number_float, detail::input_format_t::cbor); } break; } @@ -15176,7 +15263,7 @@ class binary_writer case value_t::string: { // step 1: write control byte and the string length - const auto N = j.m_value.string->size(); + const auto N = j.m_data.m_value.string->size(); if (N <= 0x17) { write_number(static_cast(0x60 + N)); @@ -15206,15 +15293,15 @@ class binary_writer // step 2: write the string oa->write_characters( - reinterpret_cast(j.m_value.string->c_str()), - j.m_value.string->size()); + reinterpret_cast(j.m_data.m_value.string->c_str()), + j.m_data.m_value.string->size()); break; } case value_t::array: { // step 1: write control byte and the array size - const auto N = j.m_value.array->size(); + const auto N = j.m_data.m_value.array->size(); if (N <= 0x17) { write_number(static_cast(0x80 + N)); @@ -15243,7 +15330,7 @@ class binary_writer // LCOV_EXCL_STOP // step 2: write each element - for (const auto& el : *j.m_value.array) + for (const auto& el : *j.m_data.m_value.array) { write_cbor(el); } @@ -15252,32 +15339,32 @@ class binary_writer case value_t::binary: { - if (j.m_value.binary->has_subtype()) + if (j.m_data.m_value.binary->has_subtype()) { - if (j.m_value.binary->subtype() <= (std::numeric_limits::max)()) + if (j.m_data.m_value.binary->subtype() <= (std::numeric_limits::max)()) { write_number(static_cast(0xd8)); - write_number(static_cast(j.m_value.binary->subtype())); + write_number(static_cast(j.m_data.m_value.binary->subtype())); } - else if (j.m_value.binary->subtype() <= (std::numeric_limits::max)()) + else if (j.m_data.m_value.binary->subtype() <= (std::numeric_limits::max)()) { write_number(static_cast(0xd9)); - write_number(static_cast(j.m_value.binary->subtype())); + write_number(static_cast(j.m_data.m_value.binary->subtype())); } - else if (j.m_value.binary->subtype() <= (std::numeric_limits::max)()) + else if (j.m_data.m_value.binary->subtype() <= (std::numeric_limits::max)()) { write_number(static_cast(0xda)); - write_number(static_cast(j.m_value.binary->subtype())); + write_number(static_cast(j.m_data.m_value.binary->subtype())); } - else if (j.m_value.binary->subtype() <= (std::numeric_limits::max)()) + else if (j.m_data.m_value.binary->subtype() <= (std::numeric_limits::max)()) { write_number(static_cast(0xdb)); - write_number(static_cast(j.m_value.binary->subtype())); + write_number(static_cast(j.m_data.m_value.binary->subtype())); } } // step 1: write control byte and the binary array size - const auto N = j.m_value.binary->size(); + const auto N = j.m_data.m_value.binary->size(); if (N <= 0x17) { write_number(static_cast(0x40 + N)); @@ -15307,7 +15394,7 @@ class binary_writer // step 2: write each element oa->write_characters( - reinterpret_cast(j.m_value.binary->data()), + reinterpret_cast(j.m_data.m_value.binary->data()), N); break; @@ -15316,7 +15403,7 @@ class binary_writer case value_t::object: { // step 1: write control byte and the object size - const auto N = j.m_value.object->size(); + const auto N = j.m_data.m_value.object->size(); if (N <= 0x17) { write_number(static_cast(0xA0 + N)); @@ -15345,7 +15432,7 @@ class binary_writer // LCOV_EXCL_STOP // step 2: write each element - for (const auto& el : *j.m_value.object) + for (const auto& el : *j.m_data.m_value.object) { write_cbor(el.first); write_cbor(el.second); @@ -15374,7 +15461,7 @@ class binary_writer case value_t::boolean: // true and false { - oa->write_character(j.m_value.boolean + oa->write_character(j.m_data.m_value.boolean ? to_char_type(0xC3) : to_char_type(0xC2)); break; @@ -15382,75 +15469,75 @@ class binary_writer case value_t::number_integer: { - if (j.m_value.number_integer >= 0) + if (j.m_data.m_value.number_integer >= 0) { // MessagePack does not differentiate between positive // signed integers and unsigned integers. Therefore, we used // the code from the value_t::number_unsigned case here. - if (j.m_value.number_unsigned < 128) + if (j.m_data.m_value.number_unsigned < 128) { // positive fixnum - write_number(static_cast(j.m_value.number_integer)); + write_number(static_cast(j.m_data.m_value.number_integer)); } - else if (j.m_value.number_unsigned <= (std::numeric_limits::max)()) + else if (j.m_data.m_value.number_unsigned <= (std::numeric_limits::max)()) { // uint 8 oa->write_character(to_char_type(0xCC)); - write_number(static_cast(j.m_value.number_integer)); + write_number(static_cast(j.m_data.m_value.number_integer)); } - else if (j.m_value.number_unsigned <= (std::numeric_limits::max)()) + else if (j.m_data.m_value.number_unsigned <= (std::numeric_limits::max)()) { // uint 16 oa->write_character(to_char_type(0xCD)); - write_number(static_cast(j.m_value.number_integer)); + write_number(static_cast(j.m_data.m_value.number_integer)); } - else if (j.m_value.number_unsigned <= (std::numeric_limits::max)()) + else if (j.m_data.m_value.number_unsigned <= (std::numeric_limits::max)()) { // uint 32 oa->write_character(to_char_type(0xCE)); - write_number(static_cast(j.m_value.number_integer)); + write_number(static_cast(j.m_data.m_value.number_integer)); } - else if (j.m_value.number_unsigned <= (std::numeric_limits::max)()) + else if (j.m_data.m_value.number_unsigned <= (std::numeric_limits::max)()) { // uint 64 oa->write_character(to_char_type(0xCF)); - write_number(static_cast(j.m_value.number_integer)); + write_number(static_cast(j.m_data.m_value.number_integer)); } } else { - if (j.m_value.number_integer >= -32) + if (j.m_data.m_value.number_integer >= -32) { // negative fixnum - write_number(static_cast(j.m_value.number_integer)); + write_number(static_cast(j.m_data.m_value.number_integer)); } - else if (j.m_value.number_integer >= (std::numeric_limits::min)() && - j.m_value.number_integer <= (std::numeric_limits::max)()) + else if (j.m_data.m_value.number_integer >= (std::numeric_limits::min)() && + j.m_data.m_value.number_integer <= (std::numeric_limits::max)()) { // int 8 oa->write_character(to_char_type(0xD0)); - write_number(static_cast(j.m_value.number_integer)); + write_number(static_cast(j.m_data.m_value.number_integer)); } - else if (j.m_value.number_integer >= (std::numeric_limits::min)() && - j.m_value.number_integer <= (std::numeric_limits::max)()) + else if (j.m_data.m_value.number_integer >= (std::numeric_limits::min)() && + j.m_data.m_value.number_integer <= (std::numeric_limits::max)()) { // int 16 oa->write_character(to_char_type(0xD1)); - write_number(static_cast(j.m_value.number_integer)); + write_number(static_cast(j.m_data.m_value.number_integer)); } - else if (j.m_value.number_integer >= (std::numeric_limits::min)() && - j.m_value.number_integer <= (std::numeric_limits::max)()) + else if (j.m_data.m_value.number_integer >= (std::numeric_limits::min)() && + j.m_data.m_value.number_integer <= (std::numeric_limits::max)()) { // int 32 oa->write_character(to_char_type(0xD2)); - write_number(static_cast(j.m_value.number_integer)); + write_number(static_cast(j.m_data.m_value.number_integer)); } - else if (j.m_value.number_integer >= (std::numeric_limits::min)() && - j.m_value.number_integer <= (std::numeric_limits::max)()) + else if (j.m_data.m_value.number_integer >= (std::numeric_limits::min)() && + j.m_data.m_value.number_integer <= (std::numeric_limits::max)()) { // int 64 oa->write_character(to_char_type(0xD3)); - write_number(static_cast(j.m_value.number_integer)); + write_number(static_cast(j.m_data.m_value.number_integer)); } } break; @@ -15458,48 +15545,48 @@ class binary_writer case value_t::number_unsigned: { - if (j.m_value.number_unsigned < 128) + if (j.m_data.m_value.number_unsigned < 128) { // positive fixnum - write_number(static_cast(j.m_value.number_integer)); + write_number(static_cast(j.m_data.m_value.number_integer)); } - else if (j.m_value.number_unsigned <= (std::numeric_limits::max)()) + else if (j.m_data.m_value.number_unsigned <= (std::numeric_limits::max)()) { // uint 8 oa->write_character(to_char_type(0xCC)); - write_number(static_cast(j.m_value.number_integer)); + write_number(static_cast(j.m_data.m_value.number_integer)); } - else if (j.m_value.number_unsigned <= (std::numeric_limits::max)()) + else if (j.m_data.m_value.number_unsigned <= (std::numeric_limits::max)()) { // uint 16 oa->write_character(to_char_type(0xCD)); - write_number(static_cast(j.m_value.number_integer)); + write_number(static_cast(j.m_data.m_value.number_integer)); } - else if (j.m_value.number_unsigned <= (std::numeric_limits::max)()) + else if (j.m_data.m_value.number_unsigned <= (std::numeric_limits::max)()) { // uint 32 oa->write_character(to_char_type(0xCE)); - write_number(static_cast(j.m_value.number_integer)); + write_number(static_cast(j.m_data.m_value.number_integer)); } - else if (j.m_value.number_unsigned <= (std::numeric_limits::max)()) + else if (j.m_data.m_value.number_unsigned <= (std::numeric_limits::max)()) { // uint 64 oa->write_character(to_char_type(0xCF)); - write_number(static_cast(j.m_value.number_integer)); + write_number(static_cast(j.m_data.m_value.number_integer)); } break; } case value_t::number_float: { - write_compact_float(j.m_value.number_float, detail::input_format_t::msgpack); + write_compact_float(j.m_data.m_value.number_float, detail::input_format_t::msgpack); break; } case value_t::string: { // step 1: write control byte and the string length - const auto N = j.m_value.string->size(); + const auto N = j.m_data.m_value.string->size(); if (N <= 31) { // fixstr @@ -15526,15 +15613,15 @@ class binary_writer // step 2: write the string oa->write_characters( - reinterpret_cast(j.m_value.string->c_str()), - j.m_value.string->size()); + reinterpret_cast(j.m_data.m_value.string->c_str()), + j.m_data.m_value.string->size()); break; } case value_t::array: { // step 1: write control byte and the array size - const auto N = j.m_value.array->size(); + const auto N = j.m_data.m_value.array->size(); if (N <= 15) { // fixarray @@ -15554,7 +15641,7 @@ class binary_writer } // step 2: write each element - for (const auto& el : *j.m_value.array) + for (const auto& el : *j.m_data.m_value.array) { write_msgpack(el); } @@ -15565,10 +15652,10 @@ class binary_writer { // step 0: determine if the binary type has a set subtype to // determine whether or not to use the ext or fixext types - const bool use_ext = j.m_value.binary->has_subtype(); + const bool use_ext = j.m_data.m_value.binary->has_subtype(); // step 1: write control byte and the byte string length - const auto N = j.m_value.binary->size(); + const auto N = j.m_data.m_value.binary->size(); if (N <= (std::numeric_limits::max)()) { std::uint8_t output_type{}; @@ -15633,12 +15720,12 @@ class binary_writer // step 1.5: if this is an ext type, write the subtype if (use_ext) { - write_number(static_cast(j.m_value.binary->subtype())); + write_number(static_cast(j.m_data.m_value.binary->subtype())); } // step 2: write the byte string oa->write_characters( - reinterpret_cast(j.m_value.binary->data()), + reinterpret_cast(j.m_data.m_value.binary->data()), N); break; @@ -15647,7 +15734,7 @@ class binary_writer case value_t::object: { // step 1: write control byte and the object size - const auto N = j.m_value.object->size(); + const auto N = j.m_data.m_value.object->size(); if (N <= 15) { // fixmap @@ -15667,7 +15754,7 @@ class binary_writer } // step 2: write each element - for (const auto& el : *j.m_value.object) + for (const auto& el : *j.m_data.m_value.object) { write_msgpack(el.first); write_msgpack(el.second); @@ -15707,7 +15794,7 @@ class binary_writer { if (add_prefix) { - oa->write_character(j.m_value.boolean + oa->write_character(j.m_data.m_value.boolean ? to_char_type('T') : to_char_type('F')); } @@ -15716,19 +15803,19 @@ class binary_writer case value_t::number_integer: { - write_number_with_ubjson_prefix(j.m_value.number_integer, add_prefix, use_bjdata); + write_number_with_ubjson_prefix(j.m_data.m_value.number_integer, add_prefix, use_bjdata); break; } case value_t::number_unsigned: { - write_number_with_ubjson_prefix(j.m_value.number_unsigned, add_prefix, use_bjdata); + write_number_with_ubjson_prefix(j.m_data.m_value.number_unsigned, add_prefix, use_bjdata); break; } case value_t::number_float: { - write_number_with_ubjson_prefix(j.m_value.number_float, add_prefix, use_bjdata); + write_number_with_ubjson_prefix(j.m_data.m_value.number_float, add_prefix, use_bjdata); break; } @@ -15738,10 +15825,10 @@ class binary_writer { oa->write_character(to_char_type('S')); } - write_number_with_ubjson_prefix(j.m_value.string->size(), true, use_bjdata); + write_number_with_ubjson_prefix(j.m_data.m_value.string->size(), true, use_bjdata); oa->write_characters( - reinterpret_cast(j.m_value.string->c_str()), - j.m_value.string->size()); + reinterpret_cast(j.m_data.m_value.string->c_str()), + j.m_data.m_value.string->size()); break; } @@ -15753,7 +15840,7 @@ class binary_writer } bool prefix_required = true; - if (use_type && !j.m_value.array->empty()) + if (use_type && !j.m_data.m_value.array->empty()) { JSON_ASSERT(use_count); const CharType first_prefix = ubjson_prefix(j.front(), use_bjdata); @@ -15776,10 +15863,10 @@ class binary_writer if (use_count) { oa->write_character(to_char_type('#')); - write_number_with_ubjson_prefix(j.m_value.array->size(), true, use_bjdata); + write_number_with_ubjson_prefix(j.m_data.m_value.array->size(), true, use_bjdata); } - for (const auto& el : *j.m_value.array) + for (const auto& el : *j.m_data.m_value.array) { write_ubjson(el, use_count, use_type, prefix_required, use_bjdata); } @@ -15799,7 +15886,7 @@ class binary_writer oa->write_character(to_char_type('[')); } - if (use_type && !j.m_value.binary->empty()) + if (use_type && !j.m_data.m_value.binary->empty()) { JSON_ASSERT(use_count); oa->write_character(to_char_type('$')); @@ -15809,21 +15896,21 @@ class binary_writer if (use_count) { oa->write_character(to_char_type('#')); - write_number_with_ubjson_prefix(j.m_value.binary->size(), true, use_bjdata); + write_number_with_ubjson_prefix(j.m_data.m_value.binary->size(), true, use_bjdata); } if (use_type) { oa->write_characters( - reinterpret_cast(j.m_value.binary->data()), - j.m_value.binary->size()); + reinterpret_cast(j.m_data.m_value.binary->data()), + j.m_data.m_value.binary->size()); } else { - for (size_t i = 0; i < j.m_value.binary->size(); ++i) + for (size_t i = 0; i < j.m_data.m_value.binary->size(); ++i) { oa->write_character(to_char_type('U')); - oa->write_character(j.m_value.binary->data()[i]); + oa->write_character(j.m_data.m_value.binary->data()[i]); } } @@ -15837,9 +15924,9 @@ class binary_writer case value_t::object: { - if (use_bjdata && j.m_value.object->size() == 3 && j.m_value.object->find("_ArrayType_") != j.m_value.object->end() && j.m_value.object->find("_ArraySize_") != j.m_value.object->end() && j.m_value.object->find("_ArrayData_") != j.m_value.object->end()) + if (use_bjdata && j.m_data.m_value.object->size() == 3 && j.m_data.m_value.object->find("_ArrayType_") != j.m_data.m_value.object->end() && j.m_data.m_value.object->find("_ArraySize_") != j.m_data.m_value.object->end() && j.m_data.m_value.object->find("_ArrayData_") != j.m_data.m_value.object->end()) { - if (!write_bjdata_ndarray(*j.m_value.object, use_count, use_type)) // decode bjdata ndarray in the JData format (https://github.com/NeuroJSON/jdata) + if (!write_bjdata_ndarray(*j.m_data.m_value.object, use_count, use_type)) // decode bjdata ndarray in the JData format (https://github.com/NeuroJSON/jdata) { break; } @@ -15851,7 +15938,7 @@ class binary_writer } bool prefix_required = true; - if (use_type && !j.m_value.object->empty()) + if (use_type && !j.m_data.m_value.object->empty()) { JSON_ASSERT(use_count); const CharType first_prefix = ubjson_prefix(j.front(), use_bjdata); @@ -15874,10 +15961,10 @@ class binary_writer if (use_count) { oa->write_character(to_char_type('#')); - write_number_with_ubjson_prefix(j.m_value.object->size(), true, use_bjdata); + write_number_with_ubjson_prefix(j.m_data.m_value.object->size(), true, use_bjdata); } - for (const auto& el : *j.m_value.object) + for (const auto& el : *j.m_data.m_value.object) { write_number_with_ubjson_prefix(el.first.size(), true, use_bjdata); oa->write_characters( @@ -16027,19 +16114,19 @@ class binary_writer void write_bson_unsigned(const string_t& name, const BasicJsonType& j) { - if (j.m_value.number_unsigned <= static_cast((std::numeric_limits::max)())) + if (j.m_data.m_value.number_unsigned <= static_cast((std::numeric_limits::max)())) { write_bson_entry_header(name, 0x10 /* int32 */); - write_number(static_cast(j.m_value.number_unsigned), true); + write_number(static_cast(j.m_data.m_value.number_unsigned), true); } - else if (j.m_value.number_unsigned <= static_cast((std::numeric_limits::max)())) + else if (j.m_data.m_value.number_unsigned <= static_cast((std::numeric_limits::max)())) { write_bson_entry_header(name, 0x12 /* int64 */); - write_number(static_cast(j.m_value.number_unsigned), true); + write_number(static_cast(j.m_data.m_value.number_unsigned), true); } else { - JSON_THROW(out_of_range::create(407, concat("integer number ", std::to_string(j.m_value.number_unsigned), " cannot be represented by BSON as it does not fit int64"), &j)); + JSON_THROW(out_of_range::create(407, concat("integer number ", std::to_string(j.m_data.m_value.number_unsigned), " cannot be represented by BSON as it does not fit int64"), &j)); } } @@ -16120,13 +16207,13 @@ class binary_writer switch (j.type()) { case value_t::object: - return header_size + calc_bson_object_size(*j.m_value.object); + return header_size + calc_bson_object_size(*j.m_data.m_value.object); case value_t::array: - return header_size + calc_bson_array_size(*j.m_value.array); + return header_size + calc_bson_array_size(*j.m_data.m_value.array); case value_t::binary: - return header_size + calc_bson_binary_size(*j.m_value.binary); + return header_size + calc_bson_binary_size(*j.m_data.m_value.binary); case value_t::boolean: return header_size + 1ul; @@ -16135,13 +16222,13 @@ class binary_writer return header_size + 8ul; case value_t::number_integer: - return header_size + calc_bson_integer_size(j.m_value.number_integer); + return header_size + calc_bson_integer_size(j.m_data.m_value.number_integer); case value_t::number_unsigned: - return header_size + calc_bson_unsigned_size(j.m_value.number_unsigned); + return header_size + calc_bson_unsigned_size(j.m_data.m_value.number_unsigned); case value_t::string: - return header_size + calc_bson_string_size(*j.m_value.string); + return header_size + calc_bson_string_size(*j.m_data.m_value.string); case value_t::null: return header_size + 0ul; @@ -16167,28 +16254,28 @@ class binary_writer switch (j.type()) { case value_t::object: - return write_bson_object_entry(name, *j.m_value.object); + return write_bson_object_entry(name, *j.m_data.m_value.object); case value_t::array: - return write_bson_array(name, *j.m_value.array); + return write_bson_array(name, *j.m_data.m_value.array); case value_t::binary: - return write_bson_binary(name, *j.m_value.binary); + return write_bson_binary(name, *j.m_data.m_value.binary); case value_t::boolean: - return write_bson_boolean(name, j.m_value.boolean); + return write_bson_boolean(name, j.m_data.m_value.boolean); case value_t::number_float: - return write_bson_double(name, j.m_value.number_float); + return write_bson_double(name, j.m_data.m_value.number_float); case value_t::number_integer: - return write_bson_integer(name, j.m_value.number_integer); + return write_bson_integer(name, j.m_data.m_value.number_integer); case value_t::number_unsigned: return write_bson_unsigned(name, j); case value_t::string: - return write_bson_string(name, *j.m_value.string); + return write_bson_string(name, *j.m_data.m_value.string); case value_t::null: return write_bson_null(name); @@ -16461,35 +16548,35 @@ class binary_writer return 'Z'; case value_t::boolean: - return j.m_value.boolean ? 'T' : 'F'; + return j.m_data.m_value.boolean ? 'T' : 'F'; case value_t::number_integer: { - if ((std::numeric_limits::min)() <= j.m_value.number_integer && j.m_value.number_integer <= (std::numeric_limits::max)()) + if ((std::numeric_limits::min)() <= j.m_data.m_value.number_integer && j.m_data.m_value.number_integer <= (std::numeric_limits::max)()) { return 'i'; } - if ((std::numeric_limits::min)() <= j.m_value.number_integer && j.m_value.number_integer <= (std::numeric_limits::max)()) + if ((std::numeric_limits::min)() <= j.m_data.m_value.number_integer && j.m_data.m_value.number_integer <= (std::numeric_limits::max)()) { return 'U'; } - if ((std::numeric_limits::min)() <= j.m_value.number_integer && j.m_value.number_integer <= (std::numeric_limits::max)()) + if ((std::numeric_limits::min)() <= j.m_data.m_value.number_integer && j.m_data.m_value.number_integer <= (std::numeric_limits::max)()) { return 'I'; } - if (use_bjdata && ((std::numeric_limits::min)() <= j.m_value.number_integer && j.m_value.number_integer <= (std::numeric_limits::max)())) + if (use_bjdata && ((std::numeric_limits::min)() <= j.m_data.m_value.number_integer && j.m_data.m_value.number_integer <= (std::numeric_limits::max)())) { return 'u'; } - if ((std::numeric_limits::min)() <= j.m_value.number_integer && j.m_value.number_integer <= (std::numeric_limits::max)()) + if ((std::numeric_limits::min)() <= j.m_data.m_value.number_integer && j.m_data.m_value.number_integer <= (std::numeric_limits::max)()) { return 'l'; } - if (use_bjdata && ((std::numeric_limits::min)() <= j.m_value.number_integer && j.m_value.number_integer <= (std::numeric_limits::max)())) + if (use_bjdata && ((std::numeric_limits::min)() <= j.m_data.m_value.number_integer && j.m_data.m_value.number_integer <= (std::numeric_limits::max)())) { return 'm'; } - if ((std::numeric_limits::min)() <= j.m_value.number_integer && j.m_value.number_integer <= (std::numeric_limits::max)()) + if ((std::numeric_limits::min)() <= j.m_data.m_value.number_integer && j.m_data.m_value.number_integer <= (std::numeric_limits::max)()) { return 'L'; } @@ -16499,35 +16586,35 @@ class binary_writer case value_t::number_unsigned: { - if (j.m_value.number_unsigned <= static_cast((std::numeric_limits::max)())) + if (j.m_data.m_value.number_unsigned <= static_cast((std::numeric_limits::max)())) { return 'i'; } - if (j.m_value.number_unsigned <= static_cast((std::numeric_limits::max)())) + if (j.m_data.m_value.number_unsigned <= static_cast((std::numeric_limits::max)())) { return 'U'; } - if (j.m_value.number_unsigned <= static_cast((std::numeric_limits::max)())) + if (j.m_data.m_value.number_unsigned <= static_cast((std::numeric_limits::max)())) { return 'I'; } - if (use_bjdata && j.m_value.number_unsigned <= static_cast((std::numeric_limits::max)())) + if (use_bjdata && j.m_data.m_value.number_unsigned <= static_cast((std::numeric_limits::max)())) { return 'u'; } - if (j.m_value.number_unsigned <= static_cast((std::numeric_limits::max)())) + if (j.m_data.m_value.number_unsigned <= static_cast((std::numeric_limits::max)())) { return 'l'; } - if (use_bjdata && j.m_value.number_unsigned <= static_cast((std::numeric_limits::max)())) + if (use_bjdata && j.m_data.m_value.number_unsigned <= static_cast((std::numeric_limits::max)())) { return 'm'; } - if (j.m_value.number_unsigned <= static_cast((std::numeric_limits::max)())) + if (j.m_data.m_value.number_unsigned <= static_cast((std::numeric_limits::max)())) { return 'L'; } - if (use_bjdata && j.m_value.number_unsigned <= (std::numeric_limits::max)()) + if (use_bjdata && j.m_data.m_value.number_unsigned <= (std::numeric_limits::max)()) { return 'M'; } @@ -16536,7 +16623,7 @@ class binary_writer } case value_t::number_float: - return get_ubjson_float_prefix(j.m_value.number_float); + return get_ubjson_float_prefix(j.m_data.m_value.number_float); case value_t::string: return 'S'; @@ -16585,7 +16672,7 @@ class binary_writer std::size_t len = (value.at(key).empty() ? 0 : 1); for (const auto& el : value.at(key)) { - len *= static_cast(el.m_value.number_unsigned); + len *= static_cast(el.m_data.m_value.number_unsigned); } key = "_ArrayData_"; @@ -16607,70 +16694,70 @@ class binary_writer { for (const auto& el : value.at(key)) { - write_number(static_cast(el.m_value.number_unsigned), true); + write_number(static_cast(el.m_data.m_value.number_unsigned), true); } } else if (dtype == 'i') { for (const auto& el : value.at(key)) { - write_number(static_cast(el.m_value.number_integer), true); + write_number(static_cast(el.m_data.m_value.number_integer), true); } } else if (dtype == 'u') { for (const auto& el : value.at(key)) { - write_number(static_cast(el.m_value.number_unsigned), true); + write_number(static_cast(el.m_data.m_value.number_unsigned), true); } } else if (dtype == 'I') { for (const auto& el : value.at(key)) { - write_number(static_cast(el.m_value.number_integer), true); + write_number(static_cast(el.m_data.m_value.number_integer), true); } } else if (dtype == 'm') { for (const auto& el : value.at(key)) { - write_number(static_cast(el.m_value.number_unsigned), true); + write_number(static_cast(el.m_data.m_value.number_unsigned), true); } } else if (dtype == 'l') { for (const auto& el : value.at(key)) { - write_number(static_cast(el.m_value.number_integer), true); + write_number(static_cast(el.m_data.m_value.number_integer), true); } } else if (dtype == 'M') { for (const auto& el : value.at(key)) { - write_number(static_cast(el.m_value.number_unsigned), true); + write_number(static_cast(el.m_data.m_value.number_unsigned), true); } } else if (dtype == 'L') { for (const auto& el : value.at(key)) { - write_number(static_cast(el.m_value.number_integer), true); + write_number(static_cast(el.m_data.m_value.number_integer), true); } } else if (dtype == 'd') { for (const auto& el : value.at(key)) { - write_number(static_cast(el.m_value.number_float), true); + write_number(static_cast(el.m_data.m_value.number_float), true); } } else if (dtype == 'D') { for (const auto& el : value.at(key)) { - write_number(static_cast(el.m_value.number_float), true); + write_number(static_cast(el.m_data.m_value.number_float), true); } } return false; @@ -16794,11 +16881,11 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // // SPDX-FileCopyrightText: 2008-2009 Björn Hoehrmann -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -16819,11 +16906,11 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // // SPDX-FileCopyrightText: 2009 Florian Loitsch -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -17729,7 +17816,7 @@ void grisu2(char* buf, int& len, int& decimal_exponent, FloatType value) // NB: If the neighbors are computed for single-precision numbers, there is a single float // (7.0385307e-26f) which can't be recovered using strtod. The resulting double precision // value is off by 1 ulp. -#if 0 +#if 0 // NOLINT(readability-avoid-unconditional-preprocessor-if) const boundaries w = compute_boundaries(static_cast(value)); #else const boundaries w = compute_boundaries(value); @@ -18031,11 +18118,11 @@ class serializer const unsigned int indent_step, const unsigned int current_indent = 0) { - switch (val.m_type) + switch (val.m_data.m_type) { case value_t::object: { - if (val.m_value.object->empty()) + if (val.m_data.m_value.object->empty()) { o->write_characters("{}", 2); return; @@ -18053,8 +18140,8 @@ class serializer } // first n-1 elements - auto i = val.m_value.object->cbegin(); - for (std::size_t cnt = 0; cnt < val.m_value.object->size() - 1; ++cnt, ++i) + auto i = val.m_data.m_value.object->cbegin(); + for (std::size_t cnt = 0; cnt < val.m_data.m_value.object->size() - 1; ++cnt, ++i) { o->write_characters(indent_string.c_str(), new_indent); o->write_character('\"'); @@ -18065,8 +18152,8 @@ class serializer } // last element - JSON_ASSERT(i != val.m_value.object->cend()); - JSON_ASSERT(std::next(i) == val.m_value.object->cend()); + JSON_ASSERT(i != val.m_data.m_value.object->cend()); + JSON_ASSERT(std::next(i) == val.m_data.m_value.object->cend()); o->write_characters(indent_string.c_str(), new_indent); o->write_character('\"'); dump_escaped(i->first, ensure_ascii); @@ -18082,8 +18169,8 @@ class serializer o->write_character('{'); // first n-1 elements - auto i = val.m_value.object->cbegin(); - for (std::size_t cnt = 0; cnt < val.m_value.object->size() - 1; ++cnt, ++i) + auto i = val.m_data.m_value.object->cbegin(); + for (std::size_t cnt = 0; cnt < val.m_data.m_value.object->size() - 1; ++cnt, ++i) { o->write_character('\"'); dump_escaped(i->first, ensure_ascii); @@ -18093,8 +18180,8 @@ class serializer } // last element - JSON_ASSERT(i != val.m_value.object->cend()); - JSON_ASSERT(std::next(i) == val.m_value.object->cend()); + JSON_ASSERT(i != val.m_data.m_value.object->cend()); + JSON_ASSERT(std::next(i) == val.m_data.m_value.object->cend()); o->write_character('\"'); dump_escaped(i->first, ensure_ascii); o->write_characters("\":", 2); @@ -18108,7 +18195,7 @@ class serializer case value_t::array: { - if (val.m_value.array->empty()) + if (val.m_data.m_value.array->empty()) { o->write_characters("[]", 2); return; @@ -18126,8 +18213,8 @@ class serializer } // first n-1 elements - for (auto i = val.m_value.array->cbegin(); - i != val.m_value.array->cend() - 1; ++i) + for (auto i = val.m_data.m_value.array->cbegin(); + i != val.m_data.m_value.array->cend() - 1; ++i) { o->write_characters(indent_string.c_str(), new_indent); dump(*i, true, ensure_ascii, indent_step, new_indent); @@ -18135,9 +18222,9 @@ class serializer } // last element - JSON_ASSERT(!val.m_value.array->empty()); + JSON_ASSERT(!val.m_data.m_value.array->empty()); o->write_characters(indent_string.c_str(), new_indent); - dump(val.m_value.array->back(), true, ensure_ascii, indent_step, new_indent); + dump(val.m_data.m_value.array->back(), true, ensure_ascii, indent_step, new_indent); o->write_character('\n'); o->write_characters(indent_string.c_str(), current_indent); @@ -18148,16 +18235,16 @@ class serializer o->write_character('['); // first n-1 elements - for (auto i = val.m_value.array->cbegin(); - i != val.m_value.array->cend() - 1; ++i) + for (auto i = val.m_data.m_value.array->cbegin(); + i != val.m_data.m_value.array->cend() - 1; ++i) { dump(*i, false, ensure_ascii, indent_step, current_indent); o->write_character(','); } // last element - JSON_ASSERT(!val.m_value.array->empty()); - dump(val.m_value.array->back(), false, ensure_ascii, indent_step, current_indent); + JSON_ASSERT(!val.m_data.m_value.array->empty()); + dump(val.m_data.m_value.array->back(), false, ensure_ascii, indent_step, current_indent); o->write_character(']'); } @@ -18168,7 +18255,7 @@ class serializer case value_t::string: { o->write_character('\"'); - dump_escaped(*val.m_value.string, ensure_ascii); + dump_escaped(*val.m_data.m_value.string, ensure_ascii); o->write_character('\"'); return; } @@ -18190,24 +18277,24 @@ class serializer o->write_characters("\"bytes\": [", 10); - if (!val.m_value.binary->empty()) + if (!val.m_data.m_value.binary->empty()) { - for (auto i = val.m_value.binary->cbegin(); - i != val.m_value.binary->cend() - 1; ++i) + for (auto i = val.m_data.m_value.binary->cbegin(); + i != val.m_data.m_value.binary->cend() - 1; ++i) { dump_integer(*i); o->write_characters(", ", 2); } - dump_integer(val.m_value.binary->back()); + dump_integer(val.m_data.m_value.binary->back()); } o->write_characters("],\n", 3); o->write_characters(indent_string.c_str(), new_indent); o->write_characters("\"subtype\": ", 11); - if (val.m_value.binary->has_subtype()) + if (val.m_data.m_value.binary->has_subtype()) { - dump_integer(val.m_value.binary->subtype()); + dump_integer(val.m_data.m_value.binary->subtype()); } else { @@ -18221,21 +18308,21 @@ class serializer { o->write_characters("{\"bytes\":[", 10); - if (!val.m_value.binary->empty()) + if (!val.m_data.m_value.binary->empty()) { - for (auto i = val.m_value.binary->cbegin(); - i != val.m_value.binary->cend() - 1; ++i) + for (auto i = val.m_data.m_value.binary->cbegin(); + i != val.m_data.m_value.binary->cend() - 1; ++i) { dump_integer(*i); o->write_character(','); } - dump_integer(val.m_value.binary->back()); + dump_integer(val.m_data.m_value.binary->back()); } o->write_characters("],\"subtype\":", 12); - if (val.m_value.binary->has_subtype()) + if (val.m_data.m_value.binary->has_subtype()) { - dump_integer(val.m_value.binary->subtype()); + dump_integer(val.m_data.m_value.binary->subtype()); o->write_character('}'); } else @@ -18248,7 +18335,7 @@ class serializer case value_t::boolean: { - if (val.m_value.boolean) + if (val.m_data.m_value.boolean) { o->write_characters("true", 4); } @@ -18261,19 +18348,19 @@ class serializer case value_t::number_integer: { - dump_integer(val.m_value.number_integer); + dump_integer(val.m_data.m_value.number_integer); return; } case value_t::number_unsigned: { - dump_integer(val.m_value.number_unsigned); + dump_integer(val.m_data.m_value.number_unsigned); return; } case value_t::number_float: { - dump_float(val.m_value.number_float); + dump_float(val.m_data.m_value.number_float); return; } @@ -18848,7 +18935,7 @@ class serializer : (0xFFu >> type) & (byte); const std::size_t index = 256u + static_cast(state) * 16u + static_cast(type); - JSON_ASSERT(index < 400); + JSON_ASSERT(index < utf8d.size()); state = utf8d[index]; return state; } @@ -18915,10 +19002,10 @@ NLOHMANN_JSON_NAMESPACE_END // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -19035,7 +19122,7 @@ template , template::value, int> = 0> - T & at(KeyType && key) + T & at(KeyType && key) // NOLINT(cppcoreguidelines-missing-std-forward) { for (auto it = this->begin(); it != this->end(); ++it) { @@ -19063,7 +19150,7 @@ template , template::value, int> = 0> - const T & at(KeyType && key) const + const T & at(KeyType && key) const // NOLINT(cppcoreguidelines-missing-std-forward) { for (auto it = this->begin(); it != this->end(); ++it) { @@ -19097,7 +19184,7 @@ template , template::value, int> = 0> - size_type erase(KeyType && key) + size_type erase(KeyType && key) // NOLINT(cppcoreguidelines-missing-std-forward) { for (auto it = this->begin(); it != this->end(); ++it) { @@ -19188,7 +19275,7 @@ template , template::value, int> = 0> - size_type count(KeyType && key) const + size_type count(KeyType && key) const // NOLINT(cppcoreguidelines-missing-std-forward) { for (auto it = this->begin(); it != this->end(); ++it) { @@ -19214,7 +19301,7 @@ template , template::value, int> = 0> - iterator find(KeyType && key) + iterator find(KeyType && key) // NOLINT(cppcoreguidelines-missing-std-forward) { for (auto it = this->begin(); it != this->end(); ++it) { @@ -19277,7 +19364,9 @@ NLOHMANN_JSON_NAMESPACE_END #if defined(JSON_HAS_CPP_17) - #include + #if JSON_HAS_STATIC_RTTI + #include + #endif #include #endif @@ -19407,7 +19496,6 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @} - ///////////////////// // container types // ///////////////////// @@ -19449,7 +19537,6 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @} - /// @brief returns the allocator associated with the container /// @sa https://json.nlohmann.me/api/basic_json/get_allocator/ static allocator_type get_allocator() @@ -19464,7 +19551,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec { basic_json result; - result["copyright"] = "(C) 2013-2022 Niels Lohmann"; + result["copyright"] = "(C) 2013-2023 Niels Lohmann"; result["name"] = "JSON for Modern C++"; result["url"] = "https://github.com/nlohmann/json"; result["version"]["string"] = @@ -19512,7 +19599,6 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec result["compiler"] = {{"family", "unknown"}, {"version", "unknown"}}; #endif - #if defined(_MSVC_LANG) result["compiler"]["c++"] = std::to_string(_MSVC_LANG); #elif defined(__cplusplus) @@ -19523,7 +19609,6 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec return result; } - /////////////////////////// // JSON value data types // /////////////////////////// @@ -19731,7 +19816,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec object = nullptr; // silence warning, see #821 if (JSON_HEDLEY_UNLIKELY(t == value_t::null)) { - JSON_THROW(other_error::create(500, "961c151d2e87f2686a955a9be24d316f1362bf21 3.11.2", nullptr)); // LCOV_EXCL_LINE + JSON_THROW(other_error::create(500, "961c151d2e87f2686a955a9be24d316f1362bf21 3.11.3", nullptr)); // LCOV_EXCL_LINE } break; } @@ -19770,6 +19855,16 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec void destroy(value_t t) { + if ( + (t == value_t::object && object == nullptr) || + (t == value_t::array && array == nullptr) || + (t == value_t::string && string == nullptr) || + (t == value_t::binary && binary == nullptr) + ) + { + //not initialized (e.g. due to exception in the ctor) + return; + } if (t == value_t::array || t == value_t::object) { // flatten the current json_value to a heap-allocated stack @@ -19800,18 +19895,18 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec // its children to the stack to be processed later if (current_item.is_array()) { - std::move(current_item.m_value.array->begin(), current_item.m_value.array->end(), std::back_inserter(stack)); + std::move(current_item.m_data.m_value.array->begin(), current_item.m_data.m_value.array->end(), std::back_inserter(stack)); - current_item.m_value.array->clear(); + current_item.m_data.m_value.array->clear(); } else if (current_item.is_object()) { - for (auto&& it : *current_item.m_value.object) + for (auto&& it : *current_item.m_data.m_value.object) { stack.push_back(std::move(it.second)); } - current_item.m_value.object->clear(); + current_item.m_data.m_value.object->clear(); } // it's now safe that current_item get destructed @@ -19888,14 +19983,15 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec */ void assert_invariant(bool check_parents = true) const noexcept { - JSON_ASSERT(m_type != value_t::object || m_value.object != nullptr); - JSON_ASSERT(m_type != value_t::array || m_value.array != nullptr); - JSON_ASSERT(m_type != value_t::string || m_value.string != nullptr); - JSON_ASSERT(m_type != value_t::binary || m_value.binary != nullptr); + JSON_ASSERT(m_data.m_type != value_t::object || m_data.m_value.object != nullptr); + JSON_ASSERT(m_data.m_type != value_t::array || m_data.m_value.array != nullptr); + JSON_ASSERT(m_data.m_type != value_t::string || m_data.m_value.string != nullptr); + JSON_ASSERT(m_data.m_type != value_t::binary || m_data.m_value.binary != nullptr); #if JSON_DIAGNOSTICS JSON_TRY { + // cppcheck-suppress assertWithSideEffect JSON_ASSERT(!check_parents || !is_structured() || std::all_of(begin(), end(), [this](const basic_json & j) { return j.m_parent == this; @@ -19909,11 +20005,11 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec void set_parents() { #if JSON_DIAGNOSTICS - switch (m_type) + switch (m_data.m_type) { case value_t::array: { - for (auto& element : *m_value.array) + for (auto& element : *m_data.m_value.array) { element.m_parent = this; } @@ -19922,7 +20018,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec case value_t::object: { - for (auto& element : *m_value.object) + for (auto& element : *m_data.m_value.object) { element.second.m_parent = this; } @@ -19963,7 +20059,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec { // see https://github.com/nlohmann/json/issues/2838 JSON_ASSERT(type() == value_t::array); - if (JSON_HEDLEY_UNLIKELY(m_value.array->capacity() != old_capacity)) + if (JSON_HEDLEY_UNLIKELY(m_data.m_value.array->capacity() != old_capacity)) { // capacity has changed: update all parents set_parents(); @@ -20019,7 +20115,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @brief create an empty value with a given type /// @sa https://json.nlohmann.me/api/basic_json/basic_json/ basic_json(const value_t v) - : m_type(v), m_value(v) + : m_data(v) { assert_invariant(); } @@ -20093,12 +20189,12 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec *this = nullptr; break; case value_t::discarded: - m_type = value_t::discarded; + m_data.m_type = value_t::discarded; break; default: // LCOV_EXCL_LINE JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert) LCOV_EXCL_LINE } - JSON_ASSERT(m_type == val.type()); + JSON_ASSERT(m_data.m_type == val.type()); set_parents(); assert_invariant(); } @@ -20114,7 +20210,10 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec bool is_an_object = std::all_of(init.begin(), init.end(), [](const detail::json_ref& element_ref) { - return element_ref->is_array() && element_ref->size() == 2 && (*element_ref)[0].is_string(); + // The cast is to ensure op[size_type] is called, bearing in mind size_type may not be int; + // (many string types can be constructed from 0 via its null-pointer guise, so we get a + // broken call to op[key_type], the wrong semantics and a 4804 warning on Windows) + return element_ref->is_array() && element_ref->size() == 2 && (*element_ref)[static_cast(0)].is_string(); }); // adjust type if type deduction is not wanted @@ -20136,22 +20235,22 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec if (is_an_object) { // the initializer list is a list of pairs -> create object - m_type = value_t::object; - m_value = value_t::object; + m_data.m_type = value_t::object; + m_data.m_value = value_t::object; for (auto& element_ref : init) { auto element = element_ref.moved_or_copied(); - m_value.object->emplace( - std::move(*((*element.m_value.array)[0].m_value.string)), - std::move((*element.m_value.array)[1])); + m_data.m_value.object->emplace( + std::move(*((*element.m_data.m_value.array)[0].m_data.m_value.string)), + std::move((*element.m_data.m_value.array)[1])); } } else { // the initializer list describes an array -> create array - m_type = value_t::array; - m_value.array = create(init.begin(), init.end()); + m_data.m_type = value_t::array; + m_data.m_value.array = create(init.begin(), init.end()); } set_parents(); @@ -20164,8 +20263,8 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec static basic_json binary(const typename binary_t::container_type& init) { auto res = basic_json(); - res.m_type = value_t::binary; - res.m_value = init; + res.m_data.m_type = value_t::binary; + res.m_data.m_value = init; return res; } @@ -20175,8 +20274,8 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec static basic_json binary(const typename binary_t::container_type& init, typename binary_t::subtype_type subtype) { auto res = basic_json(); - res.m_type = value_t::binary; - res.m_value = binary_t(init, subtype); + res.m_data.m_type = value_t::binary; + res.m_data.m_value = binary_t(init, subtype); return res; } @@ -20186,8 +20285,8 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec static basic_json binary(typename binary_t::container_type&& init) { auto res = basic_json(); - res.m_type = value_t::binary; - res.m_value = std::move(init); + res.m_data.m_type = value_t::binary; + res.m_data.m_value = std::move(init); return res; } @@ -20197,8 +20296,8 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec static basic_json binary(typename binary_t::container_type&& init, typename binary_t::subtype_type subtype) { auto res = basic_json(); - res.m_type = value_t::binary; - res.m_value = binary_t(std::move(init), subtype); + res.m_data.m_type = value_t::binary; + res.m_data.m_value = binary_t(std::move(init), subtype); return res; } @@ -20220,10 +20319,9 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @brief construct an array with count copies of given value /// @sa https://json.nlohmann.me/api/basic_json/basic_json/ - basic_json(size_type cnt, const basic_json& val) - : m_type(value_t::array) + basic_json(size_type cnt, const basic_json& val): + m_data{cnt, val} { - m_value.array = create(cnt, val); set_parents(); assert_invariant(); } @@ -20245,10 +20343,10 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec } // copy type from first iterator - m_type = first.m_object->m_type; + m_data.m_type = first.m_object->m_data.m_type; // check if iterator range is complete for primitive values - switch (m_type) + switch (m_data.m_type) { case value_t::boolean: case value_t::number_float: @@ -20273,55 +20371,55 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec break; } - switch (m_type) + switch (m_data.m_type) { case value_t::number_integer: { - m_value.number_integer = first.m_object->m_value.number_integer; + m_data.m_value.number_integer = first.m_object->m_data.m_value.number_integer; break; } case value_t::number_unsigned: { - m_value.number_unsigned = first.m_object->m_value.number_unsigned; + m_data.m_value.number_unsigned = first.m_object->m_data.m_value.number_unsigned; break; } case value_t::number_float: { - m_value.number_float = first.m_object->m_value.number_float; + m_data.m_value.number_float = first.m_object->m_data.m_value.number_float; break; } case value_t::boolean: { - m_value.boolean = first.m_object->m_value.boolean; + m_data.m_value.boolean = first.m_object->m_data.m_value.boolean; break; } case value_t::string: { - m_value = *first.m_object->m_value.string; + m_data.m_value = *first.m_object->m_data.m_value.string; break; } case value_t::object: { - m_value.object = create(first.m_it.object_iterator, - last.m_it.object_iterator); + m_data.m_value.object = create(first.m_it.object_iterator, + last.m_it.object_iterator); break; } case value_t::array: { - m_value.array = create(first.m_it.array_iterator, - last.m_it.array_iterator); + m_data.m_value.array = create(first.m_it.array_iterator, + last.m_it.array_iterator); break; } case value_t::binary: { - m_value = *first.m_object->m_value.binary; + m_data.m_value = *first.m_object->m_data.m_value.binary; break; } @@ -20335,7 +20433,6 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec assert_invariant(); } - /////////////////////////////////////// // other constructors and destructor // /////////////////////////////////////// @@ -20348,59 +20445,59 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @brief copy constructor /// @sa https://json.nlohmann.me/api/basic_json/basic_json/ basic_json(const basic_json& other) - : json_base_class_t(other), - m_type(other.m_type) + : json_base_class_t(other) { + m_data.m_type = other.m_data.m_type; // check of passed value is valid other.assert_invariant(); - switch (m_type) + switch (m_data.m_type) { case value_t::object: { - m_value = *other.m_value.object; + m_data.m_value = *other.m_data.m_value.object; break; } case value_t::array: { - m_value = *other.m_value.array; + m_data.m_value = *other.m_data.m_value.array; break; } case value_t::string: { - m_value = *other.m_value.string; + m_data.m_value = *other.m_data.m_value.string; break; } case value_t::boolean: { - m_value = other.m_value.boolean; + m_data.m_value = other.m_data.m_value.boolean; break; } case value_t::number_integer: { - m_value = other.m_value.number_integer; + m_data.m_value = other.m_data.m_value.number_integer; break; } case value_t::number_unsigned: { - m_value = other.m_value.number_unsigned; + m_data.m_value = other.m_data.m_value.number_unsigned; break; } case value_t::number_float: { - m_value = other.m_value.number_float; + m_data.m_value = other.m_data.m_value.number_float; break; } case value_t::binary: { - m_value = *other.m_value.binary; + m_data.m_value = *other.m_data.m_value.binary; break; } @@ -20417,16 +20514,15 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @brief move constructor /// @sa https://json.nlohmann.me/api/basic_json/basic_json/ basic_json(basic_json&& other) noexcept - : json_base_class_t(std::move(other)), - m_type(std::move(other.m_type)), - m_value(std::move(other.m_value)) + : json_base_class_t(std::forward(other)), + m_data(std::move(other.m_data)) { // check that passed value is valid - other.assert_invariant(false); // NOLINT(bugprone-use-after-move,hicpp-invalid-access-moved) + other.assert_invariant(false); // invalidate payload - other.m_type = value_t::null; - other.m_value = {}; + other.m_data.m_type = value_t::null; + other.m_data.m_value = {}; set_parents(); assert_invariant(); @@ -20446,8 +20542,8 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec other.assert_invariant(); using std::swap; - swap(m_type, other.m_type); - swap(m_value, other.m_value); + swap(m_data.m_type, other.m_data.m_type); + swap(m_data.m_value, other.m_data.m_value); json_base_class_t::operator=(std::move(other)); set_parents(); @@ -20460,7 +20556,6 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec ~basic_json() noexcept { assert_invariant(false); - m_value.destroy(m_type); } /// @} @@ -20500,7 +20595,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @sa https://json.nlohmann.me/api/basic_json/type/ constexpr value_t type() const noexcept { - return m_type; + return m_data.m_type; } /// @brief return whether type is primitive @@ -20521,14 +20616,14 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @sa https://json.nlohmann.me/api/basic_json/is_null/ constexpr bool is_null() const noexcept { - return m_type == value_t::null; + return m_data.m_type == value_t::null; } /// @brief return whether value is a boolean /// @sa https://json.nlohmann.me/api/basic_json/is_boolean/ constexpr bool is_boolean() const noexcept { - return m_type == value_t::boolean; + return m_data.m_type == value_t::boolean; } /// @brief return whether value is a number @@ -20542,63 +20637,63 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @sa https://json.nlohmann.me/api/basic_json/is_number_integer/ constexpr bool is_number_integer() const noexcept { - return m_type == value_t::number_integer || m_type == value_t::number_unsigned; + return m_data.m_type == value_t::number_integer || m_data.m_type == value_t::number_unsigned; } /// @brief return whether value is an unsigned integer number /// @sa https://json.nlohmann.me/api/basic_json/is_number_unsigned/ constexpr bool is_number_unsigned() const noexcept { - return m_type == value_t::number_unsigned; + return m_data.m_type == value_t::number_unsigned; } /// @brief return whether value is a floating-point number /// @sa https://json.nlohmann.me/api/basic_json/is_number_float/ constexpr bool is_number_float() const noexcept { - return m_type == value_t::number_float; + return m_data.m_type == value_t::number_float; } /// @brief return whether value is an object /// @sa https://json.nlohmann.me/api/basic_json/is_object/ constexpr bool is_object() const noexcept { - return m_type == value_t::object; + return m_data.m_type == value_t::object; } /// @brief return whether value is an array /// @sa https://json.nlohmann.me/api/basic_json/is_array/ constexpr bool is_array() const noexcept { - return m_type == value_t::array; + return m_data.m_type == value_t::array; } /// @brief return whether value is a string /// @sa https://json.nlohmann.me/api/basic_json/is_string/ constexpr bool is_string() const noexcept { - return m_type == value_t::string; + return m_data.m_type == value_t::string; } /// @brief return whether value is a binary array /// @sa https://json.nlohmann.me/api/basic_json/is_binary/ constexpr bool is_binary() const noexcept { - return m_type == value_t::binary; + return m_data.m_type == value_t::binary; } /// @brief return whether value is discarded /// @sa https://json.nlohmann.me/api/basic_json/is_discarded/ constexpr bool is_discarded() const noexcept { - return m_type == value_t::discarded; + return m_data.m_type == value_t::discarded; } /// @brief return the type of the JSON value (implicit) /// @sa https://json.nlohmann.me/api/basic_json/operator_value_t/ constexpr operator value_t() const noexcept { - return m_type; + return m_data.m_type; } /// @} @@ -20613,7 +20708,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec { if (JSON_HEDLEY_LIKELY(is_boolean())) { - return m_value.boolean; + return m_data.m_value.boolean; } JSON_THROW(type_error::create(302, detail::concat("type must be boolean, but is ", type_name()), this)); @@ -20622,97 +20717,97 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// get a pointer to the value (object) object_t* get_impl_ptr(object_t* /*unused*/) noexcept { - return is_object() ? m_value.object : nullptr; + return is_object() ? m_data.m_value.object : nullptr; } /// get a pointer to the value (object) constexpr const object_t* get_impl_ptr(const object_t* /*unused*/) const noexcept { - return is_object() ? m_value.object : nullptr; + return is_object() ? m_data.m_value.object : nullptr; } /// get a pointer to the value (array) array_t* get_impl_ptr(array_t* /*unused*/) noexcept { - return is_array() ? m_value.array : nullptr; + return is_array() ? m_data.m_value.array : nullptr; } /// get a pointer to the value (array) constexpr const array_t* get_impl_ptr(const array_t* /*unused*/) const noexcept { - return is_array() ? m_value.array : nullptr; + return is_array() ? m_data.m_value.array : nullptr; } /// get a pointer to the value (string) string_t* get_impl_ptr(string_t* /*unused*/) noexcept { - return is_string() ? m_value.string : nullptr; + return is_string() ? m_data.m_value.string : nullptr; } /// get a pointer to the value (string) constexpr const string_t* get_impl_ptr(const string_t* /*unused*/) const noexcept { - return is_string() ? m_value.string : nullptr; + return is_string() ? m_data.m_value.string : nullptr; } /// get a pointer to the value (boolean) boolean_t* get_impl_ptr(boolean_t* /*unused*/) noexcept { - return is_boolean() ? &m_value.boolean : nullptr; + return is_boolean() ? &m_data.m_value.boolean : nullptr; } /// get a pointer to the value (boolean) constexpr const boolean_t* get_impl_ptr(const boolean_t* /*unused*/) const noexcept { - return is_boolean() ? &m_value.boolean : nullptr; + return is_boolean() ? &m_data.m_value.boolean : nullptr; } /// get a pointer to the value (integer number) number_integer_t* get_impl_ptr(number_integer_t* /*unused*/) noexcept { - return is_number_integer() ? &m_value.number_integer : nullptr; + return is_number_integer() ? &m_data.m_value.number_integer : nullptr; } /// get a pointer to the value (integer number) constexpr const number_integer_t* get_impl_ptr(const number_integer_t* /*unused*/) const noexcept { - return is_number_integer() ? &m_value.number_integer : nullptr; + return is_number_integer() ? &m_data.m_value.number_integer : nullptr; } /// get a pointer to the value (unsigned number) number_unsigned_t* get_impl_ptr(number_unsigned_t* /*unused*/) noexcept { - return is_number_unsigned() ? &m_value.number_unsigned : nullptr; + return is_number_unsigned() ? &m_data.m_value.number_unsigned : nullptr; } /// get a pointer to the value (unsigned number) constexpr const number_unsigned_t* get_impl_ptr(const number_unsigned_t* /*unused*/) const noexcept { - return is_number_unsigned() ? &m_value.number_unsigned : nullptr; + return is_number_unsigned() ? &m_data.m_value.number_unsigned : nullptr; } /// get a pointer to the value (floating-point number) number_float_t* get_impl_ptr(number_float_t* /*unused*/) noexcept { - return is_number_float() ? &m_value.number_float : nullptr; + return is_number_float() ? &m_data.m_value.number_float : nullptr; } /// get a pointer to the value (floating-point number) constexpr const number_float_t* get_impl_ptr(const number_float_t* /*unused*/) const noexcept { - return is_number_float() ? &m_value.number_float : nullptr; + return is_number_float() ? &m_data.m_value.number_float : nullptr; } /// get a pointer to the value (binary) binary_t* get_impl_ptr(binary_t* /*unused*/) noexcept { - return is_binary() ? m_value.binary : nullptr; + return is_binary() ? m_data.m_value.binary : nullptr; } /// get a pointer to the value (binary) constexpr const binary_t* get_impl_ptr(const binary_t* /*unused*/) const noexcept { - return is_binary() ? m_value.binary : nullptr; + return is_binary() ? m_data.m_value.binary : nullptr; } /*! @@ -21095,7 +21190,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec #if defined(JSON_HAS_CPP_17) && (defined(__GNUC__) || (defined(_MSC_VER) && _MSC_VER >= 1910 && _MSC_VER <= 1914)) detail::negation>, #endif -#if defined(JSON_HAS_CPP_17) +#if defined(JSON_HAS_CPP_17) && JSON_HAS_STATIC_RTTI detail::negation>, #endif detail::is_detected_lazy @@ -21132,7 +21227,6 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @} - //////////////////// // element access // //////////////////// @@ -21150,7 +21244,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec { JSON_TRY { - return set_parent(m_value.array->at(idx)); + return set_parent(m_data.m_value.array->at(idx)); } JSON_CATCH (std::out_of_range&) { @@ -21173,7 +21267,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec { JSON_TRY { - return m_value.array->at(idx); + return m_data.m_value.array->at(idx); } JSON_CATCH (std::out_of_range&) { @@ -21197,8 +21291,8 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec JSON_THROW(type_error::create(304, detail::concat("cannot use at() with ", type_name()), this)); } - auto it = m_value.object->find(key); - if (it == m_value.object->end()) + auto it = m_data.m_value.object->find(key); + if (it == m_data.m_value.object->end()) { JSON_THROW(out_of_range::create(403, detail::concat("key '", key, "' not found"), this)); } @@ -21217,8 +21311,8 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec JSON_THROW(type_error::create(304, detail::concat("cannot use at() with ", type_name()), this)); } - auto it = m_value.object->find(std::forward(key)); - if (it == m_value.object->end()) + auto it = m_data.m_value.object->find(std::forward(key)); + if (it == m_data.m_value.object->end()) { JSON_THROW(out_of_range::create(403, detail::concat("key '", string_t(std::forward(key)), "' not found"), this)); } @@ -21235,8 +21329,8 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec JSON_THROW(type_error::create(304, detail::concat("cannot use at() with ", type_name()), this)); } - auto it = m_value.object->find(key); - if (it == m_value.object->end()) + auto it = m_data.m_value.object->find(key); + if (it == m_data.m_value.object->end()) { JSON_THROW(out_of_range::create(403, detail::concat("key '", key, "' not found"), this)); } @@ -21255,8 +21349,8 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec JSON_THROW(type_error::create(304, detail::concat("cannot use at() with ", type_name()), this)); } - auto it = m_value.object->find(std::forward(key)); - if (it == m_value.object->end()) + auto it = m_data.m_value.object->find(std::forward(key)); + if (it == m_data.m_value.object->end()) { JSON_THROW(out_of_range::create(403, detail::concat("key '", string_t(std::forward(key)), "' not found"), this)); } @@ -21270,8 +21364,8 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec // implicitly convert null value to an empty array if (is_null()) { - m_type = value_t::array; - m_value.array = create(); + m_data.m_type = value_t::array; + m_data.m_value.array = create(); assert_invariant(); } @@ -21279,17 +21373,17 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec if (JSON_HEDLEY_LIKELY(is_array())) { // fill up array with null values if given idx is outside range - if (idx >= m_value.array->size()) + if (idx >= m_data.m_value.array->size()) { #if JSON_DIAGNOSTICS // remember array size & capacity before resizing - const auto old_size = m_value.array->size(); - const auto old_capacity = m_value.array->capacity(); + const auto old_size = m_data.m_value.array->size(); + const auto old_capacity = m_data.m_value.array->capacity(); #endif - m_value.array->resize(idx + 1); + m_data.m_value.array->resize(idx + 1); #if JSON_DIAGNOSTICS - if (JSON_HEDLEY_UNLIKELY(m_value.array->capacity() != old_capacity)) + if (JSON_HEDLEY_UNLIKELY(m_data.m_value.array->capacity() != old_capacity)) { // capacity has changed: update all parents set_parents(); @@ -21303,7 +21397,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec assert_invariant(); } - return m_value.array->operator[](idx); + return m_data.m_value.array->operator[](idx); } JSON_THROW(type_error::create(305, detail::concat("cannot use operator[] with a numeric argument with ", type_name()), this)); @@ -21316,7 +21410,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec // const operator[] only works for arrays if (JSON_HEDLEY_LIKELY(is_array())) { - return m_value.array->operator[](idx); + return m_data.m_value.array->operator[](idx); } JSON_THROW(type_error::create(305, detail::concat("cannot use operator[] with a numeric argument with ", type_name()), this)); @@ -21329,15 +21423,15 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec // implicitly convert null value to an empty object if (is_null()) { - m_type = value_t::object; - m_value.object = create(); + m_data.m_type = value_t::object; + m_data.m_value.object = create(); assert_invariant(); } // operator[] only works for objects if (JSON_HEDLEY_LIKELY(is_object())) { - auto result = m_value.object->emplace(std::move(key), nullptr); + auto result = m_data.m_value.object->emplace(std::move(key), nullptr); return set_parent(result.first->second); } @@ -21351,8 +21445,8 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec // const operator[] only works for objects if (JSON_HEDLEY_LIKELY(is_object())) { - auto it = m_value.object->find(key); - JSON_ASSERT(it != m_value.object->end()); + auto it = m_data.m_value.object->find(key); + JSON_ASSERT(it != m_data.m_value.object->end()); return it->second; } @@ -21382,15 +21476,15 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec // implicitly convert null value to an empty object if (is_null()) { - m_type = value_t::object; - m_value.object = create(); + m_data.m_type = value_t::object; + m_data.m_value.object = create(); assert_invariant(); } // operator[] only works for objects if (JSON_HEDLEY_LIKELY(is_object())) { - auto result = m_value.object->emplace(std::forward(key), nullptr); + auto result = m_data.m_value.object->emplace(std::forward(key), nullptr); return set_parent(result.first->second); } @@ -21406,8 +21500,8 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec // const operator[] only works for objects if (JSON_HEDLEY_LIKELY(is_object())) { - auto it = m_value.object->find(std::forward(key)); - JSON_ASSERT(it != m_value.object->end()); + auto it = m_data.m_value.object->find(std::forward(key)); + JSON_ASSERT(it != m_data.m_value.object->end()); return it->second; } @@ -21644,7 +21738,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec IteratorType result = end(); - switch (m_type) + switch (m_data.m_type) { case value_t::boolean: case value_t::number_float: @@ -21661,32 +21755,32 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec if (is_string()) { AllocatorType alloc; - std::allocator_traits::destroy(alloc, m_value.string); - std::allocator_traits::deallocate(alloc, m_value.string, 1); - m_value.string = nullptr; + std::allocator_traits::destroy(alloc, m_data.m_value.string); + std::allocator_traits::deallocate(alloc, m_data.m_value.string, 1); + m_data.m_value.string = nullptr; } else if (is_binary()) { AllocatorType alloc; - std::allocator_traits::destroy(alloc, m_value.binary); - std::allocator_traits::deallocate(alloc, m_value.binary, 1); - m_value.binary = nullptr; + std::allocator_traits::destroy(alloc, m_data.m_value.binary); + std::allocator_traits::deallocate(alloc, m_data.m_value.binary, 1); + m_data.m_value.binary = nullptr; } - m_type = value_t::null; + m_data.m_type = value_t::null; assert_invariant(); break; } case value_t::object: { - result.m_it.object_iterator = m_value.object->erase(pos.m_it.object_iterator); + result.m_it.object_iterator = m_data.m_value.object->erase(pos.m_it.object_iterator); break; } case value_t::array: { - result.m_it.array_iterator = m_value.array->erase(pos.m_it.array_iterator); + result.m_it.array_iterator = m_data.m_value.array->erase(pos.m_it.array_iterator); break; } @@ -21714,7 +21808,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec IteratorType result = end(); - switch (m_type) + switch (m_data.m_type) { case value_t::boolean: case value_t::number_float: @@ -21732,33 +21826,33 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec if (is_string()) { AllocatorType alloc; - std::allocator_traits::destroy(alloc, m_value.string); - std::allocator_traits::deallocate(alloc, m_value.string, 1); - m_value.string = nullptr; + std::allocator_traits::destroy(alloc, m_data.m_value.string); + std::allocator_traits::deallocate(alloc, m_data.m_value.string, 1); + m_data.m_value.string = nullptr; } else if (is_binary()) { AllocatorType alloc; - std::allocator_traits::destroy(alloc, m_value.binary); - std::allocator_traits::deallocate(alloc, m_value.binary, 1); - m_value.binary = nullptr; + std::allocator_traits::destroy(alloc, m_data.m_value.binary); + std::allocator_traits::deallocate(alloc, m_data.m_value.binary, 1); + m_data.m_value.binary = nullptr; } - m_type = value_t::null; + m_data.m_type = value_t::null; assert_invariant(); break; } case value_t::object: { - result.m_it.object_iterator = m_value.object->erase(first.m_it.object_iterator, + result.m_it.object_iterator = m_data.m_value.object->erase(first.m_it.object_iterator, last.m_it.object_iterator); break; } case value_t::array: { - result.m_it.array_iterator = m_value.array->erase(first.m_it.array_iterator, + result.m_it.array_iterator = m_data.m_value.array->erase(first.m_it.array_iterator, last.m_it.array_iterator); break; } @@ -21783,7 +21877,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec JSON_THROW(type_error::create(307, detail::concat("cannot use erase() with ", type_name()), this)); } - return m_value.object->erase(std::forward(key)); + return m_data.m_value.object->erase(std::forward(key)); } template < typename KeyType, detail::enable_if_t < @@ -21796,10 +21890,10 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec JSON_THROW(type_error::create(307, detail::concat("cannot use erase() with ", type_name()), this)); } - const auto it = m_value.object->find(std::forward(key)); - if (it != m_value.object->end()) + const auto it = m_data.m_value.object->find(std::forward(key)); + if (it != m_data.m_value.object->end()) { - m_value.object->erase(it); + m_data.m_value.object->erase(it); return 1; } return 0; @@ -21837,7 +21931,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec JSON_THROW(out_of_range::create(401, detail::concat("array index ", std::to_string(idx), " is out of range"), this)); } - m_value.array->erase(m_value.array->begin() + static_cast(idx)); + m_data.m_value.array->erase(m_data.m_value.array->begin() + static_cast(idx)); } else { @@ -21847,7 +21941,6 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @} - //////////// // lookup // //////////// @@ -21863,7 +21956,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec if (is_object()) { - result.m_it.object_iterator = m_value.object->find(key); + result.m_it.object_iterator = m_data.m_value.object->find(key); } return result; @@ -21877,7 +21970,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec if (is_object()) { - result.m_it.object_iterator = m_value.object->find(key); + result.m_it.object_iterator = m_data.m_value.object->find(key); } return result; @@ -21893,7 +21986,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec if (is_object()) { - result.m_it.object_iterator = m_value.object->find(std::forward(key)); + result.m_it.object_iterator = m_data.m_value.object->find(std::forward(key)); } return result; @@ -21909,7 +22002,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec if (is_object()) { - result.m_it.object_iterator = m_value.object->find(std::forward(key)); + result.m_it.object_iterator = m_data.m_value.object->find(std::forward(key)); } return result; @@ -21920,7 +22013,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec size_type count(const typename object_t::key_type& key) const { // return 0 for all nonobject types - return is_object() ? m_value.object->count(key) : 0; + return is_object() ? m_data.m_value.object->count(key) : 0; } /// @brief returns the number of occurrences of a key in a JSON object @@ -21930,14 +22023,14 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec size_type count(KeyType && key) const { // return 0 for all nonobject types - return is_object() ? m_value.object->count(std::forward(key)) : 0; + return is_object() ? m_data.m_value.object->count(std::forward(key)) : 0; } /// @brief check the existence of an element in a JSON object /// @sa https://json.nlohmann.me/api/basic_json/contains/ bool contains(const typename object_t::key_type& key) const { - return is_object() && m_value.object->find(key) != m_value.object->end(); + return is_object() && m_data.m_value.object->find(key) != m_data.m_value.object->end(); } /// @brief check the existence of an element in a JSON object @@ -21946,7 +22039,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec detail::is_usable_as_basic_json_key_type::value, int> = 0> bool contains(KeyType && key) const { - return is_object() && m_value.object->find(std::forward(key)) != m_value.object->end(); + return is_object() && m_data.m_value.object->find(std::forward(key)) != m_data.m_value.object->end(); } /// @brief check the existence of an element in a JSON object given a JSON pointer @@ -21965,7 +22058,6 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @} - /////////////// // iterators // /////////////// @@ -22104,7 +22196,6 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @} - ////////////// // capacity // ////////////// @@ -22116,7 +22207,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @sa https://json.nlohmann.me/api/basic_json/empty/ bool empty() const noexcept { - switch (m_type) + switch (m_data.m_type) { case value_t::null: { @@ -22127,13 +22218,13 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec case value_t::array: { // delegate call to array_t::empty() - return m_value.array->empty(); + return m_data.m_value.array->empty(); } case value_t::object: { // delegate call to object_t::empty() - return m_value.object->empty(); + return m_data.m_value.object->empty(); } case value_t::string: @@ -22155,7 +22246,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @sa https://json.nlohmann.me/api/basic_json/size/ size_type size() const noexcept { - switch (m_type) + switch (m_data.m_type) { case value_t::null: { @@ -22166,13 +22257,13 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec case value_t::array: { // delegate call to array_t::size() - return m_value.array->size(); + return m_data.m_value.array->size(); } case value_t::object: { // delegate call to object_t::size() - return m_value.object->size(); + return m_data.m_value.object->size(); } case value_t::string: @@ -22194,18 +22285,18 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @sa https://json.nlohmann.me/api/basic_json/max_size/ size_type max_size() const noexcept { - switch (m_type) + switch (m_data.m_type) { case value_t::array: { // delegate call to array_t::max_size() - return m_value.array->max_size(); + return m_data.m_value.array->max_size(); } case value_t::object: { // delegate call to object_t::max_size() - return m_value.object->max_size(); + return m_data.m_value.object->max_size(); } case value_t::null: @@ -22226,7 +22317,6 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @} - /////////////// // modifiers // /////////////// @@ -22238,53 +22328,53 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @sa https://json.nlohmann.me/api/basic_json/clear/ void clear() noexcept { - switch (m_type) + switch (m_data.m_type) { case value_t::number_integer: { - m_value.number_integer = 0; + m_data.m_value.number_integer = 0; break; } case value_t::number_unsigned: { - m_value.number_unsigned = 0; + m_data.m_value.number_unsigned = 0; break; } case value_t::number_float: { - m_value.number_float = 0.0; + m_data.m_value.number_float = 0.0; break; } case value_t::boolean: { - m_value.boolean = false; + m_data.m_value.boolean = false; break; } case value_t::string: { - m_value.string->clear(); + m_data.m_value.string->clear(); break; } case value_t::binary: { - m_value.binary->clear(); + m_data.m_value.binary->clear(); break; } case value_t::array: { - m_value.array->clear(); + m_data.m_value.array->clear(); break; } case value_t::object: { - m_value.object->clear(); + m_data.m_value.object->clear(); break; } @@ -22308,15 +22398,15 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec // transform null object into an array if (is_null()) { - m_type = value_t::array; - m_value = value_t::array; + m_data.m_type = value_t::array; + m_data.m_value = value_t::array; assert_invariant(); } // add element to array (move semantics) - const auto old_capacity = m_value.array->capacity(); - m_value.array->push_back(std::move(val)); - set_parent(m_value.array->back(), old_capacity); + const auto old_capacity = m_data.m_value.array->capacity(); + m_data.m_value.array->push_back(std::move(val)); + set_parent(m_data.m_value.array->back(), old_capacity); // if val is moved from, basic_json move constructor marks it null, so we do not call the destructor } @@ -22341,15 +22431,15 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec // transform null object into an array if (is_null()) { - m_type = value_t::array; - m_value = value_t::array; + m_data.m_type = value_t::array; + m_data.m_value = value_t::array; assert_invariant(); } // add element to array - const auto old_capacity = m_value.array->capacity(); - m_value.array->push_back(val); - set_parent(m_value.array->back(), old_capacity); + const auto old_capacity = m_data.m_value.array->capacity(); + m_data.m_value.array->push_back(val); + set_parent(m_data.m_value.array->back(), old_capacity); } /// @brief add an object to an array @@ -22373,13 +22463,13 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec // transform null object into an object if (is_null()) { - m_type = value_t::object; - m_value = value_t::object; + m_data.m_type = value_t::object; + m_data.m_value = value_t::object; assert_invariant(); } // add element to object - auto res = m_value.object->insert(val); + auto res = m_data.m_value.object->insert(val); set_parent(res.first->second); } @@ -22429,15 +22519,15 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec // transform null object into an array if (is_null()) { - m_type = value_t::array; - m_value = value_t::array; + m_data.m_type = value_t::array; + m_data.m_value = value_t::array; assert_invariant(); } // add element to array (perfect forwarding) - const auto old_capacity = m_value.array->capacity(); - m_value.array->emplace_back(std::forward(args)...); - return set_parent(m_value.array->back(), old_capacity); + const auto old_capacity = m_data.m_value.array->capacity(); + m_data.m_value.array->emplace_back(std::forward(args)...); + return set_parent(m_data.m_value.array->back(), old_capacity); } /// @brief add an object to an object if key does not exist @@ -22454,13 +22544,13 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec // transform null object into an object if (is_null()) { - m_type = value_t::object; - m_value = value_t::object; + m_data.m_type = value_t::object; + m_data.m_value = value_t::object; assert_invariant(); } // add element to array (perfect forwarding) - auto res = m_value.object->emplace(std::forward(args)...); + auto res = m_data.m_value.object->emplace(std::forward(args)...); set_parent(res.first->second); // create result iterator and set iterator to the result of emplace @@ -22478,14 +22568,14 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec iterator insert_iterator(const_iterator pos, Args&& ... args) { iterator result(this); - JSON_ASSERT(m_value.array != nullptr); + JSON_ASSERT(m_data.m_value.array != nullptr); - auto insert_pos = std::distance(m_value.array->begin(), pos.m_it.array_iterator); - m_value.array->insert(pos.m_it.array_iterator, std::forward(args)...); - result.m_it.array_iterator = m_value.array->begin() + insert_pos; + auto insert_pos = std::distance(m_data.m_value.array->begin(), pos.m_it.array_iterator); + m_data.m_value.array->insert(pos.m_it.array_iterator, std::forward(args)...); + result.m_it.array_iterator = m_data.m_value.array->begin() + insert_pos; // This could have been written as: - // result.m_it.array_iterator = m_value.array->insert(pos.m_it.array_iterator, cnt, val); + // result.m_it.array_iterator = m_data.m_value.array->insert(pos.m_it.array_iterator, cnt, val); // but the return value of insert is missing in GCC 4.8, so it is written this way instead. set_parents(); @@ -22612,7 +22702,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec JSON_THROW(invalid_iterator::create(202, "iterators first and last must point to objects", this)); } - m_value.object->insert(first.m_it.object_iterator, last.m_it.object_iterator); + m_data.m_value.object->insert(first.m_it.object_iterator, last.m_it.object_iterator); } /// @brief updates a JSON object from another object, overwriting existing keys @@ -22629,8 +22719,8 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec // implicitly convert null value to an empty object if (is_null()) { - m_type = value_t::object; - m_value.object = create(); + m_data.m_type = value_t::object; + m_data.m_value.object = create(); assert_invariant(); } @@ -22655,16 +22745,16 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec { if (merge_objects && it.value().is_object()) { - auto it2 = m_value.object->find(it.key()); - if (it2 != m_value.object->end()) + auto it2 = m_data.m_value.object->find(it.key()); + if (it2 != m_data.m_value.object->end()) { it2->second.update(it.value(), true); continue; } } - m_value.object->operator[](it.key()) = it.value(); + m_data.m_value.object->operator[](it.key()) = it.value(); #if JSON_DIAGNOSTICS - m_value.object->operator[](it.key()).m_parent = this; + m_data.m_value.object->operator[](it.key()).m_parent = this; #endif } } @@ -22674,12 +22764,12 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec void swap(reference other) noexcept ( std::is_nothrow_move_constructible::value&& std::is_nothrow_move_assignable::value&& - std::is_nothrow_move_constructible::value&& + std::is_nothrow_move_constructible::value&& // NOLINT(cppcoreguidelines-noexcept-swap,performance-noexcept-swap) std::is_nothrow_move_assignable::value ) { - std::swap(m_type, other.m_type); - std::swap(m_value, other.m_value); + std::swap(m_data.m_type, other.m_data.m_type); + std::swap(m_data.m_value, other.m_data.m_value); set_parents(); other.set_parents(); @@ -22691,7 +22781,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec friend void swap(reference left, reference right) noexcept ( std::is_nothrow_move_constructible::value&& std::is_nothrow_move_assignable::value&& - std::is_nothrow_move_constructible::value&& + std::is_nothrow_move_constructible::value&& // NOLINT(cppcoreguidelines-noexcept-swap,performance-noexcept-swap) std::is_nothrow_move_assignable::value ) { @@ -22700,13 +22790,13 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @brief exchanges the values /// @sa https://json.nlohmann.me/api/basic_json/swap/ - void swap(array_t& other) // NOLINT(bugprone-exception-escape) + void swap(array_t& other) // NOLINT(bugprone-exception-escape,cppcoreguidelines-noexcept-swap,performance-noexcept-swap) { // swap only works for arrays if (JSON_HEDLEY_LIKELY(is_array())) { using std::swap; - swap(*(m_value.array), other); + swap(*(m_data.m_value.array), other); } else { @@ -22716,13 +22806,13 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @brief exchanges the values /// @sa https://json.nlohmann.me/api/basic_json/swap/ - void swap(object_t& other) // NOLINT(bugprone-exception-escape) + void swap(object_t& other) // NOLINT(bugprone-exception-escape,cppcoreguidelines-noexcept-swap,performance-noexcept-swap) { // swap only works for objects if (JSON_HEDLEY_LIKELY(is_object())) { using std::swap; - swap(*(m_value.object), other); + swap(*(m_data.m_value.object), other); } else { @@ -22732,13 +22822,13 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @brief exchanges the values /// @sa https://json.nlohmann.me/api/basic_json/swap/ - void swap(string_t& other) // NOLINT(bugprone-exception-escape) + void swap(string_t& other) // NOLINT(bugprone-exception-escape,cppcoreguidelines-noexcept-swap,performance-noexcept-swap) { // swap only works for strings if (JSON_HEDLEY_LIKELY(is_string())) { using std::swap; - swap(*(m_value.string), other); + swap(*(m_data.m_value.string), other); } else { @@ -22748,13 +22838,13 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec /// @brief exchanges the values /// @sa https://json.nlohmann.me/api/basic_json/swap/ - void swap(binary_t& other) // NOLINT(bugprone-exception-escape) + void swap(binary_t& other) // NOLINT(bugprone-exception-escape,cppcoreguidelines-noexcept-swap,performance-noexcept-swap) { // swap only works for strings if (JSON_HEDLEY_LIKELY(is_binary())) { using std::swap; - swap(*(m_value.binary), other); + swap(*(m_data.m_value.binary), other); } else { @@ -22770,7 +22860,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec if (JSON_HEDLEY_LIKELY(is_binary())) { using std::swap; - swap(*(m_value.binary), other); + swap(*(m_data.m_value.binary), other); } else { @@ -22798,31 +22888,31 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec switch (lhs_type) \ { \ case value_t::array: \ - return (*lhs.m_value.array) op (*rhs.m_value.array); \ + return (*lhs.m_data.m_value.array) op (*rhs.m_data.m_value.array); \ \ case value_t::object: \ - return (*lhs.m_value.object) op (*rhs.m_value.object); \ + return (*lhs.m_data.m_value.object) op (*rhs.m_data.m_value.object); \ \ case value_t::null: \ return (null_result); \ \ case value_t::string: \ - return (*lhs.m_value.string) op (*rhs.m_value.string); \ + return (*lhs.m_data.m_value.string) op (*rhs.m_data.m_value.string); \ \ case value_t::boolean: \ - return (lhs.m_value.boolean) op (rhs.m_value.boolean); \ + return (lhs.m_data.m_value.boolean) op (rhs.m_data.m_value.boolean); \ \ case value_t::number_integer: \ - return (lhs.m_value.number_integer) op (rhs.m_value.number_integer); \ + return (lhs.m_data.m_value.number_integer) op (rhs.m_data.m_value.number_integer); \ \ case value_t::number_unsigned: \ - return (lhs.m_value.number_unsigned) op (rhs.m_value.number_unsigned); \ + return (lhs.m_data.m_value.number_unsigned) op (rhs.m_data.m_value.number_unsigned); \ \ case value_t::number_float: \ - return (lhs.m_value.number_float) op (rhs.m_value.number_float); \ + return (lhs.m_data.m_value.number_float) op (rhs.m_data.m_value.number_float); \ \ case value_t::binary: \ - return (*lhs.m_value.binary) op (*rhs.m_value.binary); \ + return (*lhs.m_data.m_value.binary) op (*rhs.m_data.m_value.binary); \ \ case value_t::discarded: \ default: \ @@ -22831,27 +22921,27 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec } \ else if (lhs_type == value_t::number_integer && rhs_type == value_t::number_float) \ { \ - return static_cast(lhs.m_value.number_integer) op rhs.m_value.number_float; \ + return static_cast(lhs.m_data.m_value.number_integer) op rhs.m_data.m_value.number_float; \ } \ else if (lhs_type == value_t::number_float && rhs_type == value_t::number_integer) \ { \ - return lhs.m_value.number_float op static_cast(rhs.m_value.number_integer); \ + return lhs.m_data.m_value.number_float op static_cast(rhs.m_data.m_value.number_integer); \ } \ else if (lhs_type == value_t::number_unsigned && rhs_type == value_t::number_float) \ { \ - return static_cast(lhs.m_value.number_unsigned) op rhs.m_value.number_float; \ + return static_cast(lhs.m_data.m_value.number_unsigned) op rhs.m_data.m_value.number_float; \ } \ else if (lhs_type == value_t::number_float && rhs_type == value_t::number_unsigned) \ { \ - return lhs.m_value.number_float op static_cast(rhs.m_value.number_unsigned); \ + return lhs.m_data.m_value.number_float op static_cast(rhs.m_data.m_value.number_unsigned); \ } \ else if (lhs_type == value_t::number_unsigned && rhs_type == value_t::number_integer) \ { \ - return static_cast(lhs.m_value.number_unsigned) op rhs.m_value.number_integer; \ + return static_cast(lhs.m_data.m_value.number_unsigned) op rhs.m_data.m_value.number_integer; \ } \ else if (lhs_type == value_t::number_integer && rhs_type == value_t::number_unsigned) \ { \ - return lhs.m_value.number_integer op static_cast(rhs.m_value.number_unsigned); \ + return lhs.m_data.m_value.number_integer op static_cast(rhs.m_data.m_value.number_unsigned); \ } \ else if(compares_unordered(lhs, rhs))\ {\ @@ -22868,8 +22958,8 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec // an operation is computed as an odd number of inverses of others static bool compares_unordered(const_reference lhs, const_reference rhs, bool inverse = false) noexcept { - if ((lhs.is_number_float() && std::isnan(lhs.m_value.number_float) && rhs.is_number()) - || (rhs.is_number_float() && std::isnan(rhs.m_value.number_float) && lhs.is_number())) + if ((lhs.is_number_float() && std::isnan(lhs.m_data.m_value.number_float) && rhs.is_number()) + || (rhs.is_number_float() && std::isnan(rhs.m_data.m_value.number_float) && lhs.is_number())) { return true; } @@ -23213,7 +23303,6 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec #endif // JSON_NO_IO /// @} - ///////////////////// // deserialization // ///////////////////// @@ -23370,7 +23459,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec JSON_HEDLEY_RETURNS_NON_NULL const char* type_name() const noexcept { - switch (m_type) + switch (m_data.m_type) { case value_t::null: return "null"; @@ -23394,17 +23483,43 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec } } - JSON_PRIVATE_UNLESS_TESTED: ////////////////////// // member variables // ////////////////////// - /// the type of the current element - value_t m_type = value_t::null; + struct data + { + /// the type of the current element + value_t m_type = value_t::null; + + /// the value of the current element + json_value m_value = {}; + + data(const value_t v) + : m_type(v), m_value(v) + { + } + + data(size_type cnt, const basic_json& val) + : m_type(value_t::array) + { + m_value.array = create(cnt, val); + } - /// the value of the current element - json_value m_value = {}; + data() noexcept = default; + data(data&&) noexcept = default; + data(const data&) noexcept = delete; + data& operator=(data&&) noexcept = delete; + data& operator=(const data&) noexcept = delete; + + ~data() noexcept + { + m_value.destroy(m_type); + } + }; + + data m_data = {}; #if JSON_DIAGNOSTICS /// a pointer to a parent value (for debugging purposes) @@ -23585,7 +23700,6 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec return from_cbor(ptr, ptr + len, strict, allow_exceptions, tag_handler); } - JSON_HEDLEY_WARN_UNUSED_RESULT JSON_HEDLEY_DEPRECATED_FOR(3.8.0, from_cbor(ptr, ptr + len)) static basic_json from_cbor(detail::span_input_adapter&& i, @@ -23709,7 +23823,6 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec return res ? result : basic_json(value_t::discarded); } - /// @brief create a JSON value from an input in BJData format /// @sa https://json.nlohmann.me/api/basic_json/from_bjdata/ template @@ -23944,7 +24057,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec // parent must exist when performing patch add per RFC6902 specs basic_json& parent = result.at(ptr); - switch (parent.m_type) + switch (parent.m_data.m_type) { case value_t::null: case value_t::object: @@ -23990,7 +24103,7 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec }; // wrapper for "remove" operation; remove value at ptr - const auto operation_remove = [this, &result](json_pointer & ptr) + const auto operation_remove = [this, & result](json_pointer & ptr) { // get reference to parent of JSON pointer ptr const auto last_path = ptr.back(); @@ -24033,13 +24146,13 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec bool string_type) -> basic_json & { // find value - auto it = val.m_value.object->find(member); + auto it = val.m_data.m_value.object->find(member); // context-sensitive error message const auto error_msg = (op == "op") ? "operation" : detail::concat("operation '", op, '\''); // check if desired value is present - if (JSON_HEDLEY_UNLIKELY(it == val.m_value.object->end())) + if (JSON_HEDLEY_UNLIKELY(it == val.m_data.m_value.object->end())) { // NOLINTNEXTLINE(performance-inefficient-string-concatenation) JSON_THROW(parse_error::create(105, 0, detail::concat(error_msg, " must have member '", member, "'"), &val)); @@ -24353,7 +24466,11 @@ inline namespace json_literals /// @brief user-defined string literal for JSON values /// @sa https://json.nlohmann.me/api/basic_json/operator_literal_json/ JSON_HEDLEY_NON_NULL(1) -inline nlohmann::json operator "" _json(const char* s, std::size_t n) +#if !defined(JSON_HEDLEY_GCC_VERSION) || JSON_HEDLEY_GCC_VERSION_CHECK(4,9,0) + inline nlohmann::json operator ""_json(const char* s, std::size_t n) +#else + inline nlohmann::json operator "" _json(const char* s, std::size_t n) +#endif { return nlohmann::json::parse(s, s + n); } @@ -24361,7 +24478,11 @@ inline nlohmann::json operator "" _json(const char* s, std::size_t n) /// @brief user-defined string literal for JSON pointer /// @sa https://json.nlohmann.me/api/basic_json/operator_literal_json_pointer/ JSON_HEDLEY_NON_NULL(1) -inline nlohmann::json::json_pointer operator "" _json_pointer(const char* s, std::size_t n) +#if !defined(JSON_HEDLEY_GCC_VERSION) || JSON_HEDLEY_GCC_VERSION_CHECK(4,9,0) + inline nlohmann::json::json_pointer operator ""_json_pointer(const char* s, std::size_t n) +#else + inline nlohmann::json::json_pointer operator "" _json_pointer(const char* s, std::size_t n) +#endif { return nlohmann::json::json_pointer(std::string(s, n)); } @@ -24414,7 +24535,7 @@ struct less< ::nlohmann::detail::value_t> // do not remove the space after '<', /// @sa https://json.nlohmann.me/api/basic_json/std_swap/ NLOHMANN_BASIC_JSON_TPL_DECLARATION inline void swap(nlohmann::NLOHMANN_BASIC_JSON_TPL& j1, nlohmann::NLOHMANN_BASIC_JSON_TPL& j2) noexcept( // NOLINT(readability-inconsistent-declaration-parameter-name, cert-dcl58-cpp) - is_nothrow_move_constructible::value&& // NOLINT(misc-redundant-expression) + is_nothrow_move_constructible::value&& // NOLINT(misc-redundant-expression,cppcoreguidelines-noexcept-swap,performance-noexcept-swap) is_nothrow_move_assignable::value) { j1.swap(j2); @@ -24425,17 +24546,22 @@ inline void swap(nlohmann::NLOHMANN_BASIC_JSON_TPL& j1, nlohmann::NLOHMANN_BASIC } // namespace std #if JSON_USE_GLOBAL_UDLS - using nlohmann::literals::json_literals::operator "" _json; // NOLINT(misc-unused-using-decls,google-global-names-in-headers) - using nlohmann::literals::json_literals::operator "" _json_pointer; //NOLINT(misc-unused-using-decls,google-global-names-in-headers) + #if !defined(JSON_HEDLEY_GCC_VERSION) || JSON_HEDLEY_GCC_VERSION_CHECK(4,9,0) + using nlohmann::literals::json_literals::operator ""_json; // NOLINT(misc-unused-using-decls,google-global-names-in-headers) + using nlohmann::literals::json_literals::operator ""_json_pointer; //NOLINT(misc-unused-using-decls,google-global-names-in-headers) + #else + using nlohmann::literals::json_literals::operator "" _json; // NOLINT(misc-unused-using-decls,google-global-names-in-headers) + using nlohmann::literals::json_literals::operator "" _json_pointer; //NOLINT(misc-unused-using-decls,google-global-names-in-headers) + #endif #endif // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT @@ -24470,16 +24596,17 @@ inline void swap(nlohmann::NLOHMANN_BASIC_JSON_TPL& j1, nlohmann::NLOHMANN_BASIC #undef JSON_HAS_EXPERIMENTAL_FILESYSTEM #undef JSON_HAS_THREE_WAY_COMPARISON #undef JSON_HAS_RANGES + #undef JSON_HAS_STATIC_RTTI #undef JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON #endif // #include // __ _____ _____ _____ // __| | __| | | | JSON for Modern C++ -// | | |__ | | | | | | version 3.11.2 +// | | |__ | | | | | | version 3.11.3 // |_____|_____|_____|_|___| https://github.com/nlohmann/json // -// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann // SPDX-License-Identifier: MIT From 35f486cfa677c4a11a9d3742d7f32ab51da9870e Mon Sep 17 00:00:00 2001 From: Ivan Morozko Date: Tue, 29 Oct 2024 12:14:40 +0400 Subject: [PATCH 2/4] Remove redundant counters init in PcapFileWriterDevice constructor (#1625) --- Pcap++/src/PcapFileDevice.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/Pcap++/src/PcapFileDevice.cpp b/Pcap++/src/PcapFileDevice.cpp index c1560da05b..d37997e5ca 100644 --- a/Pcap++/src/PcapFileDevice.cpp +++ b/Pcap++/src/PcapFileDevice.cpp @@ -564,8 +564,6 @@ namespace pcpp : IFileWriterDevice(fileName) { m_PcapDumpHandler = nullptr; - m_NumOfPacketsNotWritten = 0; - m_NumOfPacketsWritten = 0; m_PcapLinkLayerType = linkLayerType; m_AppendMode = false; #if defined(PCAP_TSTAMP_PRECISION_NANO) From d7f07a96bef20559cbfee20076dd5cae6783c527 Mon Sep 17 00:00:00 2001 From: seladb Date: Fri, 1 Nov 2024 01:24:45 -0700 Subject: [PATCH 3/4] Auto pre-commit update (#1631) Co-authored-by: GitHub --- .pre-commit-config.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c13fc1e55c..6471f09781 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -8,7 +8,7 @@ repos: entry: python3 ./ci/check-clang-format-version.py language: system - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.6.0 + rev: v5.0.0 hooks: - id: check-case-conflict - id: check-executables-have-shebangs @@ -22,7 +22,7 @@ repos: args: ['--fix=lf'] - id: trailing-whitespace - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.6.8 + rev: v0.7.1 hooks: - id: ruff # Run the linter. types_or: [ python ] @@ -38,7 +38,7 @@ repos: - id: cppcheck args: ["--std=c++11", "--language=c++", "--suppressions-list=cppcheckSuppressions.txt", "--inline-suppr", "--force"] - repo: https://github.com/BlankSpruce/gersemi - rev: 0.15.1 + rev: 0.17.0 hooks: - id: gersemi - repo: https://github.com/codespell-project/codespell @@ -47,7 +47,7 @@ repos: - id: codespell pass_filenames: false - repo: https://github.com/crate-ci/typos - rev: v1.25.0 + rev: v1.26.8 hooks: - id: typos args: ['--config=typos-config.toml'] From ae8652f1544ed9321052c519a3b43fbb1139aa8d Mon Sep 17 00:00:00 2001 From: seladb Date: Fri, 1 Nov 2024 01:25:19 -0700 Subject: [PATCH 4/4] Auto OUI Database Update (#1630) Co-authored-by: GitHub --- 3rdParty/OUIDataset/PCPP_OUIDataset.json | 1271 ++++++++++++++++------ 1 file changed, 912 insertions(+), 359 deletions(-) diff --git a/3rdParty/OUIDataset/PCPP_OUIDataset.json b/3rdParty/OUIDataset/PCPP_OUIDataset.json index ca6fd632ac..e592c63596 100644 --- a/3rdParty/OUIDataset/PCPP_OUIDataset.json +++ b/3rdParty/OUIDataset/PCPP_OUIDataset.json @@ -591,7 +591,7 @@ "vendor": "Waters Div. Of Millipore" }, "197": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "198": { "vendor": "Eon Systems" @@ -606,7 +606,7 @@ "vendor": "Emulex Corporation" }, "202": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "203": { "vendor": "Compu-Shack Electronic Gmbh" @@ -2976,7 +2976,7 @@ "vendor": "Desana Systems" }, "992": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "993": { "vendor": "Winmate Communication, Inc." @@ -3639,7 +3639,7 @@ "vendor": "Giantec, Inc." }, "1213": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "1214": { "vendor": "OptXCon, Inc." @@ -4032,7 +4032,7 @@ "vendor": "VisionTek, Inc." }, "1344": { - "vendor": "FAST Corporation" + "vendor": "Tokyo Electron Device Limited" }, "1345": { "vendor": "Advanced Systems Co., Ltd." @@ -6186,7 +6186,7 @@ "vendor": "Toshiba" }, "2062": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "2063": { "vendor": "Proximion Fiber Optics AB" @@ -8382,7 +8382,7 @@ "vendor": "Pacific Broadband Networks" }, "2822": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "2823": { "vendor": "Voxpath Networks" @@ -9819,7 +9819,7 @@ "vendor": "NeuroCom International, Inc." }, "3301": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "3302": { "vendor": "Fortinet, Inc." @@ -10944,7 +10944,7 @@ "vendor": "ParkerVision - Direct2Data" }, "3676": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "3677": { "vendor": "Triple Play Technologies A/S" @@ -11913,7 +11913,7 @@ "vendor": "Murrelektronik GmbH" }, "3999": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "4000": { "vendor": "Canon Korea Inc." @@ -12048,7 +12048,7 @@ "vendor": "3Com Ltd" }, "4044": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "4045": { "vendor": "Nortel Networks" @@ -13050,7 +13050,7 @@ "vendor": "Solteras, Inc." }, "4378": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "4379": { "vendor": "Targa Systems Div L-3 Communications" @@ -13356,7 +13356,7 @@ "vendor": "Neotune Information Technology Corporation,.LTD" }, "4480": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "4481": { "vendor": "InterEnergy Co.Ltd," @@ -13494,7 +13494,7 @@ "vendor": "Shanghai Ruijie Technology" }, "4526": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "4527": { "vendor": "Medialink-i,Inc" @@ -13851,7 +13851,7 @@ "vendor": "NexQL Corporation" }, "4645": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "4646": { "vendor": "Japan Direx Corporation" @@ -14154,7 +14154,7 @@ "vendor": "Advance Sterilization Products" }, "4746": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "4747": { "vendor": "Sensory Networks Inc" @@ -14343,7 +14343,7 @@ "vendor": "Perfect tech" }, "4809": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "4810": { "vendor": "Mechatronic Brick Aps" @@ -14559,7 +14559,7 @@ "vendor": "Cisco-Linksys, LLC" }, "4881": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "4882": { "vendor": "Amedia Networks Inc." @@ -14847,7 +14847,7 @@ "vendor": "Nokia Danmark A/S" }, "4977": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "4978": { "vendor": "Dell Inc." @@ -15288,7 +15288,7 @@ "vendor": "Renasis, LLC" }, "5124": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "5125": { "vendor": "OpenIB, Inc." @@ -15738,7 +15738,7 @@ "vendor": "Helicomm Inc" }, "5274": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "5275": { "vendor": "Nokota Communications, LLC" @@ -15972,7 +15972,7 @@ "vendor": "Stolinx,. Inc" }, "5352": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "5353": { "vendor": "Nortech International" @@ -16185,7 +16185,7 @@ "vendor": "PacketHop, Inc." }, "5423": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "5424": { "vendor": "Dell EMC" @@ -16494,7 +16494,7 @@ "vendor": "Quester Tangent Corporation" }, "5526": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "5527": { "vendor": "Aeta Audio Systems" @@ -16506,7 +16506,7 @@ "vendor": "Samsung Electronics Co.,Ltd" }, "5530": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "5531": { "vendor": "Nortel Networks" @@ -16530,13 +16530,13 @@ "vendor": "Eca-Sinters" }, "5538": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "5539": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "5540": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "5541": { "vendor": "DCI Co., Ltd." @@ -16548,7 +16548,7 @@ "vendor": "Robatech AG" }, "5544": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "5545": { "vendor": "Kwang Woo I&C Co.,Ltd" @@ -16662,16 +16662,16 @@ "vendor": "Exartech International Corp." }, "5582": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "5583": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "5584": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "5585": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "5586": { "vendor": "Xantech Corporation" @@ -16926,7 +16926,7 @@ "vendor": "Impinj, Inc." }, "5670": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "5671": { "vendor": "embedded-logic DESIGN AND MORE GmbH" @@ -17163,7 +17163,7 @@ "vendor": "EuroCB (Phils.), Inc." }, "5749": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "5750": { "vendor": "Intel Corporate" @@ -17355,7 +17355,7 @@ "vendor": "Private" }, "5813": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "5814": { "vendor": "Cisco-Linksys, LLC" @@ -17580,7 +17580,7 @@ "vendor": "Wamin Optocomm Mfg Corp" }, "5888": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "5889": { "vendor": "KDE, Inc." @@ -17976,7 +17976,7 @@ "vendor": "Texas Instruments" }, "6020": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "6021": { "vendor": "Sparr Electronics Ltd" @@ -18258,7 +18258,7 @@ "vendor": "DACOS Technologies Co., Ltd." }, "6114": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "6115": { "vendor": "Texas Instruments" @@ -18294,7 +18294,7 @@ "vendor": "WooJooIT Ltd." }, "6126": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "6127": { "vendor": "IBM Corp" @@ -18840,7 +18840,7 @@ "vendor": "Zippy Technology Corp." }, "6308": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "6309": { "vendor": "ADigit Technologies Corp." @@ -18924,7 +18924,7 @@ "vendor": "Essence Technology Solution, Inc." }, "6336": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "6337": { "vendor": "Almitec Informática e Comércio" @@ -19248,7 +19248,7 @@ "vendor": "Aclara RF Systems Inc." }, "6444": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "6445": { "vendor": "Nokia Corporation" @@ -19398,7 +19398,7 @@ "vendor": "ShenZhen XinHuaTong Opto Electronics Co.,Ltd" }, "6494": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "6495": { "vendor": "Valemount Networks Corporation" @@ -19614,7 +19614,7 @@ "vendor": "RadarFind Corporation" }, "6566": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "6567": { "vendor": "Itu-T" @@ -19692,7 +19692,7 @@ "vendor": "Citiway technology Co.,ltd" }, "6592": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "6593": { "vendor": "Alpsalpine Co,.Ltd" @@ -19965,7 +19965,7 @@ "vendor": "Gentex Corporation/Electro-Acoustic Products" }, "6683": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "6684": { "vendor": "GT&T Engineering Pte Ltd" @@ -20190,7 +20190,7 @@ "vendor": "Seluxit" }, "6758": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "6759": { "vendor": "Infinite QL Sdn Bhd" @@ -20241,7 +20241,7 @@ "vendor": "SDT information Technology Co.,LTD." }, "6775": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "6776": { "vendor": "ubtos" @@ -20403,7 +20403,7 @@ "vendor": "Corelatus AB" }, "6829": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "6830": { "vendor": "Savant Systems LLC" @@ -20541,7 +20541,7 @@ "vendor": "Biz-2-Me Inc." }, "6875": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "6876": { "vendor": "Nokia Danmark A/S" @@ -20550,7 +20550,7 @@ "vendor": "PePWave Ltd" }, "6878": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "6879": { "vendor": "Interactivetv Pty Limited" @@ -20898,7 +20898,7 @@ "vendor": "Vector Technology Corp." }, "6994": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "6995": { "vendor": "Cisco Systems, Inc" @@ -21312,7 +21312,7 @@ "vendor": "Vencer Co., Ltd." }, "7133": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7134": { "vendor": "Renkus-Heinz, Inc." @@ -21468,10 +21468,10 @@ "vendor": "Cisco-Linksys, LLC" }, "7185": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7186": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7187": { "vendor": "Optsys Technology Co., Ltd." @@ -21996,13 +21996,13 @@ "vendor": "Intel Corporate" }, "7361": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7362": { "vendor": "Part II Research, Inc." }, "7363": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7364": { "vendor": "Hewlett Packard" @@ -22170,7 +22170,7 @@ "vendor": "Alarm.com" }, "7419": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7420": { "vendor": "Sumitomo Electric Industries, Ltd" @@ -22506,7 +22506,7 @@ "vendor": "Alpha Networks Inc." }, "7531": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7532": { "vendor": "ClariPhy Communications, Inc." @@ -22755,7 +22755,7 @@ "vendor": "Versamed Inc." }, "7614": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7615": { "vendor": "Radiient Technologies, Inc." @@ -22800,34 +22800,34 @@ "vendor": "Ayon Cyber Security, Inc" }, "7629": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7630": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7631": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7632": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7633": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7634": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7635": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7636": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7637": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7638": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7639": { "vendor": "Algolith" @@ -23163,7 +23163,7 @@ "vendor": "Sony Corporation" }, "7750": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7751": { "vendor": "PT. Hariff Daya Tunggal Engineering" @@ -23223,7 +23223,7 @@ "vendor": "Silicon Turnkey Express, LLC" }, "7770": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7771": { "vendor": "Unitron Company, Inc." @@ -23376,7 +23376,7 @@ "vendor": "ASUSTek COMPUTER INC." }, "7821": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7822": { "vendor": "Hunkeler AG" @@ -24099,7 +24099,7 @@ "vendor": "Embedded Wireless GmbH" }, "8062": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "8063": { "vendor": "Phabrix Limited" @@ -24309,7 +24309,7 @@ "vendor": "SmartSynch, Inc" }, "8132": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "8133": { "vendor": "Nintendo Co., Ltd." @@ -24681,7 +24681,7 @@ "vendor": "Juki Corporation" }, "8256": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "8257": { "vendor": "Data Net" @@ -25347,7 +25347,7 @@ "vendor": "Dataline AB" }, "8478": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "8479": { "vendor": "Shinsung Deltatech Co.,Ltd." @@ -25419,7 +25419,7 @@ "vendor": "Alcatel-Lucent" }, "8502": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "8503": { "vendor": "Bay Controls, LLC" @@ -25458,7 +25458,7 @@ "vendor": "Advanced Control Systems doo" }, "8515": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "8516": { "vendor": "SS Telecoms" @@ -25641,7 +25641,7 @@ "vendor": "Intraco Technology Pte Ltd" }, "8576": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "8577": { "vendor": "Si2 Microsystems Limited" @@ -26073,7 +26073,7 @@ "vendor": "MoCA (Multimedia over Coax Alliance)" }, "8720": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "8721": { "vendor": "Rohati Systems" @@ -26565,7 +26565,7 @@ "vendor": "Sei S.p.A." }, "8884": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "8885": { "vendor": "Novita" @@ -26826,7 +26826,7 @@ "vendor": "ARBURG GmbH & Co KG" }, "8971": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "8972": { "vendor": "Clover Electronics Co.,Ltd." @@ -27141,10 +27141,10 @@ "vendor": "GridIron Systems, Inc." }, "9076": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9077": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9078": { "vendor": "HTC Corporation" @@ -27240,7 +27240,7 @@ "vendor": "Samjeon" }, "9109": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9110": { "vendor": "Andes Technology Corporation" @@ -27279,10 +27279,10 @@ "vendor": "Trend Electronics Ltd" }, "9122": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9123": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9124": { "vendor": "New Concepts Development Corp." @@ -27318,7 +27318,7 @@ "vendor": "Dell Inc." }, "9135": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9136": { "vendor": "COMXION Technology Inc." @@ -27504,10 +27504,10 @@ "vendor": "Algorithmix GmbH" }, "9197": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9198": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9199": { "vendor": "Zuend Systemtechnik AG" @@ -27993,13 +27993,13 @@ "vendor": "Motorola, Broadband Solutions Group" }, "9363": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9364": { "vendor": "Shenzhen Baoxin Tech CO., Ltd." }, "9365": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9366": { "vendor": "Ginzinger electronic systems" @@ -28032,10 +28032,10 @@ "vendor": "RIM Testing Services" }, "9376": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9377": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9378": { "vendor": "Hong Kong Middleware Technology Limited" @@ -28131,7 +28131,7 @@ "vendor": "Nti Comodo Inc" }, "9409": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9410": { "vendor": "Asumo Co.,Ltd." @@ -29037,10 +29037,10 @@ "vendor": "Suga Electronics Limited" }, "9713": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9714": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9715": { "vendor": "Nordwestdeutsche Zählerrevision" @@ -29241,7 +29241,7 @@ "vendor": "Bluetechnix GmbH" }, "9782": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9783": { "vendor": "Samsung Electro Mechanics Co., Ltd." @@ -29274,10 +29274,10 @@ "vendor": "Baustem Broadband Technologies, Ltd." }, "9793": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9794": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9795": { "vendor": "Alpsalpine Co,.Ltd" @@ -29631,7 +29631,7 @@ "vendor": "Dell Inc." }, "9914": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9915": { "vendor": "Apple, Inc." @@ -29724,7 +29724,7 @@ "vendor": "Magic Point Inc." }, "9945": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9946": { "vendor": "Universal Media Corporation /Slovakia/ s.r.o." @@ -30816,7 +30816,7 @@ "vendor": "Texas Instruments" }, "13942": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "14014": { "vendor": "Northwest Towers" @@ -31041,7 +31041,7 @@ "vendor": "Gk Computer" }, "16433": { - "vendor": "Kokusai Electric Co., Ltd" + "vendor": "Hitachi Kokusai Electric, Inc." }, "16434": { "vendor": "Digital Communications" @@ -32133,7 +32133,7 @@ "vendor": "Boeing" }, "20628": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "20629": { "vendor": "Peracom Networks" @@ -32361,7 +32361,7 @@ "vendor": "Cisco Systems, Inc" }, "20707": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "20708": { "vendor": "Apple, Inc." @@ -34794,10 +34794,10 @@ "vendor": "Markem-Imaje" }, "37020": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "37021": { - "vendor": "NovaTech Process Solutions, LLC" + "vendor": "NovaTech, LLC" }, "37022": { "vendor": "Critical IO, LLC" @@ -35150,6 +35150,9 @@ "40299": { "vendor": "Murata Manufacturing Co., Ltd." }, + "40325": { + "vendor": "Sigmastar Technology Ltd." + }, "40334": { "vendor": "Cardiac Recorders, Inc." }, @@ -36015,7 +36018,7 @@ "vendor": "eero inc." }, "44256": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "44324": { "vendor": "D-Link International" @@ -36254,6 +36257,9 @@ "48707": { "vendor": "Dell Inc." }, + "48708": { + "vendor": "Silicon Laboratories" + }, "48757": { "vendor": "Cisco Systems, Inc" }, @@ -37299,7 +37305,7 @@ "vendor": "Technology Atlanta Corp." }, "53303": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "53304": { "vendor": "Fivemere, Ltd." @@ -37542,7 +37548,7 @@ "vendor": "Microfirst Inc." }, "53384": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "53385": { "vendor": "Dynacolor, Inc." @@ -38358,7 +38364,7 @@ "vendor": "FAR SYSTEMS S.p.A." }, "57455": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "57456": { "vendor": "Dh Technology" @@ -38942,6 +38948,9 @@ "64182": { "vendor": "Kontakt Micro-Location Sp z o.o." }, + "64222": { + "vendor": "Motorola Mobility LLC, a Lenovo Company" + }, "64505": { "vendor": "Axiado Corporation" }, @@ -39215,6 +39224,9 @@ "275394": { "vendor": "Intel Corporate" }, + "275651": { + "vendor": "Qingdao Goertek Horizons Tecnology Co.,LTD" + }, "275702": { "vendor": "Motorola (Wuhan) Mobility Technologies Communication Co., Ltd." }, @@ -39318,7 +39330,7 @@ "vendor": "Ericsson AB" }, "282202": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "282287": { "vendor": "LG Innotek" @@ -39968,6 +39980,9 @@ "320391": { "vendor": "Cisco Systems, Inc" }, + "320456": { + "vendor": "Fujian Star-Net Communication Co.,Ltd" + }, "320485": { "vendor": "Silicon Laboratories" }, @@ -40809,7 +40824,7 @@ "vendor": "Samsung Electronics Co.,Ltd" }, "540172": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "540253": { "vendor": "Sagemcom Broadband SAS" @@ -40937,6 +40952,9 @@ "547867": { "vendor": "Huawei Technologies Co.,Ltd" }, + "548179": { + "vendor": "Apple, Inc." + }, "548317": { "vendor": "Mercury Corporation" }, @@ -41294,6 +41312,9 @@ "571372": { "vendor": "Wireless Seismic" }, + "571600": { + "vendor": "Chipsea Technologies (Shenzhen) Corp." + }, "571743": { "vendor": "Silicon Laboratories" }, @@ -41357,6 +41378,9 @@ "575273": { "vendor": "Apple, Inc." }, + "575413": { + "vendor": "Apple, Inc." + }, "575477": { "vendor": "Vantiva Connected Home - Technologies Telco" }, @@ -41768,6 +41792,9 @@ "797780": { "vendor": "Huawei Technologies Co.,Ltd" }, + "797820": { + "vendor": "Shenzhen Skyworth Digital Technology CO., Ltd" + }, "798089": { "vendor": "QiiQ Communications Inc." }, @@ -42060,7 +42087,7 @@ "vendor": "Garmin International" }, "819122": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "819299": { "vendor": "Tp-Link Technologies Co.,Ltd." @@ -42137,6 +42164,9 @@ "822165": { "vendor": "Espressif Inc." }, + "822178": { + "vendor": "Huawei Technologies Co.,Ltd" + }, "822227": { "vendor": "Itel Mobile Limited" }, @@ -42321,7 +42351,7 @@ "vendor": "D-Link International" }, "833393": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "833415": { "vendor": "Huawei Technologies Co.,Ltd" @@ -42542,6 +42572,9 @@ "845267": { "vendor": "DH electronics GmbH" }, + "845436": { + "vendor": "Realme Chongqing Mobile Telecommunications Corp.,Ltd." + }, "845577": { "vendor": "Fox Crypto B.V." }, @@ -42561,7 +42594,7 @@ "vendor": "Ubiquiti Inc" }, "846537": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "846976": { "vendor": "Texas Instruments" @@ -42615,7 +42648,7 @@ "vendor": "Cisco Systems, Inc" }, "850067": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "850368": { "vendor": "Sky Uk Limited" @@ -42641,6 +42674,9 @@ "1048608": { "vendor": "Apple, Inc." }, + "1048635": { + "vendor": "Espressif Inc." + }, "1048666": { "vendor": "IBM Corp" }, @@ -42666,7 +42702,7 @@ "vendor": "Pegatron Corporation" }, "1050033": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "1050058": { "vendor": "Cisco Systems, Inc" @@ -42914,6 +42950,9 @@ "1062474": { "vendor": "Boston Dynamics" }, + "1062570": { + "vendor": "Vantiva - Connected Home" + }, "1062673": { "vendor": "Norbit Its" }, @@ -43041,11 +43080,14 @@ "vendor": "Shenzhen Skyworth Digital Technology CO., Ltd" }, "1070609": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "1070794": { "vendor": "Peplink International Ltd." }, + "1070885": { + "vendor": "Cisco Systems, Inc" + }, "1071239": { "vendor": "Fiberhome Telecommunication Technologies Co.,LTD" }, @@ -43245,7 +43287,7 @@ "vendor": "Microseven Systems, LLC" }, "1083020": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "1083124": { "vendor": "Huawei Device Co., Ltd." @@ -43299,7 +43341,7 @@ "vendor": "Samsung Electronics Co.,Ltd" }, "1086359": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "1086441": { "vendor": "Apple, Inc." @@ -43319,6 +43361,9 @@ "1087123": { "vendor": "Amazon Technologies Inc." }, + "1087174": { + "vendor": "Cisco Systems, Inc" + }, "1087421": { "vendor": "Espressif Inc." }, @@ -43653,7 +43698,7 @@ "vendor": "Siemens AG" }, "1106295": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "1106318": { "vendor": "Universal Global Scientific Industrial., Ltd" @@ -44220,11 +44265,14 @@ "vendor": "ConMet" }, "1334225": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "1334241": { "vendor": "nyantec GmbH" }, + "1334580": { + "vendor": "Shenzhen Bilian Electronic Co.,Ltd" + }, "1334853": { "vendor": "Bamboo Systems Group" }, @@ -44529,7 +44577,7 @@ "vendor": "Hewlett Packard Enterprise" }, "1354736": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "1354848": { "vendor": "Cloud Network Technology Singapore Pte. Ltd." @@ -44567,6 +44615,9 @@ "1356932": { "vendor": "Samsung Electronics Co.,Ltd" }, + "1357261": { + "vendor": "Liteon Technology Corporation" + }, "1357629": { "vendor": "ARCHEAN Technologies" }, @@ -44589,7 +44640,7 @@ "vendor": "Nanjing Jiahao Technology Co., Ltd." }, "1359934": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "1359952": { "vendor": "Guangdong Genius Technology Co., Ltd." @@ -44664,7 +44715,7 @@ "vendor": "Tp-Link Technologies Co.,Ltd." }, "1363938": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "1363981": { "vendor": "Apple, Inc." @@ -44682,7 +44733,7 @@ "vendor": "AzureWave Technology Inc." }, "1365246": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "1365581": { "vendor": "D-Link International" @@ -44943,7 +44994,7 @@ "vendor": "Sage Co., Ltd." }, "1581269": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "1581461": { "vendor": "Samsung Electronics Co.,Ltd" @@ -45024,7 +45075,7 @@ "vendor": "Kaon Group Co., Ltd." }, "1586641": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "1586802": { "vendor": "Shaoxing ShunChuang Technology CO.,LTD" @@ -45507,7 +45558,7 @@ "vendor": "CSE-Servelec Limited" }, "1612839": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "1612844": { "vendor": "Dongguan Huayin Electronic Technology Co., Ltd." @@ -45627,7 +45678,7 @@ "vendor": "Invoxia" }, "1619999": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "1620229": { "vendor": "Hong Kong Bouffalo Lab Limited" @@ -46002,7 +46053,7 @@ "vendor": "Huawei Device Co., Ltd." }, "1840200": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "1840307": { "vendor": "Airwire Technologies" @@ -46032,7 +46083,7 @@ "vendor": "Giga-Byte Technology Co.,Ltd." }, "1842024": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "1842101": { "vendor": "Intel Corporate" @@ -46302,7 +46353,7 @@ "vendor": "Motorola Mobility LLC, a Lenovo Company" }, "1857342": { - "vendor": "Altice Labs S.A." + "vendor": "Altice Labs" }, "1857496": { "vendor": "Kraftway Corporation PLC" @@ -46581,7 +46632,7 @@ "vendor": "Dongguan Liesheng Electronic Co., Ltd." }, "1872764": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "1872836": { "vendor": "Amazon Technologies Inc." @@ -46790,6 +46841,9 @@ "1885997": { "vendor": "Shenzhen Huapu Digital CO.,Ltd" }, + "1886401": { + "vendor": "HongKong YiTong Technology Ltd." + }, "1886610": { "vendor": "Honor Device Co., Ltd." }, @@ -47238,7 +47292,7 @@ "vendor": "Beijing Tosee Technology Co., Ltd." }, "2112870": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "2112946": { "vendor": "Huawei Technologies Co.,Ltd" @@ -47466,7 +47520,7 @@ "vendor": "Beijing Xiaomi Electronics Co.,Ltd" }, "2126677": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "2126932": { "vendor": "vivo Mobile Communication Co., Ltd." @@ -47889,7 +47943,7 @@ "vendor": "Netgear" }, "2155876": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "2156255": { "vendor": "eero inc." @@ -47934,13 +47988,13 @@ "vendor": "Huawei Technologies Co.,Ltd" }, "2159006": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "2159367": { "vendor": "zte corporation" }, "2159477": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "2159523": { "vendor": "Huawei Technologies Co.,Ltd" @@ -48048,7 +48102,7 @@ "vendor": "Samsung Electronics Co.,Ltd" }, "2361955": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "2361956": { "vendor": "AzureWave Technology Inc." @@ -48518,6 +48572,9 @@ "2390051": { "vendor": "Panasonic Entertainment & Communication Co., Ltd." }, + "2390255": { + "vendor": "Nokia" + }, "2390314": { "vendor": "Ruckus Wireless" }, @@ -48606,7 +48663,7 @@ "vendor": "Hong Kong Bouffalo Lab Limited" }, "2397387": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "2397444": { "vendor": "Sfr" @@ -48648,7 +48705,7 @@ "vendor": "Espressif Inc." }, "2400646": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "2400993": { "vendor": "Apple, Inc." @@ -48971,6 +49028,9 @@ "2419264": { "vendor": "Helmholz GmbH & Co. KG" }, + "2419478": { + "vendor": "Intel Corporate" + }, "2419557": { "vendor": "SAET I.S. S.r.l." }, @@ -49154,6 +49214,9 @@ "2626673": { "vendor": "Lantis co., LTD." }, + "2626980": { + "vendor": "Shenzhen Pinsu Zhilian Information Technology Co.,Ltd." + }, "2627118": { "vendor": "2Wire Inc" }, @@ -49572,7 +49635,7 @@ "vendor": "Realplay Digital Technology(Shenzhen) Co.,Ltd" }, "2652910": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "2652937": { "vendor": "zte corporation" @@ -49697,6 +49760,9 @@ "2662140": { "vendor": "Sagemcom Broadband SAS" }, + "2662148": { + "vendor": "Samsung Electronics Co.,Ltd" + }, "2662443": { "vendor": "Apple, Inc." }, @@ -49724,6 +49790,9 @@ "2663217": { "vendor": "Sierra Wireless, ULC" }, + "2663498": { + "vendor": "Intel Corporate" + }, "2663743": { "vendor": "vivo Mobile Communication Co., Ltd." }, @@ -49887,7 +49956,7 @@ "vendor": "DellKing Industrial Co., Ltd" }, "2672762": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "2672764": { "vendor": "zte corporation" @@ -50130,7 +50199,7 @@ "vendor": "ADD-Engineering BV" }, "2684369": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "2684422": { "vendor": "Syes srl" @@ -50214,7 +50283,7 @@ "vendor": "EControls, LLC" }, "2883755": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "2883831": { "vendor": "Xos" @@ -50328,7 +50397,7 @@ "vendor": "Alien Green LLC" }, "2891192": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "2891343": { "vendor": "Chengdu Qianli Network Technology Co., Ltd." @@ -50604,7 +50673,7 @@ "vendor": "Apple, Inc." }, "2906191": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "2906297": { "vendor": "HP Inc." @@ -50778,7 +50847,7 @@ "vendor": "Apple, Inc." }, "2915969": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "2916047": { "vendor": "Onzo Ltd" @@ -50832,7 +50901,7 @@ "vendor": "Cincoze Co., Ltd." }, "2921833": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "2921855": { "vendor": "zte corporation" @@ -50856,7 +50925,7 @@ "vendor": "Cloud Network Technology Singapore Pte. Ltd." }, "2922788": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "2922869": { "vendor": "Samsung Electronics Co.,Ltd" @@ -50877,7 +50946,7 @@ "vendor": "Sony Interactive Entertainment Inc." }, "2924127": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "2924256": { "vendor": "Cavli Inc." @@ -50901,7 +50970,7 @@ "vendor": "acromate, Inc." }, "2924925": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "2925236": { "vendor": "Fortify Technologies, LLC" @@ -51275,6 +51344,9 @@ "2948687": { "vendor": "Xiaomi Communications Co Ltd" }, + "2948747": { + "vendor": "Microchip Technologies Inc" + }, "2948834": { "vendor": "Qingdao Hisense Communications Co.,Ltd." }, @@ -51422,6 +51494,9 @@ "3155919": { "vendor": "Canopy Growth Corp" }, + "3156299": { + "vendor": "Huawei Technologies Co.,Ltd" + }, "3156306": { "vendor": "Hillstone Networks Inc" }, @@ -51666,7 +51741,7 @@ "vendor": "Cig Shanghai Co Ltd" }, "3170339": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "3170578": { "vendor": "PAV GmbH" @@ -52434,7 +52509,7 @@ "vendor": "Huawei Technologies Co.,Ltd" }, "3416036": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "3416067": { "vendor": "Shenzhen Feitengyun Technology Co.,LTD" @@ -52532,6 +52607,9 @@ "3420902": { "vendor": "Panasonic Industrial Devices Europe GmbH" }, + "3421703": { + "vendor": "Pinewave Pte. Ltd." + }, "3421755": { "vendor": "Apple, Inc." }, @@ -52827,7 +52905,7 @@ "vendor": "Huawei Technologies Co.,Ltd" }, "3439200": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "3439653": { "vendor": "Apple, Inc." @@ -53588,6 +53666,9 @@ "3676006": { "vendor": "Promzakaz Ltd." }, + "3676081": { + "vendor": "Sagemcom Broadband SAS" + }, "3676099": { "vendor": "Hewlett Packard Enterprise" }, @@ -53805,7 +53886,7 @@ "vendor": "Huawei Technologies Co.,Ltd" }, "3689616": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "3690313": { "vendor": "Juniper Networks" @@ -53925,7 +54006,7 @@ "vendor": "Shenzhen Mercury Communication Technologies Co.,Ltd." }, "3697595": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "3697819": { "vendor": "Ivy Biomedical" @@ -53943,7 +54024,7 @@ "vendor": "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" }, "3698700": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "3699166": { "vendor": "Apple, Inc." @@ -54437,6 +54518,9 @@ "3731608": { "vendor": "Vapor Stone Rail Systems" }, + "3731643": { + "vendor": "CompuSoft A/S" + }, "3731656": { "vendor": "Logitech" }, @@ -54581,6 +54665,9 @@ "3848759": { "vendor": "Cirrent" }, + "3851983": { + "vendor": "Parakey AB" + }, "3854277": { "vendor": "Quickline AG" }, @@ -54597,7 +54684,7 @@ "vendor": "Creation Technologies LP" }, "3933281": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "3933375": { "vendor": "PRAVIS SYSTEMS Co.Ltd.," @@ -54852,7 +54939,7 @@ "vendor": "Huawei Technologies Co.,Ltd" }, "3946212": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "3946258": { "vendor": "AVM Audiovisuelles Marketing und Computersysteme GmbH" @@ -54869,6 +54956,9 @@ "3946740": { "vendor": "Sony Corporation" }, + "3946920": { + "vendor": "Shenzhen Taichi Technology Limited" + }, "3946947": { "vendor": "JW Electronics Co., Ltd." }, @@ -54897,7 +54987,7 @@ "vendor": "Cisco Systems, Inc" }, "3949454": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "3949835": { "vendor": "Sentry Equipment Corp." @@ -54944,6 +55034,9 @@ "3952214": { "vendor": "Shenzhen Chuangwei-Rgb Electronics Co.,Ltd" }, + "3952642": { + "vendor": "Apple, Inc." + }, "3952910": { "vendor": "Cisco Systems, Inc" }, @@ -55098,7 +55191,7 @@ "vendor": "Rim" }, "3962186": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "3962405": { "vendor": "zte corporation" @@ -55116,7 +55209,7 @@ "vendor": "Dongguan Auklink TechnologyCo.,Ltd" }, "3963530": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "3963562": { "vendor": "China Dragon Technology Limited" @@ -55364,6 +55457,9 @@ "3975743": { "vendor": "iKey, Ltd." }, + "3976050": { + "vendor": "Nanjing Qinheng Microelectronics Co., Ltd." + }, "3976078": { "vendor": "Apple, Inc." }, @@ -55466,6 +55562,9 @@ "3982813": { "vendor": "Hui Zhou Gaoshengda Technology Co.,LTD" }, + "3982979": { + "vendor": "Sichuan AI-Link Technology Co., Ltd." + }, "3983238": { "vendor": "Dongguan Huarong Communication Technologies Co.,Ltd." }, @@ -55560,7 +55659,7 @@ "vendor": "Cisco Systems, Inc" }, "3989417": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "3989437": { "vendor": "Huawei Technologies Co.,Ltd" @@ -55637,6 +55736,9 @@ "3993731": { "vendor": "Arcadyan Corporation" }, + "3994433": { + "vendor": "Hosenso GmbH & Co. KG" + }, "3994514": { "vendor": "Virtualtek. Co. Ltd" }, @@ -55737,7 +55839,7 @@ "vendor": "Railtec Systems GmbH" }, "4197648": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "4197991": { "vendor": "Tremol Ltd." @@ -55842,7 +55944,7 @@ "vendor": "Shanghai High-Flying Electronics Technology Co., Ltd" }, "4205392": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "4205417": { "vendor": "Kumho Electric Inc." @@ -55871,6 +55973,9 @@ "4206695": { "vendor": "Conlog (Pty) Ltd" }, + "4206875": { + "vendor": "Genbyte Technology Inc." + }, "4206908": { "vendor": "XIAOMI Electronics,CO.,LTD" }, @@ -55892,6 +55997,9 @@ "4208232": { "vendor": "E&B Telecom" }, + "4208311": { + "vendor": "Juniper Networks" + }, "4208557": { "vendor": "Macro Image Technology, Inc." }, @@ -55937,6 +56045,9 @@ "4211965": { "vendor": "Realme Chongqing Mobile Telecommunications Corp.,Ltd." }, + "4212128": { + "vendor": "vivo Mobile Communication Co., Ltd." + }, "4212164": { "vendor": "Huawei Technologies Co.,Ltd" }, @@ -55968,7 +56079,7 @@ "vendor": "Widex A/S" }, "4213879": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "4213962": { "vendor": "Espressif Inc." @@ -56112,7 +56223,7 @@ "vendor": "BlackBerry RTS" }, "4222985": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "4223050": { "vendor": "Power Idea Technology Limited" @@ -56445,7 +56556,7 @@ "vendor": "Huawei Device Co., Ltd." }, "4241395": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "4241404": { "vendor": "Phyplus Microelectronics Limited" @@ -56714,6 +56825,9 @@ "4256800": { "vendor": "Sichuan Tianyi Comheart Telecom Co.,LTD" }, + "4256927": { + "vendor": "Cisco Systems, Inc" + }, "4256969": { "vendor": "FN-LINK TECHNOLOGY Ltd." }, @@ -56748,7 +56862,7 @@ "vendor": "Motorola Mobility LLC, a Lenovo Company" }, "4258953": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "4259315": { "vendor": "AMPAK Technology,Inc." @@ -56967,7 +57081,7 @@ "vendor": "Mxt Industrial Ltda" }, "4469927": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "4470127": { "vendor": "Neterix Ltd" @@ -57216,7 +57330,7 @@ "vendor": "Huawei Technologies Co.,Ltd" }, "4483767": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "4483871": { "vendor": "Texas Instruments" @@ -57471,7 +57585,7 @@ "vendor": "Nanotec Electronic GmbH & Co. KG" }, "4500213": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "4500761": { "vendor": "Xingfei (H.K)Limited" @@ -57699,7 +57813,7 @@ "vendor": "Cisco SPVTG" }, "4514103": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "4514545": { "vendor": "NewRadio Technologies Co. , Ltd." @@ -57722,6 +57836,9 @@ "4515095": { "vendor": "Intel Corporate" }, + "4515227": { + "vendor": "Huawei Technologies Co.,Ltd" + }, "4515402": { "vendor": "Shenzhen iComm Semiconductor CO.,LTD" }, @@ -58143,7 +58260,7 @@ "vendor": "Dell Inc." }, "4738812": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "4739187": { "vendor": "Microsoft Corporation" @@ -58475,6 +58592,9 @@ "4756743": { "vendor": "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" }, + "4757209": { + "vendor": "zte corporation" + }, "4757706": { "vendor": "Sichuan AI-Link Technology Co., Ltd." }, @@ -58725,7 +58845,7 @@ "vendor": "Sagemcom Broadband SAS" }, "4772675": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "4772701": { "vendor": "Private" @@ -58832,6 +58952,9 @@ "4778481": { "vendor": "Apple, Inc." }, + "4778594": { + "vendor": "HP Inc." + }, "4778595": { "vendor": "Zhejiang Uniview Technologies Co., Ltd." }, @@ -59052,7 +59175,7 @@ "vendor": "Zhejiang Dahua Technology Co., Ltd." }, "4985445": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "4985576": { "vendor": "Vietnam Post And Telecommunication Industry Technology Join Stock Company" @@ -59172,7 +59295,7 @@ "vendor": "Huawei Device Co., Ltd." }, "4993161": { - "vendor": "Thales Transportation Systems GmbH" + "vendor": "Hitachi Rail GTS Deutschland GmbH" }, "4993325": { "vendor": "Sichuan AI-Link Technology Co., Ltd." @@ -59202,7 +59325,7 @@ "vendor": "Mitac Computing Technology Corporation" }, "4995288": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "4995337": { "vendor": "HPL Electric & Power Private Limited" @@ -60044,6 +60167,9 @@ "5243537": { "vendor": "Espressif Inc." }, + "5243855": { + "vendor": "Canon Inc." + }, "5243905": { "vendor": "TelHi Corporation" }, @@ -60239,6 +60365,9 @@ "5254748": { "vendor": "HTC Corporation" }, + "5254758": { + "vendor": "Cloud Network Technology Singapore Pte. Ltd." + }, "5254862": { "vendor": "Asahi Electronics Co.,Ltd" }, @@ -60539,6 +60668,9 @@ "5269422": { "vendor": "Cisco Systems, Inc" }, + "5269472": { + "vendor": "Altice Labs" + }, "5269488": { "vendor": "Zyxel Communications Corporation" }, @@ -60594,7 +60726,7 @@ "vendor": "BEG Brueck Electronic GmbH" }, "5273073": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "5273233": { "vendor": "Tekpea, Inc." @@ -60723,7 +60855,7 @@ "vendor": "Gradual Tecnologia Ltda." }, "5281105": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "5281543": { "vendor": "Xiamen Paperang Technology Co.,Ltd." @@ -60795,7 +60927,7 @@ "vendor": "Samsung Electronics Co.,Ltd" }, "5285340": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "5285503": { "vendor": "Apple, Inc." @@ -60845,6 +60977,9 @@ "5287795": { "vendor": "Shenzhen Bitland Information Technology Co., Ltd." }, + "5287995": { + "vendor": "Sony Interactive Entertainment Inc." + }, "5288231": { "vendor": "Apple, Inc." }, @@ -61229,6 +61364,9 @@ "5507703": { "vendor": "Fiberhome Telecommunication Technologies Co.,LTD" }, + "5507722": { + "vendor": "Jlztlink Industry(ShenZhen)Co.,Ltd." + }, "5508601": { "vendor": "Huawei Device Co., Ltd." }, @@ -61364,6 +61502,9 @@ "5515149": { "vendor": "NXP (China) Management Ltd." }, + "5515526": { + "vendor": "Apple, Inc." + }, "5515803": { "vendor": "Sonos, Inc." }, @@ -61373,6 +61514,9 @@ "5515938": { "vendor": "Alpha Networks Inc." }, + "5516060": { + "vendor": "Amazon Technologies Inc." + }, "5516119": { "vendor": "Night Owl SP" }, @@ -61605,7 +61749,7 @@ "vendor": "Quectel Wireless Solutions Co.,Ltd." }, "5531102": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "5531244": { "vendor": "Shenzhen YOUHUA Technology Co., Ltd" @@ -62030,6 +62174,9 @@ "5561373": { "vendor": "Yulong Computer Telecommunication Scientific (Shenzhen) Co.,Ltd" }, + "5561679": { + "vendor": "Samsung Electronics Co.,Ltd" + }, "5562064": { "vendor": "Sevio Srl" }, @@ -62076,7 +62223,7 @@ "vendor": "Dongguan Aoyuan Electronics Technology Co., Ltd" }, "5563104": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "5563312": { "vendor": "JVL Industri Elektronik" @@ -62093,6 +62240,9 @@ "5563581": { "vendor": "Fn-Link Technology Limited" }, + "5563629": { + "vendor": "Intel Corporate" + }, "5563931": { "vendor": "Apple, Inc." }, @@ -62216,6 +62366,9 @@ "5767395": { "vendor": "Liteon Technology Corporation" }, + "5767685": { + "vendor": "AzureWave Technology Inc." + }, "5768187": { "vendor": "Hangzhou Hikvision Digital Technology Co.,Ltd." }, @@ -62283,7 +62436,7 @@ "vendor": "Sony Corporation" }, "5773816": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "5774525": { "vendor": "Affinegy" @@ -62423,6 +62576,9 @@ "5783840": { "vendor": "Tp-Link Technologies Co.,Ltd." }, + "5783878": { + "vendor": "Guangzhou Shiyuan Electronic Technology Company Limited" + }, "5784292": { "vendor": "Baxter International Inc" }, @@ -62502,7 +62658,7 @@ "vendor": "Huawei Technologies Co.,Ltd" }, "5789416": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "5789453": { "vendor": "Danfoss Solar Inverters" @@ -62526,7 +62682,7 @@ "vendor": "Huawei Technologies Co.,Ltd" }, "5791960": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "5792099": { "vendor": "Quantum Networks (SG) Pte. Ltd." @@ -63132,7 +63288,7 @@ "vendor": "Ruckus Wireless" }, "5831712": { - "vendor": "Altice Labs S.A." + "vendor": "Altice Labs" }, "5831795": { "vendor": "Arria Live Media, Inc." @@ -63449,6 +63605,9 @@ "6045784": { "vendor": "Jefferson Audio Video Systems, Inc." }, + "6045809": { + "vendor": "Xiaomi Communications Co Ltd" + }, "6045923": { "vendor": "Novaon" }, @@ -63546,7 +63705,7 @@ "vendor": "3pleplay Electronics Private Limited" }, "6051610": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "6051742": { "vendor": "Chiun Mai Communication System, Inc" @@ -63786,7 +63945,7 @@ "vendor": "Tecno Mobile Limited" }, "6066144": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "6066194": { "vendor": "Owl Cyber Defense Solutions, LLC" @@ -63906,7 +64065,7 @@ "vendor": "Huawei Technologies Co.,Ltd" }, "6074470": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "6074670": { "vendor": "Cisco Systems, Inc" @@ -64140,7 +64299,7 @@ "vendor": "AcSiP Technology Corp." }, "6087438": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "6087606": { "vendor": "Fiberhome Telecommunication Technologies Co.,LTD" @@ -64407,7 +64566,10 @@ "vendor": "Huizhou Qiaoxing Electronics Technology Co., Ltd." }, "6297969": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" + }, + "6298191": { + "vendor": "Beijing China Electronics Intelligent Acoustics Technology Co.,Ltd" }, "6298311": { "vendor": "Nintendo Co.,Ltd" @@ -64544,6 +64706,9 @@ "6306479": { "vendor": "Samsung Electronics Co.,Ltd" }, + "6306830": { + "vendor": "Guizhou Huaxin Information Technology Co.,Ltd" + }, "6307054": { "vendor": "LG Electronics (Mobile Communications)" }, @@ -64829,6 +64994,9 @@ "6324171": { "vendor": "Samsung Electronics Co.,Ltd" }, + "6324496": { + "vendor": "Apple, Inc." + }, "6324523": { "vendor": "Astronics Custom Control Concepts" }, @@ -64884,7 +65052,7 @@ "vendor": "Beamtrail-Sole Proprietorship" }, "6327526": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "6327575": { "vendor": "Sentrus Government Systems Division, Inc" @@ -64911,7 +65079,7 @@ "vendor": "Apple, Inc." }, "6329077": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "6329110": { "vendor": "Apple, Inc." @@ -65181,7 +65349,7 @@ "vendor": "Sunnovo International Limited" }, "6345288": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "6345314": { "vendor": "Tzukuri Pty Ltd" @@ -65424,11 +65592,14 @@ "vendor": "Landis+Gyr GmbH" }, "6554315": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "6554495": { "vendor": "Samsung Electronics Co.,Ltd" }, + "6554962": { + "vendor": "China Post Communication Equipment Co.," + }, "6555070": { "vendor": "New Light Led" }, @@ -65499,7 +65670,7 @@ "vendor": "Vantiva USA LLC" }, "6558313": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "6558513": { "vendor": "Bosch Car Multimedia (Wuhu) Co. Ltd." @@ -65708,6 +65879,9 @@ "6573890": { "vendor": "JETTER CO., Ltd." }, + "6573910": { + "vendor": "Yealink(Xiamen) Network Technology Co.,Ltd." + }, "6573940": { "vendor": "LENUS Co., Ltd." }, @@ -65748,7 +65922,7 @@ "vendor": "NSFOCUS Information Technology Co., Ltd." }, "6575537": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "6575617": { "vendor": "Tp-Link Technologies Co.,Ltd." @@ -66089,6 +66263,9 @@ "6595531": { "vendor": "Apple, Inc." }, + "6595532": { + "vendor": "LeoLabs" + }, "6595652": { "vendor": "Loongson Technology Corporation Limited" }, @@ -66429,7 +66606,7 @@ "vendor": "vivo Mobile Communication Co., Ltd." }, "6614359": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "6614370": { "vendor": "WOORI SYSTEMS Co., Ltd" @@ -66669,7 +66846,7 @@ "vendor": "Kenstel Networks Limited" }, "6829038": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "6829089": { "vendor": "Intel Corporate" @@ -66686,6 +66863,9 @@ "6830057": { "vendor": "Amazon Technologies Inc." }, + "6830307": { + "vendor": "EYESON SOLUTION CO.,Ltd" + }, "6830403": { "vendor": "ittim" }, @@ -66740,6 +66920,9 @@ "6833111": { "vendor": "Agilecom Photonics Solutions Guangdong Limited" }, + "6833253": { + "vendor": "Apple, Inc." + }, "6833521": { "vendor": "Huawei Device Co., Ltd." }, @@ -67182,7 +67365,7 @@ "vendor": "Wacom Co.,Ltd." }, "6859460": { - "vendor": "Altice Labs S.A." + "vendor": "Altice Labs" }, "6859474": { "vendor": "Datecs Ltd.," @@ -67376,6 +67559,9 @@ "6873053": { "vendor": "Xiaomi Communications Co Ltd" }, + "6873060": { + "vendor": "Samsung Electronics Co.,Ltd" + }, "6873428": { "vendor": "SiMa.ai" }, @@ -67430,6 +67616,9 @@ "6876483": { "vendor": "BlackBerry RTS" }, + "6876503": { + "vendor": "Juniper Networks" + }, "6876580": { "vendor": "Shenzhen Seavo Technology Co.,Ltd" }, @@ -67625,6 +67814,9 @@ "7082419": { "vendor": "Wu Qi Technologies,Inc." }, + "7082608": { + "vendor": "Apple, Inc." + }, "7082965": { "vendor": "Cisco Systems, Inc" }, @@ -67835,6 +68027,9 @@ "7094470": { "vendor": "Nimbus Data, Inc." }, + "7094504": { + "vendor": "vivo Mobile Communication Co., Ltd." + }, "7094542": { "vendor": "Cisco Systems, Inc" }, @@ -68001,7 +68196,7 @@ "vendor": "Juniper Networks" }, "7103388": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7103514": { "vendor": "Penguin Computing" @@ -68226,7 +68421,7 @@ "vendor": "Fiberhome Telecommunication Technologies Co.,LTD" }, "7120388": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7120514": { "vendor": "EDAM information & communications" @@ -68373,7 +68568,7 @@ "vendor": "Xiamen Hanin Electronic Technology Co., Ltd" }, "7127506": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7127575": { "vendor": "Hewlett Packard" @@ -68406,7 +68601,7 @@ "vendor": "Samsung Electro-Mechanics(Thailand)" }, "7129608": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7130582": { "vendor": "Netgear" @@ -68648,6 +68843,9 @@ "7341943": { "vendor": "OnTarget Technologies, Inc" }, + "7342096": { + "vendor": "Intel Corporate" + }, "7342228": { "vendor": "Liteon Technology Corporation" }, @@ -68699,6 +68897,9 @@ "7345318": { "vendor": "Apple, Inc." }, + "7345659": { + "vendor": "Intel Corporate" + }, "7345823": { "vendor": "EtherCAT Technology Group" }, @@ -68985,7 +69186,7 @@ "vendor": "Tp-Link Technologies Co.,Ltd." }, "7360440": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7360687": { "vendor": "Sky Uk Limited" @@ -69000,7 +69201,7 @@ "vendor": "Alfa Instrumentos Eletronicos Ltda." }, "7361573": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7361636": { "vendor": "Silicon Laboratories" @@ -69186,7 +69387,7 @@ "vendor": "Murata Manufacturing Co., Ltd." }, "7370288": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7370461": { "vendor": "OxyGuard Internation A/S" @@ -69234,7 +69435,7 @@ "vendor": "Cisco Systems, Inc" }, "7372355": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7372510": { "vendor": "Nastec Ltd." @@ -69267,7 +69468,7 @@ "vendor": "Ruijie Networks Co.,LTD" }, "7374278": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7374529": { "vendor": "Texas Instruments" @@ -69453,7 +69654,7 @@ "vendor": "Samsung Electronics Co.,Ltd" }, "7385422": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7385701": { "vendor": "Hiltron s.r.l." @@ -69651,7 +69852,7 @@ "vendor": "Cisco Systems, Inc" }, "7397367": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7397415": { "vendor": "Hongyu Communication Technology Limited" @@ -70118,6 +70319,9 @@ "7622734": { "vendor": "New H3C Technologies Co., Ltd" }, + "7622861": { + "vendor": "Huawei Technologies Co.,Ltd" + }, "7623098": { "vendor": "Xiaomi Communications Co Ltd" }, @@ -70137,7 +70341,7 @@ "vendor": "Cisco SPVTG" }, "7624210": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7624252": { "vendor": "Giga-Byte Technology Co.,Ltd." @@ -70395,7 +70599,7 @@ "vendor": "Cisco Systems, Inc" }, "7637517": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7637544": { "vendor": "HMD Global Oy" @@ -70694,6 +70898,9 @@ "7654457": { "vendor": "Fiberhome Telecommunication Technologies Co.,LTD" }, + "7654464": { + "vendor": "Apple, Inc." + }, "7654668": { "vendor": "Smith Myers Communications Ltd." }, @@ -70851,7 +71058,7 @@ "vendor": "Juniper Networks" }, "7661510": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7662015": { "vendor": "Huawei Technologies Co.,Ltd" @@ -70866,7 +71073,7 @@ "vendor": "New H3C Technologies Co., Ltd" }, "7662312": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7662464": { "vendor": "Samsung Electronics Co.,Ltd" @@ -70905,7 +71112,7 @@ "vendor": "Maxwell Forest" }, "7665170": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7665180": { "vendor": "HTC Corporation" @@ -70913,6 +71120,9 @@ "7665249": { "vendor": "Schneider Electric Fire & Security Oy" }, + "7665274": { + "vendor": "Samsung Electronics Co.,Ltd" + }, "7665446": { "vendor": "Neuron Robotics" }, @@ -71036,6 +71246,9 @@ "7868892": { "vendor": "XIAOMI Electronics,CO.,LTD" }, + "7868990": { + "vendor": "Tecno Mobile Limited" + }, "7869112": { "vendor": "Orantek Limited" }, @@ -71084,6 +71297,9 @@ "7871997": { "vendor": "Jabil Inc" }, + "7872184": { + "vendor": "Shenzhen iComm Semiconductor CO.,LTD" + }, "7872273": { "vendor": "RAB Lighting" }, @@ -71118,7 +71334,7 @@ "vendor": "Samsung Electronics Co.,Ltd" }, "7873454": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7873625": { "vendor": "Alcatel-Lucent Enterprise" @@ -71375,6 +71591,9 @@ "7886768": { "vendor": "Gertec Brasil Ltda" }, + "7886916": { + "vendor": "Hangzhou Sciener Smart Technology Co., Ltd." + }, "7886944": { "vendor": "Huawei Technologies Co.,Ltd" }, @@ -71472,7 +71691,7 @@ "vendor": "Shenyang Vibrotech Instruments Inc." }, "7891487": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7891593": { "vendor": "Huawei Technologies Co.,Ltd" @@ -71499,7 +71718,7 @@ "vendor": "Sichuan Tianyi Comheart Telecom Co.,LTD" }, "7893404": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7893597": { "vendor": "Cisco Systems, Inc" @@ -71624,6 +71843,9 @@ "7901852": { "vendor": "Intel Corporate" }, + "7902147": { + "vendor": "Hui Zhou Gaoshengda Technology Co.,LTD" + }, "7902388": { "vendor": "Sercomm Corporation." }, @@ -71637,7 +71859,7 @@ "vendor": "zte corporation" }, "7902852": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "7902883": { "vendor": "Extreme Networks Headquarters" @@ -72357,7 +72579,7 @@ "vendor": "Fn-Link Technology Limited" }, "8136244": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "8136292": { "vendor": "Sagemcom Broadband SAS" @@ -72419,6 +72641,9 @@ "8140280": { "vendor": "Zhejiang Tmall Technology Co., Ltd." }, + "8140326": { + "vendor": "Huawei Technologies Co.,Ltd" + }, "8140902": { "vendor": "Texas Instruments" }, @@ -72984,7 +73209,7 @@ "vendor": "Renesas Electronics (Penang) Sdn. Bhd." }, "8175537": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "8175653": { "vendor": "Palo Alto Networks" @@ -73040,6 +73265,9 @@ "8177534": { "vendor": "Fiberhome Telecommunication Technologies Co.,LTD" }, + "8177552": { + "vendor": "Palo Alto Networks" + }, "8177835": { "vendor": "Acro Associates, Inc." }, @@ -73082,6 +73310,9 @@ "8180163": { "vendor": "Apple, Inc." }, + "8180442": { + "vendor": "Apple, Inc." + }, "8180490": { "vendor": "Inventec Corporation" }, @@ -73956,7 +74187,7 @@ "vendor": "Apple, Inc." }, "8427185": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "8427210": { "vendor": "Hon Hai Precision Ind. Co.,Ltd." @@ -74030,6 +74261,9 @@ "8433236": { "vendor": "Tp-Link Technologies Co.,Ltd." }, + "8433433": { + "vendor": "Apple, Inc." + }, "8433610": { "vendor": "Shenzhen Cudy Technology Co., Ltd." }, @@ -74256,7 +74490,7 @@ "vendor": "New H3C Technologies Co., Ltd" }, "8447296": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "8447568": { "vendor": "Apple, Inc." @@ -74313,7 +74547,7 @@ "vendor": "Meta Platforms Technologies, LLC" }, "8451331": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "8451475": { "vendor": "IRCO Sistemas de Telecomunicación S.A." @@ -74730,7 +74964,7 @@ "vendor": "Hyperloop Technologies, Inc dba Virgin Hyperloop" }, "8675744": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "8675875": { "vendor": "Shenzhen Coship Electronics Co., Ltd." @@ -74970,7 +75204,7 @@ "vendor": "Cathay Communication Co.,Ltd" }, "8689368": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "8689592": { "vendor": "Memjet Inc." @@ -75147,7 +75381,7 @@ "vendor": "Texas Instruments" }, "8698729": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "8699474": { "vendor": "Huawei Technologies Co.,Ltd" @@ -75297,7 +75531,7 @@ "vendor": "Chuango Security Technology Corporation" }, "8708184": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "8708899": { "vendor": "Green Wave Telecommunication SDN BHD" @@ -75479,6 +75713,9 @@ "8916192": { "vendor": "Texas Instruments" }, + "8916613": { + "vendor": "Shenzhen Boomtech Industrial Corporation" + }, "8916752": { "vendor": "Huami Information Technology Co.,Ltd." }, @@ -75563,6 +75800,9 @@ "8921571": { "vendor": "Nebusens, S.L." }, + "8921634": { + "vendor": "VusionGroup" + }, "8921778": { "vendor": "Chipsea Technologies (Shenzhen) Corp." }, @@ -75912,7 +76152,7 @@ "vendor": "SC Professional Trading Co., Ltd." }, "8942001": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "8942053": { "vendor": "Amazon Technologies Inc." @@ -76056,7 +76296,7 @@ "vendor": "Unified Packet Systems Crop" }, "8951374": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "8951381": { "vendor": "Zitte corporation" @@ -76241,6 +76481,9 @@ "8961217": { "vendor": "Huawei Technologies Co.,Ltd" }, + "8961289": { + "vendor": "Netis Technology Co., Ltd." + }, "8961349": { "vendor": "Samsung Electronics Co.,Ltd" }, @@ -76283,6 +76526,9 @@ "8963045": { "vendor": "Betop Techonologies" }, + "8963214": { + "vendor": "Uneeviu Technologies India Private Limited" + }, "8963622": { "vendor": "Logitech, Inc" }, @@ -76440,7 +76686,7 @@ "vendor": "Cudo Communication Co., Ltd." }, "8974102": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "8974351": { "vendor": "Miraeil" @@ -76578,7 +76824,7 @@ "vendor": "Apple, Inc." }, "9177588": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9178247": { "vendor": "Nokia" @@ -76730,6 +76976,9 @@ "9188183": { "vendor": "HiteVision Digital Media Technology Co.,Ltd." }, + "9188246": { + "vendor": "Apple, Inc." + }, "9188353": { "vendor": "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" }, @@ -76896,7 +77145,7 @@ "vendor": "ASR Microelectronics (Shanghai) Co., Ltd." }, "9198117": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9198273": { "vendor": "Huawei Device Co., Ltd." @@ -76908,7 +77157,7 @@ "vendor": "Beijing Xiaomi Electronics Co., Ltd." }, "9198576": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9198624": { "vendor": "Vantiva USA LLC" @@ -76950,7 +77199,7 @@ "vendor": "EM Microelectronic" }, "9200035": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9200651": { "vendor": "Beyond Devices d.o.o." @@ -77019,7 +77268,7 @@ "vendor": "Fiberhome Telecommunication Technologies Co.,LTD" }, "9205311": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9205441": { "vendor": "Goden Tech Limited" @@ -77073,7 +77322,7 @@ "vendor": "Lytro, Inc." }, "9207611": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9208102": { "vendor": "Arcom" @@ -77156,6 +77405,9 @@ "9210555": { "vendor": "Beijing Orient View Technology Co., Ltd." }, + "9210696": { + "vendor": "Silicon Laboratories" + }, "9210755": { "vendor": "Texas Instruments" }, @@ -77664,7 +77916,7 @@ "vendor": "Digimore Electronics Co., Ltd" }, "9440715": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9440899": { "vendor": "Monico Monitoring, Inc." @@ -77727,7 +77979,7 @@ "vendor": "EM Microelectronic" }, "9444042": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9444110": { "vendor": "Fujitsu Technology Solutions GmbH" @@ -77889,7 +78141,7 @@ "vendor": "Fiberhome Telecommunication Technologies Co.,LTD" }, "9453227": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9453546": { "vendor": "Huawei Technologies Co.,Ltd" @@ -78270,7 +78522,7 @@ "vendor": "Diehl BGT Defence GmbH & Co. KG" }, "9474906": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9475082": { "vendor": "Analog Devices, Inc" @@ -78315,7 +78567,7 @@ "vendor": "Apple, Inc." }, "9477501": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9477548": { "vendor": "Infinix mobility limited" @@ -78420,7 +78672,7 @@ "vendor": "Dell Inc." }, "9482548": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9482564": { "vendor": "Samsung Electronics Co.,Ltd" @@ -78489,7 +78741,7 @@ "vendor": "zte corporation" }, "9488274": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9488344": { "vendor": "zte corporation" @@ -78653,6 +78905,9 @@ "9498329": { "vendor": "Universal De Desarrollos Electrónicos, Sa" }, + "9498442": { + "vendor": "Dongguan Liesheng Electronic Co., Ltd." + }, "9498472": { "vendor": "Zyxel Communications Corporation" }, @@ -78929,6 +79184,9 @@ "9710191": { "vendor": "Ubiquiti Inc" }, + "9710440": { + "vendor": "Apple, Inc." + }, "9710771": { "vendor": "HUMAX Co., Ltd." }, @@ -79143,7 +79401,7 @@ "vendor": "Pason Systems" }, "9724521": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9724786": { "vendor": "vivo Mobile Communication Co., Ltd." @@ -79245,7 +79503,7 @@ "vendor": "Surveillance Pro Corporation" }, "9734012": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9734112": { "vendor": "Xiaomi Communications Co Ltd" @@ -79287,7 +79545,7 @@ "vendor": "Arista Networks" }, "9736143": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9736174": { "vendor": "Verizon Telematics" @@ -79403,6 +79661,9 @@ "9742268": { "vendor": "BodyMedia, Inc." }, + "9742736": { + "vendor": "Espressif Inc." + }, "9742760": { "vendor": "Texas Instruments" }, @@ -79572,7 +79833,7 @@ "vendor": "zte corporation" }, "9751737": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9751980": { "vendor": "Creowave Oy" @@ -79740,7 +80001,7 @@ "vendor": "Fylde Micro Ltd" }, "9758917": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9759082": { "vendor": "Apple, Inc." @@ -79823,6 +80084,9 @@ "9762733": { "vendor": "Juniper Networks" }, + "9762750": { + "vendor": "Sercomm Philippines Inc" + }, "9762855": { "vendor": "Shanghai Imilab Technology Co.Ltd" }, @@ -80196,7 +80460,7 @@ "vendor": "Huawei Technologies Co.,Ltd" }, "9980746": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9980897": { "vendor": "Hewlett Packard" @@ -80304,7 +80568,7 @@ "vendor": "Apple, Inc." }, "9988925": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "9989212": { "vendor": "Jiangxi Gosun Guard Security Co.,Ltd" @@ -80835,10 +81099,10 @@ "vendor": "Xiaomi Communications Co Ltd" }, "10024833": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "10024919": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "10025153": { "vendor": "IDT Technology Limited" @@ -81120,7 +81384,7 @@ "vendor": "Canon Inc." }, "10236966": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "10237315": { "vendor": "Nipro Diagnostics, Inc" @@ -81185,6 +81449,9 @@ "10242041": { "vendor": "LJU Automatisierungstechnik GmbH" }, + "10242345": { + "vendor": "Huawei Technologies Co.,Ltd" + }, "10242386": { "vendor": "Dongguan Liesheng Electronic Co., Ltd." }, @@ -81365,6 +81632,9 @@ "10249879": { "vendor": "Cisco Systems, Inc" }, + "10250198": { + "vendor": "Intel Corporate" + }, "10250331": { "vendor": "Octonion SA" }, @@ -81470,6 +81740,9 @@ "10257025": { "vendor": "vivo Mobile Communication Co., Ltd." }, + "10257158": { + "vendor": "Samsung Electronics Co.,Ltd" + }, "10257343": { "vendor": "PRO-VISION, Inc." }, @@ -81653,6 +81926,9 @@ "10266328": { "vendor": "Fiberhome Telecommunication Technologies Co.,LTD" }, + "10267064": { + "vendor": "Cisco Systems, Inc" + }, "10267077": { "vendor": "Apple, Inc." }, @@ -81683,6 +81959,9 @@ "10268680": { "vendor": "Ubiquitous Computing Technology Corporation" }, + "10269008": { + "vendor": "Intel Corporate" + }, "10269148": { "vendor": "Earda Technologies co Ltd" }, @@ -81765,7 +82044,7 @@ "vendor": "Amazon Technologies Inc." }, "10275068": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "10275152": { "vendor": "Baumer Holding" @@ -81938,6 +82217,9 @@ "10285959": { "vendor": "Apple, Inc." }, + "10285996": { + "vendor": "Apple, Inc." + }, "10286222": { "vendor": "Apple, Inc." }, @@ -82368,7 +82650,10 @@ "vendor": "Cisco Systems, Inc" }, "10507742": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" + }, + "10507820": { + "vendor": "Samsung Electronics Co.,Ltd" }, "10507954": { "vendor": "Harman/Becker Automotive Systems GmbH" @@ -82440,7 +82725,7 @@ "vendor": "GD Midea Air-Conditioning Equipment Co.,Ltd." }, "10512510": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "10512756": { "vendor": "Honor Device Co., Ltd." @@ -82619,6 +82904,9 @@ "10523080": { "vendor": "zte corporation" }, + "10523082": { + "vendor": "Nokia Solutions and Networks GmbH & Co. KG" + }, "10523144": { "vendor": "Tuya Smart Inc." }, @@ -82760,6 +83048,9 @@ "10530950": { "vendor": "Hirschmann Automation and Control GmbH" }, + "10531005": { + "vendor": "Samsung Electronics Co.,Ltd" + }, "10531072": { "vendor": "ShenZhen Cando Electronics Co.,Ltd" }, @@ -82836,7 +83127,7 @@ "vendor": "Sygn House Inc." }, "10536290": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "10536329": { "vendor": "Intel Corporate" @@ -82989,7 +83280,7 @@ "vendor": "Intel Corporate" }, "10545070": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "10545627": { "vendor": "Ningbo FreeWings Technologies Co.,Ltd" @@ -83012,6 +83303,9 @@ "10546683": { "vendor": "Quectel Wireless Solutions Co.,Ltd." }, + "10546714": { + "vendor": "Apple, Inc." + }, "10547076": { "vendor": "Seine Image Int'l Co., Ltd" }, @@ -83096,6 +83390,9 @@ "10748208": { "vendor": "ABIsystems Co., LTD" }, + "10748599": { + "vendor": "Amazon Technologies Inc." + }, "10748601": { "vendor": "Intel Corporate" }, @@ -83109,7 +83406,7 @@ "vendor": "STA Infinity LLP" }, "10749398": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "10749673": { "vendor": "Texas Instruments" @@ -83184,7 +83481,7 @@ "vendor": "Weifang Goertek Electronics Co.,Ltd" }, "10753416": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "10753728": { "vendor": "Apple, Inc." @@ -83382,7 +83679,7 @@ "vendor": "Huawei Device Co., Ltd." }, "10765196": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "10765521": { "vendor": "Wingtech Group (HongKong)Limited" @@ -83552,6 +83849,9 @@ "10776185": { "vendor": "DFT System Co.Ltd" }, + "10776231": { + "vendor": "Dx Antenna Co.,Ltd." + }, "10776790": { "vendor": "Motorola Mobility LLC, a Lenovo Company" }, @@ -83589,7 +83889,7 @@ "vendor": "KLINFO Corp" }, "10779300": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "10779343": { "vendor": "Vibicom Communications Inc." @@ -83715,7 +84015,7 @@ "vendor": "Hitachi Industrial Equipment Systems Co.,Ltd" }, "10786835": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "10787143": { "vendor": "Huawei Technologies Co.,Ltd" @@ -83912,6 +84212,9 @@ "10797921": { "vendor": "Apple, Inc." }, + "10798014": { + "vendor": "Xiaomi Communications Co Ltd" + }, "10798064": { "vendor": "Intel Corporate" }, @@ -84111,7 +84414,7 @@ "vendor": "Samsung Electronics Co.,Ltd" }, "10808654": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "10808919": { "vendor": "Seiko Epson Corporation" @@ -84155,6 +84458,9 @@ "10811457": { "vendor": "Apple, Inc." }, + "10811681": { + "vendor": "Apple, Inc." + }, "10811699": { "vendor": "Intel Corporate" }, @@ -84228,7 +84534,7 @@ "vendor": "Texas Instruments" }, "11014652": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "11014918": { "vendor": "vivo Mobile Communication Co., Ltd." @@ -84621,7 +84927,7 @@ "vendor": "vivo Mobile Communication Co., Ltd." }, "11038813": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "11038885": { "vendor": "UniComm Inc." @@ -84783,7 +85089,7 @@ "vendor": "Apple, Inc." }, "11048909": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "11048924": { "vendor": "Ibm" @@ -84834,7 +85140,7 @@ "vendor": "Samsung Electronics Co.,Ltd" }, "11050988": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "11051145": { "vendor": "Tactical Communications" @@ -85140,7 +85446,7 @@ "vendor": "Huawei Technologies Co.,Ltd" }, "11072989": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "11072993": { "vendor": "Shenzhen Shokz Co., Ltd." @@ -85274,6 +85580,9 @@ "11275774": { "vendor": "Ekon GmbH - myGEKKO" }, + "11276295": { + "vendor": "Arcadyan Corporation" + }, "11276755": { "vendor": "Suzhou HOTEK Video Technology Co. Ltd" }, @@ -85313,6 +85622,9 @@ "11277869": { "vendor": "Hewlett Packard" }, + "11278046": { + "vendor": "Intel Corporate" + }, "11278082": { "vendor": "Fibar Group sp. z o.o." }, @@ -86028,7 +86340,7 @@ "vendor": "Shenzhen Fenda Technology Co., Ltd" }, "11318035": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "11318197": { "vendor": "Huawei Technologies Co.,Ltd" @@ -86117,6 +86429,9 @@ "11322773": { "vendor": "Graphite Systems" }, + "11322804": { + "vendor": "Huawei Technologies Co.,Ltd" + }, "11322978": { "vendor": "MitraStar Technology Corp." }, @@ -86217,7 +86532,7 @@ "vendor": "Marquardt Schaltsysteme SCS" }, "11328328": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "11328474": { "vendor": "Shenzhen Geniatech Inc, Ltd" @@ -86301,7 +86616,7 @@ "vendor": "Universal Electronics, Inc." }, "11332736": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "11332741": { "vendor": "eero inc." @@ -86342,6 +86657,9 @@ "11334700": { "vendor": "Earda Technologies co Ltd" }, + "11334771": { + "vendor": "iRobot Corporation" + }, "11335142": { "vendor": "Cisco Systems, Inc" }, @@ -86355,7 +86673,7 @@ "vendor": "Chengdu Higon Integrated Circuit Design Co,. Ltd." }, "11335884": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "11336048": { "vendor": "Huawei Technologies Co.,Ltd" @@ -86736,7 +87054,7 @@ "vendor": "Nokia Corporation" }, "11558356": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "11559048": { "vendor": "Intel Corporate" @@ -86817,7 +87135,7 @@ "vendor": "Huawei Technologies Co.,Ltd" }, "11564972": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "11565113": { "vendor": "GD Midea Air-Conditioning Equipment Co.,Ltd." @@ -86877,7 +87195,7 @@ "vendor": "I-sys Corp" }, "11568086": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "11568126": { "vendor": "Dell Inc." @@ -86942,11 +87260,14 @@ "11571511": { "vendor": "ISis ImageStream Internet Solutions, Inc" }, + "11571712": { + "vendor": "Apple, Inc." + }, "11571786": { "vendor": "Sagemcom Broadband SAS" }, "11572059": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "11572597": { "vendor": "Tp-Link Technologies Co.,Ltd." @@ -87053,6 +87374,9 @@ "11578066": { "vendor": "Sichuan tianyi kanghe communications co., LTD" }, + "11578498": { + "vendor": "China Dragon Technology Limited" + }, "11578578": { "vendor": "zte corporation" }, @@ -87224,6 +87548,9 @@ "11587740": { "vendor": "Samsung Electronics Co.,Ltd" }, + "11588054": { + "vendor": "Nokia Shanghai Bell Co., Ltd." + }, "11588216": { "vendor": "Texas Instruments" }, @@ -87255,7 +87582,7 @@ "vendor": "Cera Electronique" }, "11590393": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "11590895": { "vendor": "Intel Corporate" @@ -87473,6 +87800,9 @@ "11799589": { "vendor": "Palo Alto Networks" }, + "11800070": { + "vendor": "Third Reality, Inc" + }, "11800214": { "vendor": "Heran" }, @@ -87938,6 +88268,9 @@ "11831568": { "vendor": "Coster T.E. S.P.A." }, + "11831664": { + "vendor": "IGEN Tech Co., Ltd." + }, "11831818": { "vendor": "Espressif Inc." }, @@ -88250,6 +88583,9 @@ "11851197": { "vendor": "Intel Corporate" }, + "11851237": { + "vendor": "Samsung Electronics Co.,Ltd" + }, "11851342": { "vendor": "Caldero Limited" }, @@ -88404,7 +88740,7 @@ "vendor": "Compal Broadband Networks, Inc." }, "11858664": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "11858723": { "vendor": "Petatel Inc." @@ -88442,6 +88778,9 @@ "11861109": { "vendor": "SEMA Electronics(HK) CO.,LTD" }, + "11861117": { + "vendor": "AVM Audiovisuelles Marketing und Computersysteme GmbH" + }, "11861644": { "vendor": "Centro Sicurezza Italia SpA" }, @@ -88515,7 +88854,7 @@ "vendor": "Ohsung" }, "12064281": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "12064351": { "vendor": "LG Innotek" @@ -88745,6 +89084,9 @@ "12079529": { "vendor": "Nokia" }, + "12079840": { + "vendor": "Beijing Xiaomi Electronics Co.,Ltd" + }, "12080044": { "vendor": "Apple, Inc." }, @@ -88976,6 +89318,9 @@ "12094505": { "vendor": "GD Midea Air-Conditioning Equipment Co.,Ltd." }, + "12094507": { + "vendor": "Sagemcom Broadband SAS" + }, "12094738": { "vendor": "Apple, Inc." }, @@ -89522,6 +89867,9 @@ "12191706": { "vendor": "Infinix mobility limited" }, + "12201468": { + "vendor": "Linkwing(Dongguan)Intelligent Electronics Co.,Ltd" + }, "12202068": { "vendor": "George Wilson Industries Ltd" }, @@ -89757,7 +90105,7 @@ "vendor": "Realme Chongqing Mobile Telecommunications Corp.,Ltd." }, "12332616": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "12332790": { "vendor": "Huawei Device Co., Ltd." @@ -89870,6 +90218,9 @@ "12338478": { "vendor": "Knowledge Development for POF S.L." }, + "12338504": { + "vendor": "Beijing gpthink technology co.,LTD." + }, "12338523": { "vendor": "Samsung Electronics Co.,Ltd" }, @@ -89946,7 +90297,7 @@ "vendor": "Cisco Systems, Inc" }, "12344277": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "12344343": { "vendor": "Qingdao Intelligent&Precise Electronics Co.,Ltd." @@ -89997,7 +90348,7 @@ "vendor": "Genexis International B.V." }, "12346443": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "12346585": { "vendor": "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" @@ -90119,6 +90470,9 @@ "12353444": { "vendor": "Xiaomi Communications Co Ltd" }, + "12353614": { + "vendor": "Apple, Inc." + }, "12353823": { "vendor": "Ingate Systems" }, @@ -90383,6 +90737,9 @@ "12370490": { "vendor": "Thomson Video Networks" }, + "12370649": { + "vendor": "Private" + }, "12370715": { "vendor": "Kygo Life A" }, @@ -90411,7 +90768,7 @@ "vendor": "Cisco SPVTG" }, "12372661": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "12373317": { "vendor": "Voismart" @@ -90636,7 +90993,7 @@ "vendor": "Juniper Networks" }, "12584386": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "12584460": { "vendor": "Huawei Technologies Co.,Ltd" @@ -91103,6 +91460,9 @@ "12616928": { "vendor": "Huawei Technologies Co.,Ltd" }, + "12616959": { + "vendor": "GD Midea Air-Conditioning Equipment Co.,Ltd." + }, "12617036": { "vendor": "Ragentek Technology Group" }, @@ -91125,7 +91485,7 @@ "vendor": "Samsung Electronics Co.,Ltd" }, "12618155": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "12618336": { "vendor": "AltoBeam Inc." @@ -91173,7 +91533,7 @@ "vendor": "zte corporation" }, "12620853": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "12620973": { "vendor": "zte corporation" @@ -91236,7 +91596,7 @@ "vendor": "zte corporation" }, "12623885": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "12624059": { "vendor": "D-Link International" @@ -91310,6 +91670,9 @@ "12628225": { "vendor": "zte corporation" }, + "12628527": { + "vendor": "Apple, Inc." + }, "12628793": { "vendor": "Comigo Ltd." }, @@ -91389,7 +91752,7 @@ "vendor": "Ruckus Wireless" }, "12633378": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "12633449": { "vendor": "Shanghai Lynuc Cnc Technology Co.,Ltd" @@ -91457,6 +91820,9 @@ "12637291": { "vendor": "Huawei Device Co., Ltd." }, + "12637666": { + "vendor": "Samsung Electronics Co.,Ltd" + }, "12637706": { "vendor": "Texas Instruments" }, @@ -92696,6 +93062,9 @@ "12906229": { "vendor": "II-VI Incorporated" }, + "12906301": { + "vendor": "Samsung Electronics Co.,Ltd" + }, "12906352": { "vendor": "Home Skinovations" }, @@ -93030,7 +93399,7 @@ "vendor": "Microsoft Corporation" }, "13123508": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "13123625": { "vendor": "Fiberhome Telecommunication Technologies Co.,LTD" @@ -93102,7 +93471,7 @@ "vendor": "Extreme Networks Headquarters" }, "13128289": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "13128673": { "vendor": "Beijing Bytedance Network Technology Co., Ltd" @@ -93162,7 +93531,7 @@ "vendor": "Sony Interactive Entertainment Inc." }, "13132796": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "13132999": { "vendor": "zte corporation" @@ -93204,7 +93573,7 @@ "vendor": "Apple, Inc." }, "13135907": { - "vendor": "Altice Labs S.A." + "vendor": "Altice Labs" }, "13136084": { "vendor": "IBO Technology Co,Ltd" @@ -93443,6 +93812,9 @@ "13149935": { "vendor": "Samsung Electronics Co.,Ltd" }, + "13149954": { + "vendor": "Hangzhou Hikvision Digital Technology Co.,Ltd." + }, "13149962": { "vendor": "Verizon Business" }, @@ -93462,7 +93834,7 @@ "vendor": "Goyoo Networks Inc." }, "13150753": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "13150805": { "vendor": "Hunan Comtom Electronic Incorporated Co.,Ltd" @@ -94149,7 +94521,7 @@ "vendor": "Hewlett Packard" }, "13385337": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "13385501": { "vendor": "HMS Industrial Networks SLU" @@ -94335,7 +94707,7 @@ "vendor": "Huawei Technologies Co.,Ltd" }, "13395373": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "13395466": { "vendor": "Apple, Inc." @@ -94407,7 +94779,7 @@ "vendor": "Filmetrics Inc." }, "13399522": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "13399610": { "vendor": "zte corporation" @@ -94446,7 +94818,7 @@ "vendor": "Nikkiso Co., Ltd." }, "13401399": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "13401435": { "vendor": "Telink Semiconductor (Shanghai) Co., Ltd." @@ -94623,7 +94995,7 @@ "vendor": "Itel Mobile Limited" }, "13411426": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "13411503": { "vendor": "Shenzhen Sowell Technology Co., LTD" @@ -94691,6 +95063,9 @@ "13416388": { "vendor": "Huawei Technologies Co.,Ltd" }, + "13416542": { + "vendor": "Shenzhen Phaten Tech. LTD" + }, "13416584": { "vendor": "AnB Securite s.a." }, @@ -95165,6 +95540,9 @@ "13641914": { "vendor": "Realme Chongqing MobileTelecommunications Corp Ltd" }, + "13642410": { + "vendor": "Infinix mobility limited" + }, "13642528": { "vendor": "Apple, Inc." }, @@ -95205,7 +95583,7 @@ "vendor": "Texas Instruments" }, "13646259": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "13646314": { "vendor": "NetApp" @@ -95339,6 +95717,9 @@ "13653883": { "vendor": "Intel Corporate" }, + "13653886": { + "vendor": "Intel Corporate" + }, "13653893": { "vendor": "Pantech Co., Ltd." }, @@ -95462,6 +95843,9 @@ "13659000": { "vendor": "Apple, Inc." }, + "13659191": { + "vendor": "ikeja wireless (pty) ltd" + }, "13659592": { "vendor": "Huawei Technologies Co.,Ltd" }, @@ -95916,7 +96300,7 @@ "vendor": "Murata Manufacturing Co., Ltd." }, "13690189": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "13690241": { "vendor": "Apple, Inc." @@ -96027,7 +96411,7 @@ "vendor": "Delphian Systems LLC" }, "13894861": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "13894886": { "vendor": "Broadcom Limited" @@ -96036,7 +96420,7 @@ "vendor": "Juniper Networks" }, "13895064": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "13895134": { "vendor": "eero inc." @@ -96048,7 +96432,7 @@ "vendor": "Beijing Lanxum Computer Technology CO.,LTD." }, "13896361": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "13896474": { "vendor": "HTC Corporation" @@ -96168,7 +96552,7 @@ "vendor": "Zimory GmbH" }, "13904911": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "13904957": { "vendor": "Sky Light Digital Limited" @@ -96264,7 +96648,7 @@ "vendor": "eero inc." }, "13909963": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "13910224": { "vendor": "OCOSMOS Co., LTD" @@ -96383,6 +96767,9 @@ "13916160": { "vendor": "Fiberhome Telecommunication Technologies Co.,LTD" }, + "13916484": { + "vendor": "tonies GmbH" + }, "13916735": { "vendor": "Juniper Networks" }, @@ -96401,12 +96788,18 @@ "13917663": { "vendor": "Pegatron Corporation" }, + "13917833": { + "vendor": "Motorola Mobility LLC, a Lenovo Company" + }, "13917932": { "vendor": "Beijing Xiaomi Electronics Co., Ltd." }, "13917989": { "vendor": "Shenzhen YOUHUA Technology Co., Ltd" }, + "13917996": { + "vendor": "zte corporation" + }, "13918074": { "vendor": "Huawei Technologies Co.,Ltd" }, @@ -96495,7 +96888,7 @@ "vendor": "Huawei Technologies Co.,Ltd" }, "13921389": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "13921471": { "vendor": "Goodrich ISR" @@ -96798,7 +97191,7 @@ "vendor": "Micro World" }, "13937538": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "13937613": { "vendor": "Hui Zhou Gaoshengda Technology Co.,LTD" @@ -96837,7 +97230,7 @@ "vendor": "Le Shi Zhi Xin Electronic Technology (Tianjin) Limited" }, "13939322": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "13939774": { "vendor": "Messcomp Datentechnik GmbH" @@ -97323,7 +97716,7 @@ "vendor": "Plenom A/S" }, "14165282": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "14165424": { "vendor": "Rockeetech Systems Co.,Ltd." @@ -97664,6 +98057,9 @@ "14184791": { "vendor": "Lenovo Mobile Communication Technology Ltd." }, + "14185589": { + "vendor": "Apple, Inc." + }, "14185621": { "vendor": "zte corporation" }, @@ -98504,6 +98900,9 @@ "14429802": { "vendor": "HCT. Co., Ltd." }, + "14429847": { + "vendor": "Quectel Wireless Solutions Co.,Ltd." + }, "14429955": { "vendor": "Step forward Group Co., Ltd." }, @@ -98592,7 +98991,7 @@ "vendor": "Samsung Electronics Co.,Ltd" }, "14435607": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "14435654": { "vendor": "Intel Corporate" @@ -98861,6 +99260,9 @@ "14454421": { "vendor": "Silicon Laboratories" }, + "14454793": { + "vendor": "Intel Corporate" + }, "14454816": { "vendor": "Ruru Tek Private Limited" }, @@ -98967,7 +99369,7 @@ "vendor": "Raspberry Pi Trading Ltd" }, "14460467": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "14460605": { "vendor": "Beijing Lanbo Technology Co., Ltd." @@ -99516,7 +99918,7 @@ "vendor": "Richer Link Technologies CO.,LTD" }, "14688770": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "14689239": { "vendor": "Sleep Number" @@ -99701,6 +100103,9 @@ "14699538": { "vendor": "Realme Chongqing Mobile Telecommunications Corp.,Ltd." }, + "14700125": { + "vendor": "Huawei Technologies Co.,Ltd" + }, "14700154": { "vendor": "Nanjing Qinheng Microelectronics Co., Ltd." }, @@ -99905,6 +100310,9 @@ "14714099": { "vendor": "High Grade Controls Corporation" }, + "14714189": { + "vendor": "LG Innotek" + }, "14714266": { "vendor": "Shenzhen Rf-Link Technology Co.,Ltd." }, @@ -100095,7 +100503,7 @@ "vendor": "zte corporation" }, "14726922": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "14726958": { "vendor": "ShenZhen Qualmesh Technology Co.,Ltd." @@ -100104,7 +100512,7 @@ "vendor": "Bosch Automotive Products (Suzhou) Co., Ltd. Changzhou Branch" }, "14727089": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "14727501": { "vendor": "Shenzhen Bilian Electronic Co.,Ltd" @@ -100761,7 +101169,7 @@ "vendor": "Suttle Apparatus" }, "14964544": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "14964584": { "vendor": "vivo Mobile Communication Co., Ltd." @@ -100830,7 +101238,7 @@ "vendor": "Cisco Systems, Inc" }, "14967881": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "14968164": { "vendor": "Shenzhen Ktc Technology Co.,Ltd" @@ -100956,7 +101364,7 @@ "vendor": "Huawei Technologies Co.,Ltd" }, "14975897": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "14976041": { "vendor": "New H3C Technologies Co., Ltd" @@ -101061,7 +101469,7 @@ "vendor": "Freebox Sas" }, "14982942": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "14983654": { "vendor": "Alcatel-Lucent Shanghai Bell Co., Ltd" @@ -101382,7 +101790,7 @@ "vendor": "Schneider Electric USA" }, "15005531": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "15005601": { "vendor": "Datafox GmbH" @@ -101655,7 +102063,7 @@ "vendor": "Xaptec GmbH" }, "15217537": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "15217726": { "vendor": "Beijing Infosec Technologies Co., LTD." @@ -101694,7 +102102,7 @@ "vendor": "Geodesic Ltd." }, "15220476": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "15220583": { "vendor": "Huawei Device Co., Ltd." @@ -101889,7 +102297,7 @@ "vendor": "Supercomputers and Neurocomputers Research Center" }, "15232338": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "15232340": { "vendor": "Digit Mobile Inc" @@ -101912,6 +102320,9 @@ "15232580": { "vendor": "zte corporation" }, + "15232685": { + "vendor": "Guangzhou Gizwits loT Technology Co.,Ltd" + }, "15232824": { "vendor": "Chongqing Fugui Electronics Co.,Ltd." }, @@ -101973,7 +102384,7 @@ "vendor": "Beijing Sankuai Online Technology Co.,Ltd" }, "15237723": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "15238309": { "vendor": "Intel Corporate" @@ -101997,7 +102408,7 @@ "vendor": "Shenzhen SC Technologies Co.,LTD" }, "15239468": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "15240488": { "vendor": "Apple, Inc." @@ -102455,6 +102866,9 @@ "15264474": { "vendor": "Denkovi Assembly Electronics LTD" }, + "15264506": { + "vendor": "Qingdao Haier Technology Co.,Ltd" + }, "15264529": { "vendor": "Texas Instruments" }, @@ -102474,7 +102888,7 @@ "vendor": "Dongguan Liesheng Electronic Co.Ltd" }, "15265029": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "15265238": { "vendor": "Fortinet, Inc." @@ -102540,7 +102954,7 @@ "vendor": "Nokia Shanghai Bell Co., Ltd." }, "15268136": { - "vendor": "Rftech Srl" + "vendor": "Enginko Srl" }, "15268308": { "vendor": "Huawei Technologies Co.,Ltd" @@ -102617,6 +103031,9 @@ "15384231": { "vendor": "Sonos, Inc." }, + "15391342": { + "vendor": "FUJIFILM Recording Media GmbH" + }, "15392136": { "vendor": "IEEE PES-PSRC Working Group H3, PC37.237" }, @@ -103065,7 +103482,7 @@ "vendor": "FADU, Inc." }, "15495319": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "15495643": { "vendor": "Reolink Innovation Limited" @@ -103190,6 +103607,9 @@ "15502498": { "vendor": "Ruckus Wireless" }, + "15502866": { + "vendor": "Nokia" + }, "15502967": { "vendor": "Intel Corporate" }, @@ -103308,7 +103728,7 @@ "vendor": "Apple, Inc." }, "15509824": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "15509873": { "vendor": "Hangzhou Hikvision Digital Technology Co.,Ltd." @@ -104307,7 +104727,7 @@ "vendor": "Phantom Intelligence" }, "15773573": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "15773716": { "vendor": "AVM Audiovisuelles Marketing und Computersysteme GmbH" @@ -104667,7 +105087,7 @@ "vendor": "SynaXG Technologies Pte. Ltd." }, "15793352": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "15793568": { "vendor": "Acurix Networks Pty Ltd" @@ -104748,7 +105168,7 @@ "vendor": "Samsung Electronics Co.,Ltd" }, "15994499": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "15994651": { "vendor": "Cisco Systems, Inc" @@ -104843,6 +105263,9 @@ "16000098": { "vendor": "Selcom Electronics (Shanghai) Co., Ltd" }, + "16000139": { + "vendor": "Huawei Technologies Co.,Ltd" + }, "16000633": { "vendor": "Intel Corporate" }, @@ -105248,6 +105671,9 @@ "16024717": { "vendor": "Tp-Link Technologies Co.,Ltd." }, + "16025006": { + "vendor": "Senbiosys SA" + }, "16025030": { "vendor": "FDT Technologies" }, @@ -105798,7 +106224,7 @@ "vendor": "Henan Thinker Rail Transportation Research Inc." }, "16255934": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "16255947": { "vendor": "Cisco Systems, Inc" @@ -105966,7 +106392,7 @@ "vendor": "Apple, Inc." }, "16264640": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "16264716": { "vendor": "Texas Instruments" @@ -106239,7 +106665,7 @@ "vendor": "Intel Corporate" }, "16278489": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "16278629": { "vendor": "Anova Applied Electronics, Inc." @@ -106313,6 +106739,9 @@ "16282346": { "vendor": "Cisco Systems, Inc" }, + "16282394": { + "vendor": "zte corporation" + }, "16282516": { "vendor": "Netgear" }, @@ -106338,7 +106767,7 @@ "vendor": "Huawei Device Co., Ltd." }, "16283914": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "16283944": { "vendor": "zte corporation" @@ -106359,7 +106788,7 @@ "vendor": "FASTWEL INTERNATIONAL CO., LTD. Taiwan Branch" }, "16284538": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "16284556": { "vendor": "Amped Wireless" @@ -106407,7 +106836,7 @@ "vendor": "Texas Instruments" }, "16288567": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "16288796": { "vendor": "Kaishun Electronic Technology Co., Ltd. Beijing" @@ -106521,7 +106950,7 @@ "vendor": "Dinstar Technologies Co., Ltd." }, "16294039": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "16294280": { "vendor": "LED Roadway Lighting" @@ -106878,7 +107307,7 @@ "vendor": "Dipl.-Math. Michael Rauch" }, "16313765": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "16313774": { "vendor": "Mobiwire Mobiles(Ningbo) Co.,Ltd" @@ -106920,7 +107349,7 @@ "vendor": "Rulogic Inc." }, "16315698": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "16315788": { "vendor": "Apple, Inc." @@ -107306,6 +107735,9 @@ "16531419": { "vendor": "Hewlett Packard" }, + "16531452": { + "vendor": "Tozed Kangwei Tech Co.,Ltd" + }, "16531465": { "vendor": "zte corporation" }, @@ -107318,6 +107750,9 @@ "16532069": { "vendor": "Zhejiang Tmall Technology Co., Ltd." }, + "16532293": { + "vendor": "Xiaomi Communications Co Ltd" + }, "16532579": { "vendor": "Universal Audio, Inc" }, @@ -107378,6 +107813,9 @@ "16534996": { "vendor": "Universal Global Scientific Industrial Co., Ltd." }, + "16535149": { + "vendor": "Huawei Technologies Co.,Ltd" + }, "16535204": { "vendor": "Apple, Inc." }, @@ -107388,7 +107826,7 @@ "vendor": "SIMEX Sp. z o.o." }, "16535972": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "16535989": { "vendor": "Huawei Technologies Co.,Ltd" @@ -107517,7 +107955,7 @@ "vendor": "APRESIA Systems, Ltd." }, "16543671": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "16543790": { "vendor": "Sichuan AI-Link Technology Co., Ltd." @@ -107613,7 +108051,7 @@ "vendor": "StreamCCTV, LLC" }, "16551550": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "16551805": { "vendor": "Shenzhen Gongjin Electronics Co.,Lt" @@ -107720,6 +108158,9 @@ "16556934": { "vendor": "Shenzhen Chuangwei-Rgb Electronics Co.,Ltd" }, + "16557512": { + "vendor": "Apple, Inc." + }, "16557520": { "vendor": "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" }, @@ -107781,7 +108222,7 @@ "vendor": "Titan Products Ltd." }, "16559668": { - "vendor": "ARRIS Group, Inc." + "vendor": "Commscope" }, "16559978": { "vendor": "Qulsar Inc" @@ -107894,6 +108335,9 @@ "16568162": { "vendor": "IBM Corp" }, + "16568834": { + "vendor": "Realme Chongqing Mobile Telecommunications Corp.,Ltd." + }, "16568976": { "vendor": "Sky Uk Limited" }, @@ -108394,6 +108838,17 @@ } ] }, + "804777": { + "vendor": "", + "maskedFilters": [ + { + "mask": 28, + "vendors": { + "13501917560832": "Digital Telemedia Technology Private Limited" + } + } + ] + }, "810165": { "vendor": "", "maskedFilters": [ @@ -110495,7 +110950,7 @@ "66915650240512": "ible Technology Inc.", "66915651289088": "Wenet Technology Limited", "66915652337664": "pakflow", - "66915653386240": "Wly", + "66915653386240": "Shenzhen Longsight Technology Co., Ltd.", "66915654434816": "Vieletech", "66915655483392": "JP Morgan Chase Bank, N.A." } @@ -112332,13 +112787,21 @@ { "mask": 28, "vendors": { + "127704477204480": "Alcon Wireless Private Limited", "127704478253056": "Creative Synergy Ventures Pty. Ltd.", "127704479301632": "Suzhou Surinno Photonics Technology Co.Ltd.", "127704480350208": "alt digital s.r.o.", + "127704481398784": "Hive Media Control", + "127704482447360": "Dexter Laundry Inc.", "127704483495936": "Ezeconet", "127704484544512": "Annapurna labs", + "127704485593088": "Annapurna labs", + "127704486641664": "Sercomm Japan Corporation", + "127704487690240": "Annapurna labs", + "127704488738816": "International Technology And Telecomminication FZC", "127704489787392": "Hsptek Jsc", - "127704490835968": "Shenzhen smart-core technology co.,ltd." + "127704490835968": "Shenzhen smart-core technology co.,ltd.", + "127704491884544": "WDJ Hi-Tech Inc." } } ] @@ -113551,7 +114014,7 @@ "158667116642304": "North Pole Engineering, Inc.", "158667117690880": "Great Talent Technology Limited", "158667118739456": "Wrtnode technology Inc.", - "158667119788032": "mcf88 SRL", + "158667119788032": "Enginko Srl", "158667120836608": "Nuwa Robotics (HK) Limited Taiwan Branch", "158667121885184": "Ibm", "158667122933760": "CommandScape, Inc.", @@ -114571,6 +115034,31 @@ } ] }, + "11333522": { + "vendor": "", + "maskedFilters": [ + { + "mask": 28, + "vendors": { + "190144946634752": "Ceer National Automotive Company", + "190144947683328": "Dongguan Sunhans Technology Co., Ltd.", + "190144948731904": "EVA Precision Industrial Holdings Limited", + "190144949780480": "JiZhiKang (Beijing) Technology Co., Ltd", + "190144950829056": "Lift Controls Private Limited", + "190144951877632": "PROGNOST Systems GmbH", + "190144952926208": "shenzhen Microlumin Electronic Technology Co., Ltd.", + "190144953974784": "Abc Optic Solution Srl", + "190144955023360": "Hangzhou Lifesmart Technology Co., Ltd.", + "190144956071936": "DKK North America", + "190144957120512": "Techyauld Co.,Ltd", + "190144958169088": "Hunan ciwei intelligent Technology Co., LTD", + "190144959217664": "Ganzhou Dehuida Technology Co., Ltd", + "190144960266240": "Robotic Assistance Devices Residential Inc", + "190144961314816": "Jet Optoelectronics Co., Ltd." + } + } + ] + }, "11542401": { "vendor": "", "maskedFilters": [ @@ -114597,6 +115085,31 @@ } ] }, + "11552606": { + "vendor": "", + "maskedFilters": [ + { + "mask": 28, + "vendors": { + "193820566224896": "Shenzhen C & D Electronics Co., Ltd.", + "193820567273472": "tintech", + "193820568322048": "Lanmus Networks Ltd", + "193820569370624": "Qsic Pty Ltd", + "193820570419200": "Annapurna labs", + "193820571467776": "Omnitech Security", + "193820572516352": "DRS Sustainment Systems, Inc.", + "193820573564928": "MK Vision Joint Stock Company", + "193820574613504": "Shri Mohan Ji International", + "193820575662080": "MIVO Technology AB", + "193820576710656": "Shenzhen Jointelli Technologies Co.,Ltd", + "193820577759232": "Bright Oceans Inter-Telecom Corporation", + "193820578807808": "ikegawa co., Ltd", + "193820579856384": "Netitest", + "193820580904960": "NEO.NET Jakub Koperski" + } + } + ] + }, "11580243": { "vendor": "", "maskedFilters": [ @@ -117723,7 +118236,7 @@ "346853171200": "Carl Baasel Lasertechnik GmbH", "346853175296": "Foss NIRSystems, Inc.", "346853179392": "Tecnint HTE SRL", - "346853183488": "Raven Industries", + "346853183488": "Raven Industries Inc.", "346853187584": "GE Transportation Systems", "346853191680": "PIUSYS Co., Ltd.", "346853195776": "Kimmon Manufacturing Co., Ltd.", @@ -120785,7 +121298,7 @@ "346865721344": "Embed-It Og", "346865725440": "Lupatecnologia e Sistemas Ltda", "346865729536": "Inviso B.V.", - "346865733632": "TelGaAs, Inc.", + "346865733632": "Bascom Hunter", "346865737728": "Weiss Robotics GmbH & Co. KG", "346865741824": "Daiken Automacao Ltda", "346865745920": "Baudisch Electronic GmbH", @@ -126218,6 +126731,7 @@ "154066449993728": "Micron Systems", "154066449997824": "Aton Green Storage Spa", "154066450014208": "Siemens Energy Global GmbH & Co. KG", + "154066450018304": "Genius Vision Digital Private Limited", "154066450030592": "Intellisense Systems Inc.", "154066450034688": "Sanwa Supply Inc.", "154066450042880": "Monnit Corporation", @@ -126239,6 +126753,7 @@ "154066450173952": "Neetra Srl Sb", "154066450178048": "qiio AG", "154066450182144": "AixControl GmbH", + "154066450186240": "kousyuhaneturen", "154066450194432": "Gogo BA", "154066450198528": "MAG Audio LLC", "154066450202624": "El.En. Spa", @@ -126358,6 +126873,7 @@ "154066451193856": "Breas Medical AB", "154066451197952": "Sicon srl", "154066451214336": "M-Pulse GmbH & Co.KG", + "154066451226624": "J1-LED Intelligent Transport Systems Pty Ltd", "154066451247104": "Sicon srl", "154066451251200": "Tiflex", "154066451255296": "VERIDAS Digital Authentication Solutions S.L", @@ -126390,6 +126906,7 @@ "154066451501056": "AS Strömungstechnik GmbH", "154066451509248": "Opus-Two ICS", "154066451521536": "Zhejiang Qian Information & Technologies", + "154066451525632": "Beanair Sensors", "154066451529728": "Mesomat inc.", "154066451537920": "Chongqing Huaxiu Technology Co.,Ltd", "154066451550208": "Beijing Shengtongnaan Technology Development Co., Ltd", @@ -126404,6 +126921,7 @@ "154066451628032": "AVCOMM Technologies Inc", "154066451644416": "Eiffage Energie Electronique", "154066451648512": "NanoThings Inc.", + "154066451656704": "Sicon srl", "154066451685376": "Burk Technology", "154066451697664": "Hiwin Mikrosystem Corp.", "154066451705856": "ENTOSS Co.,Ltd", @@ -126475,6 +126993,7 @@ "154066452365312": "YUYAMA MFG Co.,Ltd", "154066452369408": "Nonet Inc", "154066452373504": "Radiation Solutions Inc.", + "154066452377600": "aelettronica group srl", "154066452381696": "SHALARM SECURITY Co.,LTD", "154066452385792": "Elbit Systems of America, LLC", "154066452398080": "Dco Systems Ltd", @@ -126508,6 +127027,7 @@ "154066452676608": "Switch Science, Inc.", "154066452680704": "DEUTA Werke GmbH", "154066452684800": "Enless Wireless", + "154066452692992": "Scame Sistemi srl", "154066452697088": "Florida R&D Associates LLC", "154066452713472": "TSS COMPANY s.r.o.", "154066452717568": "Rfengine Co., Ltd.", @@ -126586,6 +127106,7 @@ "154066453286912": "Multilane Inc", "154066453295104": "Omnivision", "154066453299200": "MB connect line GmbH Fernwartungssysteme", + "154066453307392": "All Points Broadband", "154066453311488": "Borrell USA Corp", "154066453315584": "Xiamen Zhixiaojin Intelligent Technology Co., Ltd", "154066453319680": "Wilson Electronics", @@ -126623,6 +127144,7 @@ "154066453549056": "Stratis IOT", "154066453553152": "Wavestream Corp", "154066453561344": "BTG Instruments AB", + "154066453565440": "TECHPLUS-LINK Technology Co.,Ltd", "154066453581824": "Sejong security system Cor.", "154066453585920": "Mahindr & Mahindra", "154066453594112": "Tripltek", @@ -126637,6 +127159,7 @@ "154066453680128": "Systems Mechanics", "154066453684224": "elbe informatik GmbH", "154066453692416": "Ruichuangte", + "154066453700608": "Chipscape Security Systems", "154066453716992": "BnB Information Technology", "154066453741568": "Actelser S.L.", "154066453753856": "Mitsubishi Electric India Pvt. Ltd.", @@ -126700,6 +127223,7 @@ "154066454306816": "Novanta IMS", "154066454319104": "VirtualV Trading Limited", "154066454323200": "Vismes sarl", + "154066454339584": "Longhorn lntelligent Tech Co.,Ltd.", "154066454343680": "TECHKON GmbH", "154066454351872": "Hupi", "154066454360064": "Monnit Corporation", @@ -126758,6 +127282,7 @@ "154066454839296": "Nepean Networks Pty Ltd", "154066454843392": "QUISS GmbH", "154066454847488": "Samwell International Inc", + "154066454851584": "Tualcom Elektronik A.S.", "154066454855680": "EA Elektroautomatik GmbH & Co. KG", "154066454876160": "Season Electronics Ltd", "154066454880256": "Bellco Trading Company (Pvt) Ltd", @@ -126804,6 +127329,7 @@ "154066455195648": "In-lite Design BV", "154066455199744": "Scitel", "154066455203840": "Intozi Tech Pvt Ltd", + "154066455212032": "Sheetal Wireless Technologies Pvt Ltd", "154066455216128": "Schildknecht AG", "154066455224320": "Hanateksystem", "154066455232512": "Dexter Laundry Inc.", @@ -126852,6 +127378,7 @@ "154066455617536": "Benchmark Electronics BV", "154066455638016": "R3Vox Ltd", "154066455642112": "Cooltera Limited", + "154066455646208": "Active Research Limited", "154066455650304": "Systems With Intelligence Inc.", "154066455662592": "Abbott Diagnostics Technologies AS", "154066455670784": "dinosys", @@ -127034,6 +127561,7 @@ "154066457190400": "Beijing LJ Technology Co., Ltd.", "154066457194496": "Ubiscale", "154066457198592": "Norvento Tecnología, S.L.", + "154066457210880": "Rosenxt Technology USA", "154066457214976": "Chaseo Connectome", "154066457219072": "R2D Automation", "154066457223168": "Sensus Healthcare", @@ -127050,6 +127578,7 @@ "154066457337856": "Support Professionals B.V.", "154066457346048": "nanoTRONIX Computing Inc.", "154066457350144": "Micro Electroninc Products", + "154066457358336": "CAES Systems LLC", "154066457362432": "mapna group", "154066457366528": "Vonamic GmbH", "154066457370624": "Dorlet Sau", @@ -127116,6 +127645,7 @@ "154066457866240": "Une Srl", "154066457882624": "robert juliat", "154066457903104": "Methods2Business B.V.", + "154066457907200": "Eding CNC bv", "154066457911296": "Orange Precision Measurement LLC", "154066457915392": "SAXOGY POWER ELECTRONICS GmbH", "154066457923584": "AEM Singapore Pte Ltd", @@ -127136,6 +127666,7 @@ "154066458062848": "Pribusin Inc.", "154066458075136": "PalmSens BV", "154066458079232": "nke marine electronics", + "154066458087424": "Warecube, Inc.", "154066458091520": "Gemini Electronics B.V.", "154066458103808": "Gogo BA", "154066458112000": "ViewSonic Corp", @@ -127200,6 +127731,7 @@ "154066458681344": "Forever Engineering Systems Pvt. Ltd.", "154066458685440": "Asml Us, Lp", "154066458689536": "BOZHON Precision Industry Technology Co.,Ltd", + "154066458693632": "Gateview Technologies", "154066458697728": "Shenzhen Qunfang Technology Co., LTD.", "154066458701824": "Ibeos", "154066458714112": "Abbott Diagnostics Technologies AS", @@ -127214,6 +127746,7 @@ "154066458791936": "NextT Microwave Inc", "154066458812416": "YUYAMA MFG Co.,Ltd", "154066458816512": "Chromaviso A/S", + "154066458824704": "Guan Show Technologe Co., Ltd.", "154066458832896": "Diffraction Limited", "154066458836992": "Enerthing GmbH", "154066458841088": "Orlaco Products B.V.", @@ -127241,6 +127774,7 @@ "154066459025408": "Potter Electric Signal Company", "154066459029504": "Kruger DB Series Indústria Eletrônica ltda", "154066459037696": "Comrex", + "154066459041792": "TimeMachines Inc.", "154066459045888": "Portrait Displays, Inc.", "154066459049984": "Hensoldt Sensors GmbH", "154066459054080": "Qualitrol LLC", @@ -127259,8 +127793,10 @@ "154066459148288": "Cospowers Changsha Branch", "154066459152384": "enlighten", "154066459164672": "VuWall Technology Europe GmbH", + "154066459168768": "Abbott Diagnostics Technologies AS", "154066459176960": "MB connect line GmbH Fernwartungssysteme", "154066459181056": "Magics Technologies", + "154066459193344": "BTG Instruments AB", "154066459197440": "ITG Co.Ltd", "154066459205632": "Thermo Onix Ltd", "154066459217920": "IVOR Intelligent Electrical Appliance Co., Ltd", @@ -127310,6 +127846,7 @@ "154066459639808": "uHave Control, Inc", "154066459656192": "EVLO Stockage Énergie", "154066459660288": "Advanced Techne", + "154066459672576": "i2A Systems Co., Ltd.", "154066459680768": "EIDOS s.r.l.", "154066459693056": "Pacific Software Development Co., Ltd.", "154066459697152": "LadyBug Technologies, LLC", @@ -127431,6 +127968,7 @@ "154066460737536": "Flextronics International Kft", "154066460749824": "Peter Huber Kaeltemaschinenbau SE", "154066460753920": "HEINEN ELEKTRONIK GmbH", + "154066460762112": "Data Conversion Systems Ltd", "154066460766208": "Shenzhen Anliji Electronics Co.,Ltd", "154066460770304": "axelife", "154066460778496": "Leder Elektronik Design GmbH", @@ -127500,6 +128038,7 @@ "154066461306880": "Rhombus Europe", "154066461310976": "Sanmina Israel Medical Systems Ltd", "154066461323264": "Mtechnology - Gamma Commerciale Srl", + "154066461335552": "Plug Power", "154066461351936": "Pneumax Spa", "154066461356032": "Flextronics International Kft", "154066461368320": "dream DNS", @@ -127513,6 +128052,7 @@ "154066461474816": "Framatome Inc.", "154066461478912": "Sanchar Telesystems limited", "154066461483008": "Arcvideo", + "154066461495296": "Vision Systems Safety Tech", "154066461499392": "YUYAMA MFG Co.,Ltd", "154066461503488": "Tri-light Wuhan Electronics Technology Co.,Ltd", "154066461540352": "Televic Rail GmbH", @@ -127532,6 +128072,7 @@ "154066461638656": "Evernet Co,.Ltd Taiwan", "154066461642752": "Scheurich GmbH", "154066461663232": "Seed Core Co., LTD.", + "154066461667328": "ShenZhen Australis Electronic Technology Co.,Ltd.", "154066461671424": "SPX Flow Technology", "154066461675520": "Candela Technologies Inc", "154066461679616": "Elektronik & Modellprodukter Gävle AB", @@ -127540,12 +128081,14 @@ "154066461728768": "Neurable", "154066461749248": "Gemini Electronics B.V.", "154066461753344": "Calamity, Inc.", + "154066461757440": "iLifeX", "154066461761536": "Quercus Technologies, S.L.", "154066461765632": "Kromek Limited", "154066461777920": "Power Electronics Espana, S.L.", "154066461782016": "Lithion Battery Inc", "154066461798400": "DEUTA-WERKE GmbH", "154066461810688": "FMC Technologies Measurement Solutions Inc", + "154066461814784": "iLensys Technologies PVT LTD", "154066461818880": "AvMap srlu", "154066461827072": "Mine Vision Systems", "154066461831168": "Ycn", @@ -127569,13 +128112,16 @@ "154066461954048": "Gl Tech Co.,Ltd", "154066461962240": "A&T Corporation", "154066461966336": "Sound Health Systems", + "154066461970432": "A.L.S.E.", "154066461974528": "BESO sp. z o.o.", "154066461990912": "attocube systems AG", "154066461995008": "IO Master Technology", "154066462003200": "Pro-Custom Group", "154066462007296": "NOVA Products GmbH", "154066462011392": "Union Electronic.", + "154066462019584": "Watts", "154066462027776": "Cardinal Scales Manufacturing Co", + "154066462052352": "Geolux", "154066462060544": "Reo Ag", "154066462081024": "Technologies Bacmove Inc.", "154066462105600": "Sirius LLC", @@ -127681,6 +128227,7 @@ "154066462892032": "Ophir Manufacturing Solutions Pte Ltd", "154066462896128": "BRS Sistemas Eletrônicos", "154066462908416": "Dyncir Soluções Tecnológicas Ltda", + "154066462912512": "DELO Industrie Klebstoffe GmbH & Co. KGaA", "154066462920704": "Gamber-Johnson LLC", "154066462924800": "Rowan Elettronica Srl", "154066462928896": "ARKRAY,Inc.Kyoto Laboratory", @@ -127747,6 +128294,8 @@ "154066463514624": "End 2 End Technologies", "154066463526912": "Future Life Technology", "154066463531008": "Caproc Oy", + "154066463543296": "Liburdi Dimetrics Corp.", + "154066463547392": "Magnatek ApS", "154066463551488": "Henan Creatbot Technology Limited", "154066463559680": "ZIGEN Lighting Solution co., ltd.", "154066463563776": "Critical Software SA", @@ -127801,6 +128350,7 @@ "154066464010240": "Rugged Controls", "154066464014336": "Pigs Can Fly Labs LLC", "154066464022528": "Procon Electronics Pty Ltd", + "154066464026624": "Packet Digital, LLC", "154066464038912": "R&K", "154066464043008": "Wide Swath Research, LLC", "154066464047104": "Dwdm.Ru Llc", @@ -127939,6 +128489,7 @@ "154066465345536": "Preston Industries dba PolyScience", "154066465357824": "Advantor Corporation", "154066465361920": "Texi AS", + "154066465370112": "Nagy Márton Jozsef e.v.", "154066465390592": "Televic Rail GmbH", "154066465398784": "CAITRON GmbH", "154066465402880": "ACS Motion Control", @@ -127984,6 +128535,7 @@ "154066465718272": "Portrait Displays, Inc.", "154066465730560": "Quantum Media Systems", "154066465738752": "Talleres de Escoriaza SA", + "154066465746944": "Distron S.L.", "154066465751040": "YUYAMA MFG Co.,Ltd", "154066465767424": "Sonatronic", "154066465771520": "Ophir Manufacturing Solutions Pte Ltd", @@ -128001,6 +128553,7 @@ "154066465865728": "KST technology", "154066465873920": "INFOSTECH Co., Ltd.", "154066465878016": "Fly Electronic (Shang Hai) Technology Co.,Ltd", + "154066465882112": "LAMTEC Mess- und Regeltechnik für Feuerungen GmbH & Co. KG", "154066465914880": "Enfabrica", "154066465918976": "Consonance", "154066465923072": "Vision Systems Safety Tech",