// Generated by the protocol buffer compiler.  DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// source: MumbleUDP.proto
// Protobuf C++ Version: 7.35.1

#include "MumbleUDP.pb.h"

#include <algorithm>
#include <type_traits>
#include "google/protobuf/io/coded_stream.h"
#include "google/protobuf/generated_message_tctable_impl.h"
#include "google/protobuf/internal_visibility.h"
#include "google/protobuf/extension_set.h"
#include "google/protobuf/generated_message_util.h"
#include "google/protobuf/wire_format_lite.h"
#include "google/protobuf/descriptor.h"
#include "google/protobuf/generated_message_reflection.h"
#include "google/protobuf/reflection_ops.h"
#include "google/protobuf/wire_format.h"
// @@protoc_insertion_point(includes)

// Must be included last.
#include "google/protobuf/port_def.inc"
PROTOBUF_PRAGMA_INIT_SEG
namespace _pb = ::google::protobuf;
namespace _pbi = ::google::protobuf::internal;
namespace _fl = ::google::protobuf::internal::field_layout;
#ifdef PROTOBUF_MESSAGE_GLOBALS
namespace {
PROTOBUF_CONSTINIT ::google::protobuf::internal::ReflectionData
    file_reflection_data[] = {
        // ::MumbleUDP::Audio
        {&::_pbi::kDescriptorMethods, &::descriptor_table_MumbleUDP_2eproto, /* tracker*/ nullptr,},
        // ::MumbleUDP::Ping
        {&::_pbi::kDescriptorMethods, &::descriptor_table_MumbleUDP_2eproto, /* tracker*/ nullptr,},
};
}  // namespace
#endif
namespace MumbleUDP {
class Ping::_Internal {
 public:
  using HasBits = decltype(::std::declval<Ping>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Ping, _impl_._has_bits_);
};

constexpr Ping::ParseTableT_ Ping::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Ping, _impl_._has_bits_),
      0, // no _extensions_
      6, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967232,  // skipmap
      offsetof(ParseTableT_, field_entries),
      6,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::MumbleUDP::Ping>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // uint64 timestamp = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint64_t, offsetof(Ping, _impl_.timestamp_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(Ping, _impl_.timestamp_)}},
      // bool request_extended_information = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(Ping, _impl_.request_extended_information_), 2>(),
       {16, 2, 0,
        PROTOBUF_FIELD_OFFSET(Ping, _impl_.request_extended_information_)}},
      // uint64 server_version_v2 = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint64_t, offsetof(Ping, _impl_.server_version_v2_), 1>(),
       {24, 1, 0,
        PROTOBUF_FIELD_OFFSET(Ping, _impl_.server_version_v2_)}},
      // uint32 user_count = 4;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Ping, _impl_.user_count_), 3>(),
       {32, 3, 0,
        PROTOBUF_FIELD_OFFSET(Ping, _impl_.user_count_)}},
      // uint32 max_user_count = 5;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Ping, _impl_.max_user_count_), 4>(),
       {40, 4, 0,
        PROTOBUF_FIELD_OFFSET(Ping, _impl_.max_user_count_)}},
      // uint32 max_bandwidth_per_user = 6;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Ping, _impl_.max_bandwidth_per_user_), 5>(),
       {48, 5, 0,
        PROTOBUF_FIELD_OFFSET(Ping, _impl_.max_bandwidth_per_user_)}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // uint64 timestamp = 1;
      {PROTOBUF_FIELD_OFFSET(Ping, _impl_.timestamp_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt64)},
      // bool request_extended_information = 2;
      {PROTOBUF_FIELD_OFFSET(Ping, _impl_.request_extended_information_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // uint64 server_version_v2 = 3;
      {PROTOBUF_FIELD_OFFSET(Ping, _impl_.server_version_v2_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt64)},
      // uint32 user_count = 4;
      {PROTOBUF_FIELD_OFFSET(Ping, _impl_.user_count_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 max_user_count = 5;
      {PROTOBUF_FIELD_OFFSET(Ping, _impl_.max_user_count_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 max_bandwidth_per_user = 6;
      {PROTOBUF_FIELD_OFFSET(Ping, _impl_.max_bandwidth_per_user_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Ping::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        timestamp_{::uint64_t{0u}},
        server_version_v2_{::uint64_t{0u}},
        request_extended_information_{false},
        user_count_{0u},
        max_user_count_{0u},
        max_bandwidth_per_user_{0u} {}

template <typename>
constexpr Ping::Ping(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Ping::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Ping(arena);
}
constexpr auto Ping::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Ping), alignof(Ping));
}
constexpr auto Ping::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Ping::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Ping>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Ping::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Ping>(), &Ping::ByteSizeLong,
              &Ping::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Ping, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[1],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_MumbleUDP_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct PingGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr PingGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Ping_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Ping::InternalGenerateClassData_(
            _default, &Ping_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Ping>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~PingGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Ping _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Ping>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(PingGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST PingGlobalsTypeInternal Ping_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Ping_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Ping_globals_.GetClassData();
#else
  return Ping_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Audio::_Internal {
 public:
  using HasBits = decltype(::std::declval<Audio>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Audio, _impl_._has_bits_);
  static constexpr ::int32_t kOneofCaseOffset =
      PROTOBUF_FIELD_OFFSET(::MumbleUDP::Audio, _impl_._oneof_case_);
};

constexpr Audio::ParseTableT_ Audio::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Audio, _impl_._has_bits_),
      0, // no _extensions_
      16, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294934400,  // skipmap
      offsetof(ParseTableT_, field_entries),
      8,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::MumbleUDP::Audio>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // bool is_terminator = 16;
      {::_pbi::TcParser::FastV8S2,
       {384, 5, 0,
        PROTOBUF_FIELD_OFFSET(Audio, _impl_.is_terminator_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      // uint32 sender_session = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Audio, _impl_.sender_session_), 3>(),
       {24, 3, 0,
        PROTOBUF_FIELD_OFFSET(Audio, _impl_.sender_session_)}},
      // uint64 frame_number = 4;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint64_t, offsetof(Audio, _impl_.frame_number_), 2>(),
       {32, 2, 0,
        PROTOBUF_FIELD_OFFSET(Audio, _impl_.frame_number_)}},
      // bytes opus_data = 5;
      {::_pbi::TcParser::FastBS1,
       {42, 1, 0,
        PROTOBUF_FIELD_OFFSET(Audio, _impl_.opus_data_)}},
      // repeated float positional_data = 6;
      {::_pbi::TcParser::FastF32P1,
       {50, 0, 0,
        PROTOBUF_FIELD_OFFSET(Audio, _impl_.positional_data_)}},
      // float volume_adjustment = 7;
      {::_pbi::TcParser::FastF32S1,
       {61, 4, 0,
        PROTOBUF_FIELD_OFFSET(Audio, _impl_.volume_adjustment_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 target = 1;
      {PROTOBUF_FIELD_OFFSET(Audio, _impl_.Header_.target_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kUInt32)},
      // uint32 context = 2;
      {PROTOBUF_FIELD_OFFSET(Audio, _impl_.Header_.context_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kUInt32)},
      // uint32 sender_session = 3;
      {PROTOBUF_FIELD_OFFSET(Audio, _impl_.sender_session_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint64 frame_number = 4;
      {PROTOBUF_FIELD_OFFSET(Audio, _impl_.frame_number_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt64)},
      // bytes opus_data = 5;
      {PROTOBUF_FIELD_OFFSET(Audio, _impl_.opus_data_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // repeated float positional_data = 6;
      {PROTOBUF_FIELD_OFFSET(Audio, _impl_.positional_data_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kPackedFloat)},
      // float volume_adjustment = 7;
      {PROTOBUF_FIELD_OFFSET(Audio, _impl_.volume_adjustment_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
      // bool is_terminator = 16;
      {PROTOBUF_FIELD_OFFSET(Audio, _impl_.is_terminator_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Audio::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        positional_data_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::MumbleUDP::Audio,
            PROTOBUF_FIELD_OFFSET(::MumbleUDP::Audio, _impl_.positional_data_)>()
         }
        ,
        opus_data_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        frame_number_{::uint64_t{0u}},
        sender_session_{0u},
        volume_adjustment_{0},
        is_terminator_{false},
        Header_{},
        _oneof_case_{} {}

template <typename>
constexpr Audio::Audio(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Audio::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Audio(arena);
}
constexpr auto Audio::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Audio), alignof(Audio));
}
constexpr auto Audio::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Audio::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Audio>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Audio::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Audio>(), &Audio::ByteSizeLong,
              &Audio::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Audio, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[0],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_MumbleUDP_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct AudioGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr AudioGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Audio_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Audio::InternalGenerateClassData_(
            _default, &Audio_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Audio>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~AudioGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Audio _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Audio>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(AudioGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST AudioGlobalsTypeInternal Audio_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Audio_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Audio_globals_.GetClassData();
#else
  return Audio_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
}  // namespace MumbleUDP
static constexpr const ::_pb::EnumDescriptor* PROTOBUF_NONNULL* PROTOBUF_NULLABLE
    file_level_enum_descriptors_MumbleUDP_2eproto = nullptr;
static constexpr const ::_pb::ServiceDescriptor* PROTOBUF_NONNULL* PROTOBUF_NULLABLE
    file_level_service_descriptors_MumbleUDP_2eproto = nullptr;
const ::uint32_t
    TableStruct_MumbleUDP_2eproto::offsets[] ABSL_ATTRIBUTE_SECTION_VARIABLE(
        protodesc_cold) = {
        0x085, // bitmap
        PROTOBUF_FIELD_OFFSET(::MumbleUDP::Audio, _impl_._has_bits_),
        PROTOBUF_FIELD_OFFSET(::MumbleUDP::Audio, _impl_._oneof_case_[0]),
        13, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::MumbleUDP::Audio, _impl_.Header_),
        PROTOBUF_FIELD_OFFSET(::MumbleUDP::Audio, _impl_.Header_),
        PROTOBUF_FIELD_OFFSET(::MumbleUDP::Audio, _impl_.sender_session_),
        PROTOBUF_FIELD_OFFSET(::MumbleUDP::Audio, _impl_.frame_number_),
        PROTOBUF_FIELD_OFFSET(::MumbleUDP::Audio, _impl_.opus_data_),
        PROTOBUF_FIELD_OFFSET(::MumbleUDP::Audio, _impl_.positional_data_),
        PROTOBUF_FIELD_OFFSET(::MumbleUDP::Audio, _impl_.volume_adjustment_),
        PROTOBUF_FIELD_OFFSET(::MumbleUDP::Audio, _impl_.is_terminator_),
        PROTOBUF_FIELD_OFFSET(::MumbleUDP::Audio, _impl_.Header_),
        ~0u,
        ~0u,
        3,
        2,
        1,
        0,
        4,
        5,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::MumbleUDP::Ping, _impl_._has_bits_),
        9, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::MumbleUDP::Ping, _impl_.timestamp_),
        PROTOBUF_FIELD_OFFSET(::MumbleUDP::Ping, _impl_.request_extended_information_),
        PROTOBUF_FIELD_OFFSET(::MumbleUDP::Ping, _impl_.server_version_v2_),
        PROTOBUF_FIELD_OFFSET(::MumbleUDP::Ping, _impl_.user_count_),
        PROTOBUF_FIELD_OFFSET(::MumbleUDP::Ping, _impl_.max_user_count_),
        PROTOBUF_FIELD_OFFSET(::MumbleUDP::Ping, _impl_.max_bandwidth_per_user_),
        0,
        2,
        1,
        3,
        4,
        5,
};

static const ::_pbi::MigrationSchema
    schemas[] ABSL_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
        {0, sizeof(::MumbleUDP::Audio)},
        {21, sizeof(::MumbleUDP::Ping)},
};
static const ::_pbi::MessageGlobalsBase* PROTOBUF_NONNULL const
    file_message_globals[] = {
        &::MumbleUDP::Audio_globals_,
        &::MumbleUDP::Ping_globals_,
};
const char descriptor_table_protodef_MumbleUDP_2eproto[] ABSL_ATTRIBUTE_SECTION_VARIABLE(
    protodesc_cold) = {
    "\n\017MumbleUDP.proto\022\tMumbleUDP\"\302\001\n\005Audio\022\020"
    "\n\006target\030\001 \001(\rH\000\022\021\n\007context\030\002 \001(\rH\000\022\026\n\016s"
    "ender_session\030\003 \001(\r\022\024\n\014frame_number\030\004 \001("
    "\004\022\021\n\topus_data\030\005 \001(\014\022\027\n\017positional_data\030"
    "\006 \003(\002\022\031\n\021volume_adjustment\030\007 \001(\002\022\025\n\ris_t"
    "erminator\030\020 \001(\010B\010\n\006Header\"\246\001\n\004Ping\022\021\n\tti"
    "mestamp\030\001 \001(\004\022$\n\034request_extended_inform"
    "ation\030\002 \001(\010\022\031\n\021server_version_v2\030\003 \001(\004\022\022"
    "\n\nuser_count\030\004 \001(\r\022\026\n\016max_user_count\030\005 \001"
    "(\r\022\036\n\026max_bandwidth_per_user\030\006 \001(\rB\002H\001b\006"
    "proto3"
};
static ::absl::once_flag descriptor_table_MumbleUDP_2eproto_once;
PROTOBUF_CONSTINIT const ::_pbi::DescriptorTable descriptor_table_MumbleUDP_2eproto = {
    false,
    false,
    406,
    descriptor_table_protodef_MumbleUDP_2eproto,
    "MumbleUDP.proto",
    &descriptor_table_MumbleUDP_2eproto_once,
    nullptr,
    0,
    2,
    schemas,
    file_message_globals,
    TableStruct_MumbleUDP_2eproto::offsets,
    file_level_enum_descriptors_MumbleUDP_2eproto,
    file_level_service_descriptors_MumbleUDP_2eproto,
};
namespace MumbleUDP {
// ===================================================================

Audio::Audio(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Audio_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:MumbleUDP.Audio)
}
PROTOBUF_NDEBUG_INLINE Audio::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::MumbleUDP::Audio& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        positional_data_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::MumbleUDP::Audio,
              PROTOBUF_FIELD_OFFSET(::MumbleUDP::Audio, _impl_.positional_data_)>()
          , from.positional_data_
        }
        ,
        opus_data_(arena, from.opus_data_),
        Header_{},
        _oneof_case_{from._oneof_case_[0]} {}

Audio::Audio(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const Audio& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Audio_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Audio* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, frame_number_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, frame_number_),
           offsetof(Impl_, is_terminator_) -
               offsetof(Impl_, frame_number_) +
               sizeof(Impl_::is_terminator_));
  switch (Header_case()) {
    case HEADER_NOT_SET:
      break;
      case kTarget:
        _impl_.Header_.target_ = from._impl_.Header_.target_;
        break;
      case kContext:
        _impl_.Header_.context_ = from._impl_.Header_.context_;
        break;
  }

  // @@protoc_insertion_point(copy_constructor:MumbleUDP.Audio)
}
PROTOBUF_NDEBUG_INLINE Audio::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        positional_data_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::MumbleUDP::Audio,
            PROTOBUF_FIELD_OFFSET(::MumbleUDP::Audio, _impl_.positional_data_)>()
         }
        ,
        opus_data_(arena),
        Header_{},
        _oneof_case_{} {}

inline void Audio::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, frame_number_),
           0,
           offsetof(Impl_, is_terminator_) -
               offsetof(Impl_, frame_number_) +
               sizeof(Impl_::is_terminator_));
}
Audio::~Audio() {
  // @@protoc_insertion_point(destructor:MumbleUDP.Audio)
  SharedDtor(*this);
}
inline void Audio::SharedDtor(MessageLite& self) {
  Audio& this_ = static_cast<Audio&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.opus_data_.Destroy();
  if (this_.has_Header()) {
    this_.clear_Header();
  }
  this_._impl_.~Impl_();
}

void Audio::clear_Header() {
// @@protoc_insertion_point(one_of_clear_start:MumbleUDP.Audio)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (Header_case()) {
    case kTarget: {
      // No need to clear
      break;
    }
    case kContext: {
      // No need to clear
      break;
    }
    case HEADER_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = HEADER_NOT_SET;
}


#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Audio_class_data_ =
        Audio::InternalGenerateClassData_(Audio_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Audio::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Audio_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Audio_class_data_.tc_table);
  return Audio_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Audio::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Audio_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Audio_globals_));
  return Audio_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Audio::ParseTableT_
    Audio::_table_ =
        Audio::InternalGenerateParseTable_(Audio_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Audio::Clear() {
// @@protoc_insertion_point(message_clear_start:MumbleUDP.Audio)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.positional_data_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.opus_data_.ClearNonDefaultToEmpty();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000003cU)) {
    ::memset(&_impl_.frame_number_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.is_terminator_) -
        reinterpret_cast<char*>(&_impl_.frame_number_)) + sizeof(_impl_.is_terminator_));
  }
  clear_Header();
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Audio::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Audio& this_ = static_cast<const Audio&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Audio::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Audio& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:MumbleUDP.Audio)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  switch (this_.Header_case()) {
    case kTarget: {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_target(), target);
      break;
    }
    case kContext: {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_context(), target);
      break;
    }
    default:
      break;
  }
  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 sender_session = 3;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_sender_session() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          3, this_._internal_sender_session(), target);
    }
  }

  // uint64 frame_number = 4;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_frame_number() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
          4, this_._internal_frame_number(), target);
    }
  }

  // bytes opus_data = 5;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (!this_._internal_opus_data().empty()) {
      const ::std::string& _s = this_._internal_opus_data();
      target = stream->WriteBytesMaybeAliased(5, _s, target);
    }
  }

  // repeated float positional_data = 6;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_positional_data_size() > 0) {
      target = stream->WriteFixedPacked(6, this_._internal_positional_data(), target);
    }
  }

  // float volume_adjustment = 7;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    if (::absl::bit_cast<::uint32_t>(this_._internal_volume_adjustment()) != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteFloatToArray(
          7, this_._internal_volume_adjustment(), target);
    }
  }

  // bool is_terminator = 16;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    if (this_._internal_is_terminator() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          16, this_._internal_is_terminator(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:MumbleUDP.Audio)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Audio::ByteSizeLong(const MessageLite& base) {
  const Audio& this_ = static_cast<const Audio&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Audio::ByteSizeLong() const {
  const Audio& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:MumbleUDP.Audio)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    // repeated float positional_data = 6;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ::size_t data_size = ::size_t{4} *
          ::_pbi::FromIntSize(this_._internal_positional_data_size());
      ::size_t tag_size = data_size == 0
          ? 0
          : 1 + ::_pbi::WireFormatLite::Int32Size(
                              static_cast<::int32_t>(data_size));
      total_size += tag_size + data_size;
    }
    // bytes opus_data = 5;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!this_._internal_opus_data().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                        this_._internal_opus_data());
      }
    }
    // uint64 frame_number = 4;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_frame_number() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(
            this_._internal_frame_number());
      }
    }
    // uint32 sender_session = 3;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_sender_session() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_sender_session());
      }
    }
    // float volume_adjustment = 7;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (::absl::bit_cast<::uint32_t>(this_._internal_volume_adjustment()) != 0) {
        total_size += 5;
      }
    }
    // bool is_terminator = 16;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (this_._internal_is_terminator() != 0) {
        total_size += 3;
      }
    }
  }
  switch (this_.Header_case()) {
    // uint32 target = 1;
    case kTarget: {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_target());
      break;
    }
    // uint32 context = 2;
    case kContext: {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_context());
      break;
    }
    case HEADER_NOT_SET: {
      break;
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Audio::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Audio*>(&to_msg);
  auto& from = static_cast<const Audio&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:MumbleUDP.Audio)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_positional_data()->MergeFrom(from._internal_positional_data());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!from._internal_opus_data().empty()) {
        _this->_internal_set_opus_data(from._internal_opus_data());
      } else {
        if (_this->_impl_.opus_data_.IsDefault()) {
          _this->_internal_set_opus_data("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_frame_number() != 0) {
        _this->_impl_.frame_number_ = from._impl_.frame_number_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_sender_session() != 0) {
        _this->_impl_.sender_session_ = from._impl_.sender_session_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (::absl::bit_cast<::uint32_t>(from._internal_volume_adjustment()) != 0) {
        _this->_impl_.volume_adjustment_ = from._impl_.volume_adjustment_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (from._internal_is_terminator() != 0) {
        _this->_impl_.is_terminator_ = from._impl_.is_terminator_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  if (const uint32_t oneof_from_case =
          from._impl_._oneof_case_[0]) {
    const uint32_t oneof_to_case = _this->_impl_._oneof_case_[0];
    const bool oneof_needs_init = oneof_to_case != oneof_from_case;
    if (oneof_needs_init) {
      if (oneof_to_case != 0) {
        _this->clear_Header();
      }
      _this->_impl_._oneof_case_[0] = oneof_from_case;
    }

    switch (oneof_from_case) {
      case kTarget: {
        _this->_impl_.Header_.target_ = from._impl_.Header_.target_;
        break;
      }
      case kContext: {
        _this->_impl_.Header_.context_ = from._impl_.Header_.context_;
        break;
      }
      case HEADER_NOT_SET:
        break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Audio::CopyFrom(const Audio& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:MumbleUDP.Audio)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Audio::InternalSwap(Audio* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.positional_data_.InternalSwap(&other->_impl_.positional_data_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.opus_data_, &other->_impl_.opus_data_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Audio, _impl_.is_terminator_)
      + sizeof(Audio::_impl_.is_terminator_)
      - PROTOBUF_FIELD_OFFSET(Audio, _impl_.frame_number_)>(
          reinterpret_cast<char*>(&_impl_.frame_number_),
          reinterpret_cast<char*>(&other->_impl_.frame_number_));
  swap(_impl_.Header_, other->_impl_.Header_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

::google::protobuf::Metadata Audio::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Ping::Ping(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Ping_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:MumbleUDP.Ping)
}
Ping::Ping(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Ping& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Ping_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE Ping::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Ping::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, timestamp_),
           0,
           offsetof(Impl_, max_bandwidth_per_user_) -
               offsetof(Impl_, timestamp_) +
               sizeof(Impl_::max_bandwidth_per_user_));
}
Ping::~Ping() {
  // @@protoc_insertion_point(destructor:MumbleUDP.Ping)
  SharedDtor(*this);
}
inline void Ping::SharedDtor(MessageLite& self) {
  Ping& this_ = static_cast<Ping&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Ping_class_data_ =
        Ping::InternalGenerateClassData_(Ping_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Ping::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Ping_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Ping_class_data_.tc_table);
  return Ping_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Ping::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Ping_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Ping_globals_));
  return Ping_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Ping::ParseTableT_
    Ping::_table_ =
        Ping::InternalGenerateParseTable_(Ping_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Ping::Clear() {
// @@protoc_insertion_point(message_clear_start:MumbleUDP.Ping)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    ::memset(&_impl_.timestamp_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.max_bandwidth_per_user_) -
        reinterpret_cast<char*>(&_impl_.timestamp_)) + sizeof(_impl_.max_bandwidth_per_user_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Ping::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Ping& this_ = static_cast<const Ping&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Ping::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Ping& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:MumbleUDP.Ping)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint64 timestamp = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_timestamp() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
          1, this_._internal_timestamp(), target);
    }
  }

  // bool request_extended_information = 2;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_request_extended_information() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          2, this_._internal_request_extended_information(), target);
    }
  }

  // uint64 server_version_v2 = 3;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_server_version_v2() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
          3, this_._internal_server_version_v2(), target);
    }
  }

  // uint32 user_count = 4;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_user_count() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          4, this_._internal_user_count(), target);
    }
  }

  // uint32 max_user_count = 5;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    if (this_._internal_max_user_count() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          5, this_._internal_max_user_count(), target);
    }
  }

  // uint32 max_bandwidth_per_user = 6;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    if (this_._internal_max_bandwidth_per_user() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          6, this_._internal_max_bandwidth_per_user(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:MumbleUDP.Ping)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Ping::ByteSizeLong(const MessageLite& base) {
  const Ping& this_ = static_cast<const Ping&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Ping::ByteSizeLong() const {
  const Ping& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:MumbleUDP.Ping)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    // uint64 timestamp = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_timestamp() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(
            this_._internal_timestamp());
      }
    }
    // uint64 server_version_v2 = 3;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_server_version_v2() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(
            this_._internal_server_version_v2());
      }
    }
    // bool request_extended_information = 2;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_request_extended_information() != 0) {
        total_size += 2;
      }
    }
    // uint32 user_count = 4;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_user_count() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_user_count());
      }
    }
    // uint32 max_user_count = 5;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (this_._internal_max_user_count() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_max_user_count());
      }
    }
    // uint32 max_bandwidth_per_user = 6;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (this_._internal_max_bandwidth_per_user() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_max_bandwidth_per_user());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Ping::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Ping*>(&to_msg);
  auto& from = static_cast<const Ping&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:MumbleUDP.Ping)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_timestamp() != 0) {
        _this->_impl_.timestamp_ = from._impl_.timestamp_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_server_version_v2() != 0) {
        _this->_impl_.server_version_v2_ = from._impl_.server_version_v2_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_request_extended_information() != 0) {
        _this->_impl_.request_extended_information_ = from._impl_.request_extended_information_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_user_count() != 0) {
        _this->_impl_.user_count_ = from._impl_.user_count_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (from._internal_max_user_count() != 0) {
        _this->_impl_.max_user_count_ = from._impl_.max_user_count_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (from._internal_max_bandwidth_per_user() != 0) {
        _this->_impl_.max_bandwidth_per_user_ = from._impl_.max_bandwidth_per_user_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Ping::CopyFrom(const Ping& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:MumbleUDP.Ping)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Ping::InternalSwap(Ping* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Ping, _impl_.max_bandwidth_per_user_)
      + sizeof(Ping::_impl_.max_bandwidth_per_user_)
      - PROTOBUF_FIELD_OFFSET(Ping, _impl_.timestamp_)>(
          reinterpret_cast<char*>(&_impl_.timestamp_),
          reinterpret_cast<char*>(&other->_impl_.timestamp_));
}

::google::protobuf::Metadata Ping::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// @@protoc_insertion_point(namespace_scope)
}  // namespace MumbleUDP
namespace google {
namespace protobuf {
}  // namespace protobuf
}  // namespace google
// @@protoc_insertion_point(global_scope)
PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::std::false_type
    _static_init2_ [[maybe_unused]] =
        (::_pbi::AddDescriptors(&descriptor_table_MumbleUDP_2eproto),
         ::std::false_type{});
#include "google/protobuf/port_undef.inc"
