// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: source2_steam_stats.proto

#include "source2_steam_stats.pb.h"

#include <algorithm>

#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/extension_set.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)
#include <google/protobuf/port_def.inc>

PROTOBUF_PRAGMA_INIT_SEG

namespace _pb = ::PROTOBUF_NAMESPACE_ID;
namespace _pbi = _pb::internal;

PROTOBUF_CONSTEXPR CMsgSource2SystemSpecs::CMsgSource2SystemSpecs(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.cpu_id_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.cpu_brand_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.gpu_rendersystem_dll_name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.gpu_driver_name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.cpu_model_)*/0u
  , /*decltype(_impl_.cpu_num_physical_)*/0u
  , /*decltype(_impl_.ram_physical_total_mb_)*/0u
  , /*decltype(_impl_.gpu_vendor_id_)*/0u
  , /*decltype(_impl_.gpu_driver_version_high_)*/0u
  , /*decltype(_impl_.gpu_driver_version_low_)*/0u
  , /*decltype(_impl_.gpu_dx_support_level_)*/0u
  , /*decltype(_impl_.gpu_texture_memory_size_mb_)*/0u
  , /*decltype(_impl_.backbuffer_width_)*/0u
  , /*decltype(_impl_.backbuffer_height_)*/0u} {}
struct CMsgSource2SystemSpecsDefaultTypeInternal {
  PROTOBUF_CONSTEXPR CMsgSource2SystemSpecsDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~CMsgSource2SystemSpecsDefaultTypeInternal() {}
  union {
    CMsgSource2SystemSpecs _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CMsgSource2SystemSpecsDefaultTypeInternal _CMsgSource2SystemSpecs_default_instance_;
PROTOBUF_CONSTEXPR CMsgSource2VProfLiteReportItem::CMsgSource2VProfLiteReportItem(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.active_samples_)*/0u
  , /*decltype(_impl_.usec_max_)*/0u
  , /*decltype(_impl_.active_samples_1secmax_)*/0u
  , /*decltype(_impl_.usec_avg_active_)*/0u
  , /*decltype(_impl_.usec_p50_active_)*/0u
  , /*decltype(_impl_.usec_p99_active_)*/0u
  , /*decltype(_impl_.usec_avg_all_)*/0u
  , /*decltype(_impl_.usec_p50_all_)*/0u
  , /*decltype(_impl_.usec_p99_all_)*/0u
  , /*decltype(_impl_.usec_1secmax_avg_active_)*/0u
  , /*decltype(_impl_.usec_1secmax_p50_active_)*/0u
  , /*decltype(_impl_.usec_1secmax_p95_active_)*/0u
  , /*decltype(_impl_.usec_1secmax_p99_active_)*/0u
  , /*decltype(_impl_.usec_1secmax_avg_all_)*/0u
  , /*decltype(_impl_.usec_1secmax_p50_all_)*/0u
  , /*decltype(_impl_.usec_1secmax_p95_all_)*/0u
  , /*decltype(_impl_.usec_1secmax_p99_all_)*/0u} {}
struct CMsgSource2VProfLiteReportItemDefaultTypeInternal {
  PROTOBUF_CONSTEXPR CMsgSource2VProfLiteReportItemDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~CMsgSource2VProfLiteReportItemDefaultTypeInternal() {}
  union {
    CMsgSource2VProfLiteReportItem _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CMsgSource2VProfLiteReportItemDefaultTypeInternal _CMsgSource2VProfLiteReportItem_default_instance_;
PROTOBUF_CONSTEXPR CMsgSource2VProfLiteReport::CMsgSource2VProfLiteReport(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.items_)*/{}
  , /*decltype(_impl_.total_)*/nullptr
  , /*decltype(_impl_.discarded_frames_)*/0u} {}
struct CMsgSource2VProfLiteReportDefaultTypeInternal {
  PROTOBUF_CONSTEXPR CMsgSource2VProfLiteReportDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~CMsgSource2VProfLiteReportDefaultTypeInternal() {}
  union {
    CMsgSource2VProfLiteReport _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CMsgSource2VProfLiteReportDefaultTypeInternal _CMsgSource2VProfLiteReport_default_instance_;
PROTOBUF_CONSTEXPR CMsgSource2NetworkFlowQuality::CMsgSource2NetworkFlowQuality(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.bytes_total_)*/uint64_t{0u}
  , /*decltype(_impl_.duration_)*/0u
  , /*decltype(_impl_.bytes_sec_p95_)*/0u
  , /*decltype(_impl_.bytes_total_reliable_)*/uint64_t{0u}
  , /*decltype(_impl_.bytes_total_voice_)*/uint64_t{0u}
  , /*decltype(_impl_.bytes_sec_p99_)*/0u
  , /*decltype(_impl_.enginemsgs_total_)*/0u
  , /*decltype(_impl_.enginemsgs_sec_p95_)*/0u
  , /*decltype(_impl_.enginemsgs_sec_p99_)*/0u
  , /*decltype(_impl_.netframes_total_)*/0u
  , /*decltype(_impl_.netframes_dropped_)*/0u
  , /*decltype(_impl_.netframes_outoforder_)*/0u
  , /*decltype(_impl_.netframes_size_exceeds_mtu_)*/0u
  , /*decltype(_impl_.netframes_size_p95_)*/0u
  , /*decltype(_impl_.netframes_size_p99_)*/0u
  , /*decltype(_impl_.ticks_total_)*/0u
  , /*decltype(_impl_.ticks_good_)*/0u
  , /*decltype(_impl_.ticks_good_almost_late_)*/0u
  , /*decltype(_impl_.ticks_fixed_dropped_)*/0u
  , /*decltype(_impl_.ticks_fixed_late_)*/0u
  , /*decltype(_impl_.ticks_bad_dropped_)*/0u
  , /*decltype(_impl_.ticks_bad_late_)*/0u
  , /*decltype(_impl_.ticks_bad_other_)*/0u
  , /*decltype(_impl_.tick_missrate_samples_total_)*/0u
  , /*decltype(_impl_.tick_missrate_samples_perfect_)*/0u
  , /*decltype(_impl_.tick_missrate_samples_perfectnet_)*/0u
  , /*decltype(_impl_.tick_missratenet_p75_x10_)*/0u
  , /*decltype(_impl_.tick_missratenet_p95_x10_)*/0u
  , /*decltype(_impl_.tick_missratenet_p99_x10_)*/0u
  , /*decltype(_impl_.recvmargin_p1_)*/0
  , /*decltype(_impl_.recvmargin_p5_)*/0
  , /*decltype(_impl_.recvmargin_p25_)*/0
  , /*decltype(_impl_.recvmargin_p50_)*/0
  , /*decltype(_impl_.recvmargin_p75_)*/0
  , /*decltype(_impl_.recvmargin_p95_)*/0
  , /*decltype(_impl_.netframe_jitter_p50_)*/0u
  , /*decltype(_impl_.netframe_jitter_p99_)*/0u
  , /*decltype(_impl_.interval_peakjitter_p50_)*/0u
  , /*decltype(_impl_.interval_peakjitter_p95_)*/0u
  , /*decltype(_impl_.packet_misdelivery_rate_p50_x4_)*/0u
  , /*decltype(_impl_.packet_misdelivery_rate_p95_x4_)*/0u
  , /*decltype(_impl_.net_ping_p5_)*/0u
  , /*decltype(_impl_.net_ping_p50_)*/0u
  , /*decltype(_impl_.net_ping_p95_)*/0u} {}
struct CMsgSource2NetworkFlowQualityDefaultTypeInternal {
  PROTOBUF_CONSTEXPR CMsgSource2NetworkFlowQualityDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~CMsgSource2NetworkFlowQualityDefaultTypeInternal() {}
  union {
    CMsgSource2NetworkFlowQuality _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CMsgSource2NetworkFlowQualityDefaultTypeInternal _CMsgSource2NetworkFlowQuality_default_instance_;
PROTOBUF_CONSTEXPR CMsgSource2PerfIntervalSample_Tag::CMsgSource2PerfIntervalSample_Tag(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.tag_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.max_value_)*/0u} {}
struct CMsgSource2PerfIntervalSample_TagDefaultTypeInternal {
  PROTOBUF_CONSTEXPR CMsgSource2PerfIntervalSample_TagDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~CMsgSource2PerfIntervalSample_TagDefaultTypeInternal() {}
  union {
    CMsgSource2PerfIntervalSample_Tag _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CMsgSource2PerfIntervalSample_TagDefaultTypeInternal _CMsgSource2PerfIntervalSample_Tag_default_instance_;
PROTOBUF_CONSTEXPR CMsgSource2PerfIntervalSample::CMsgSource2PerfIntervalSample(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.tags_)*/{}
  , /*decltype(_impl_.frame_time_max_ms_)*/0
  , /*decltype(_impl_.frame_time_avg_ms_)*/0
  , /*decltype(_impl_.frame_time_min_ms_)*/0
  , /*decltype(_impl_.frame_count_)*/0
  , /*decltype(_impl_.frame_time_total_ms_)*/0} {}
struct CMsgSource2PerfIntervalSampleDefaultTypeInternal {
  PROTOBUF_CONSTEXPR CMsgSource2PerfIntervalSampleDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~CMsgSource2PerfIntervalSampleDefaultTypeInternal() {}
  union {
    CMsgSource2PerfIntervalSample _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CMsgSource2PerfIntervalSampleDefaultTypeInternal _CMsgSource2PerfIntervalSample_default_instance_;
PROTOBUF_CONSTEXPR CSource2Metrics_MatchPerfSummary_Notification_Client::CSource2Metrics_MatchPerfSummary_Notification_Client(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.perf_samples_)*/{}
  , /*decltype(_impl_.system_specs_)*/nullptr
  , /*decltype(_impl_.profile_)*/nullptr
  , /*decltype(_impl_.downstream_flow_)*/nullptr
  , /*decltype(_impl_.upstream_flow_)*/nullptr
  , /*decltype(_impl_.steamid_)*/uint64_t{0u}
  , /*decltype(_impl_.build_id_)*/0u} {}
struct CSource2Metrics_MatchPerfSummary_Notification_ClientDefaultTypeInternal {
  PROTOBUF_CONSTEXPR CSource2Metrics_MatchPerfSummary_Notification_ClientDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~CSource2Metrics_MatchPerfSummary_Notification_ClientDefaultTypeInternal() {}
  union {
    CSource2Metrics_MatchPerfSummary_Notification_Client _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CSource2Metrics_MatchPerfSummary_Notification_ClientDefaultTypeInternal _CSource2Metrics_MatchPerfSummary_Notification_Client_default_instance_;
PROTOBUF_CONSTEXPR CSource2Metrics_MatchPerfSummary_Notification::CSource2Metrics_MatchPerfSummary_Notification(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_._has_bits_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_.clients_)*/{}
  , /*decltype(_impl_.game_mode_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.map_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.server_profile_)*/nullptr
  , /*decltype(_impl_.appid_)*/0u
  , /*decltype(_impl_.server_build_id_)*/0u
  , /*decltype(_impl_.server_popid_)*/0u} {}
struct CSource2Metrics_MatchPerfSummary_NotificationDefaultTypeInternal {
  PROTOBUF_CONSTEXPR CSource2Metrics_MatchPerfSummary_NotificationDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~CSource2Metrics_MatchPerfSummary_NotificationDefaultTypeInternal() {}
  union {
    CSource2Metrics_MatchPerfSummary_Notification _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CSource2Metrics_MatchPerfSummary_NotificationDefaultTypeInternal _CSource2Metrics_MatchPerfSummary_Notification_default_instance_;
static ::_pb::Metadata file_level_metadata_source2_5fsteam_5fstats_2eproto[8];
static constexpr ::_pb::EnumDescriptor const** file_level_enum_descriptors_source2_5fsteam_5fstats_2eproto = nullptr;
static constexpr ::_pb::ServiceDescriptor const** file_level_service_descriptors_source2_5fsteam_5fstats_2eproto = nullptr;

const uint32_t TableStruct_source2_5fsteam_5fstats_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  PROTOBUF_FIELD_OFFSET(::CMsgSource2SystemSpecs, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2SystemSpecs, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::CMsgSource2SystemSpecs, _impl_.cpu_id_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2SystemSpecs, _impl_.cpu_brand_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2SystemSpecs, _impl_.cpu_model_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2SystemSpecs, _impl_.cpu_num_physical_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2SystemSpecs, _impl_.ram_physical_total_mb_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2SystemSpecs, _impl_.gpu_rendersystem_dll_name_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2SystemSpecs, _impl_.gpu_vendor_id_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2SystemSpecs, _impl_.gpu_driver_name_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2SystemSpecs, _impl_.gpu_driver_version_high_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2SystemSpecs, _impl_.gpu_driver_version_low_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2SystemSpecs, _impl_.gpu_dx_support_level_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2SystemSpecs, _impl_.gpu_texture_memory_size_mb_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2SystemSpecs, _impl_.backbuffer_width_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2SystemSpecs, _impl_.backbuffer_height_),
  0,
  1,
  4,
  5,
  6,
  2,
  7,
  3,
  8,
  9,
  10,
  11,
  12,
  13,
  PROTOBUF_FIELD_OFFSET(::CMsgSource2VProfLiteReportItem, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2VProfLiteReportItem, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::CMsgSource2VProfLiteReportItem, _impl_.name_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2VProfLiteReportItem, _impl_.active_samples_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2VProfLiteReportItem, _impl_.active_samples_1secmax_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2VProfLiteReportItem, _impl_.usec_max_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2VProfLiteReportItem, _impl_.usec_avg_active_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2VProfLiteReportItem, _impl_.usec_p50_active_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2VProfLiteReportItem, _impl_.usec_p99_active_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2VProfLiteReportItem, _impl_.usec_avg_all_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2VProfLiteReportItem, _impl_.usec_p50_all_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2VProfLiteReportItem, _impl_.usec_p99_all_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2VProfLiteReportItem, _impl_.usec_1secmax_avg_active_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2VProfLiteReportItem, _impl_.usec_1secmax_p50_active_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2VProfLiteReportItem, _impl_.usec_1secmax_p95_active_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2VProfLiteReportItem, _impl_.usec_1secmax_p99_active_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2VProfLiteReportItem, _impl_.usec_1secmax_avg_all_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2VProfLiteReportItem, _impl_.usec_1secmax_p50_all_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2VProfLiteReportItem, _impl_.usec_1secmax_p95_all_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2VProfLiteReportItem, _impl_.usec_1secmax_p99_all_),
  0,
  1,
  3,
  2,
  4,
  5,
  6,
  7,
  8,
  9,
  10,
  11,
  12,
  13,
  14,
  15,
  16,
  17,
  PROTOBUF_FIELD_OFFSET(::CMsgSource2VProfLiteReport, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2VProfLiteReport, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::CMsgSource2VProfLiteReport, _impl_.total_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2VProfLiteReport, _impl_.items_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2VProfLiteReport, _impl_.discarded_frames_),
  0,
  ~0u,
  1,
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.duration_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.bytes_total_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.bytes_total_reliable_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.bytes_total_voice_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.bytes_sec_p95_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.bytes_sec_p99_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.enginemsgs_total_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.enginemsgs_sec_p95_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.enginemsgs_sec_p99_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.netframes_total_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.netframes_dropped_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.netframes_outoforder_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.netframes_size_exceeds_mtu_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.netframes_size_p95_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.netframes_size_p99_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.ticks_total_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.ticks_good_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.ticks_good_almost_late_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.ticks_fixed_dropped_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.ticks_fixed_late_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.ticks_bad_dropped_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.ticks_bad_late_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.ticks_bad_other_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.tick_missrate_samples_total_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.tick_missrate_samples_perfect_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.tick_missrate_samples_perfectnet_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.tick_missratenet_p75_x10_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.tick_missratenet_p95_x10_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.tick_missratenet_p99_x10_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.recvmargin_p1_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.recvmargin_p5_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.recvmargin_p25_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.recvmargin_p50_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.recvmargin_p75_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.recvmargin_p95_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.netframe_jitter_p50_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.netframe_jitter_p99_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.interval_peakjitter_p50_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.interval_peakjitter_p95_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.packet_misdelivery_rate_p50_x4_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.packet_misdelivery_rate_p95_x4_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.net_ping_p5_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.net_ping_p50_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2NetworkFlowQuality, _impl_.net_ping_p95_),
  1,
  0,
  3,
  4,
  2,
  5,
  6,
  7,
  8,
  9,
  10,
  11,
  12,
  13,
  14,
  15,
  16,
  17,
  18,
  19,
  20,
  21,
  22,
  23,
  24,
  25,
  26,
  27,
  28,
  29,
  30,
  31,
  32,
  33,
  34,
  35,
  36,
  37,
  38,
  39,
  40,
  41,
  42,
  43,
  PROTOBUF_FIELD_OFFSET(::CMsgSource2PerfIntervalSample_Tag, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2PerfIntervalSample_Tag, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::CMsgSource2PerfIntervalSample_Tag, _impl_.tag_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2PerfIntervalSample_Tag, _impl_.max_value_),
  0,
  1,
  PROTOBUF_FIELD_OFFSET(::CMsgSource2PerfIntervalSample, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2PerfIntervalSample, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::CMsgSource2PerfIntervalSample, _impl_.frame_time_max_ms_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2PerfIntervalSample, _impl_.frame_time_avg_ms_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2PerfIntervalSample, _impl_.frame_time_min_ms_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2PerfIntervalSample, _impl_.frame_count_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2PerfIntervalSample, _impl_.frame_time_total_ms_),
  PROTOBUF_FIELD_OFFSET(::CMsgSource2PerfIntervalSample, _impl_.tags_),
  0,
  1,
  2,
  3,
  4,
  ~0u,
  PROTOBUF_FIELD_OFFSET(::CSource2Metrics_MatchPerfSummary_Notification_Client, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::CSource2Metrics_MatchPerfSummary_Notification_Client, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::CSource2Metrics_MatchPerfSummary_Notification_Client, _impl_.system_specs_),
  PROTOBUF_FIELD_OFFSET(::CSource2Metrics_MatchPerfSummary_Notification_Client, _impl_.profile_),
  PROTOBUF_FIELD_OFFSET(::CSource2Metrics_MatchPerfSummary_Notification_Client, _impl_.build_id_),
  PROTOBUF_FIELD_OFFSET(::CSource2Metrics_MatchPerfSummary_Notification_Client, _impl_.downstream_flow_),
  PROTOBUF_FIELD_OFFSET(::CSource2Metrics_MatchPerfSummary_Notification_Client, _impl_.upstream_flow_),
  PROTOBUF_FIELD_OFFSET(::CSource2Metrics_MatchPerfSummary_Notification_Client, _impl_.steamid_),
  PROTOBUF_FIELD_OFFSET(::CSource2Metrics_MatchPerfSummary_Notification_Client, _impl_.perf_samples_),
  0,
  1,
  5,
  2,
  3,
  4,
  ~0u,
  PROTOBUF_FIELD_OFFSET(::CSource2Metrics_MatchPerfSummary_Notification, _impl_._has_bits_),
  PROTOBUF_FIELD_OFFSET(::CSource2Metrics_MatchPerfSummary_Notification, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::CSource2Metrics_MatchPerfSummary_Notification, _impl_.appid_),
  PROTOBUF_FIELD_OFFSET(::CSource2Metrics_MatchPerfSummary_Notification, _impl_.game_mode_),
  PROTOBUF_FIELD_OFFSET(::CSource2Metrics_MatchPerfSummary_Notification, _impl_.server_build_id_),
  PROTOBUF_FIELD_OFFSET(::CSource2Metrics_MatchPerfSummary_Notification, _impl_.server_popid_),
  PROTOBUF_FIELD_OFFSET(::CSource2Metrics_MatchPerfSummary_Notification, _impl_.server_profile_),
  PROTOBUF_FIELD_OFFSET(::CSource2Metrics_MatchPerfSummary_Notification, _impl_.clients_),
  PROTOBUF_FIELD_OFFSET(::CSource2Metrics_MatchPerfSummary_Notification, _impl_.map_),
  3,
  0,
  4,
  5,
  2,
  ~0u,
  1,
};
static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  { 0, 20, -1, sizeof(::CMsgSource2SystemSpecs)},
  { 34, 58, -1, sizeof(::CMsgSource2VProfLiteReportItem)},
  { 76, 85, -1, sizeof(::CMsgSource2VProfLiteReport)},
  { 88, 138, -1, sizeof(::CMsgSource2NetworkFlowQuality)},
  { 182, 190, -1, sizeof(::CMsgSource2PerfIntervalSample_Tag)},
  { 192, 204, -1, sizeof(::CMsgSource2PerfIntervalSample)},
  { 210, 223, -1, sizeof(::CSource2Metrics_MatchPerfSummary_Notification_Client)},
  { 230, 243, -1, sizeof(::CSource2Metrics_MatchPerfSummary_Notification)},
};

static const ::_pb::Message* const file_default_instances[] = {
  &::_CMsgSource2SystemSpecs_default_instance_._instance,
  &::_CMsgSource2VProfLiteReportItem_default_instance_._instance,
  &::_CMsgSource2VProfLiteReport_default_instance_._instance,
  &::_CMsgSource2NetworkFlowQuality_default_instance_._instance,
  &::_CMsgSource2PerfIntervalSample_Tag_default_instance_._instance,
  &::_CMsgSource2PerfIntervalSample_default_instance_._instance,
  &::_CSource2Metrics_MatchPerfSummary_Notification_Client_default_instance_._instance,
  &::_CSource2Metrics_MatchPerfSummary_Notification_default_instance_._instance,
};

const char descriptor_table_protodef_source2_5fsteam_5fstats_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
  "\n\031source2_steam_stats.proto\"\222\003\n\026CMsgSour"
  "ce2SystemSpecs\022\016\n\006cpu_id\030\001 \001(\t\022\021\n\tcpu_br"
  "and\030\002 \001(\t\022\021\n\tcpu_model\030\003 \001(\r\022\030\n\020cpu_num_"
  "physical\030\004 \001(\r\022\035\n\025ram_physical_total_mb\030"
  "\025 \001(\r\022!\n\031gpu_rendersystem_dll_name\030) \001(\t"
  "\022\025\n\rgpu_vendor_id\030* \001(\r\022\027\n\017gpu_driver_na"
  "me\030+ \001(\t\022\037\n\027gpu_driver_version_high\030, \001("
  "\r\022\036\n\026gpu_driver_version_low\030- \001(\r\022\034\n\024gpu"
  "_dx_support_level\030. \001(\r\022\"\n\032gpu_texture_m"
  "emory_size_mb\030/ \001(\r\022\030\n\020backbuffer_width\030"
  "3 \001(\r\022\031\n\021backbuffer_height\0304 \001(\r\"\201\004\n\036CMs"
  "gSource2VProfLiteReportItem\022\014\n\004name\030\001 \001("
  "\t\022\026\n\016active_samples\030\002 \001(\r\022\036\n\026active_samp"
  "les_1secmax\030\004 \001(\r\022\020\n\010usec_max\030\003 \001(\r\022\027\n\017u"
  "sec_avg_active\030\013 \001(\r\022\027\n\017usec_p50_active\030"
  "\014 \001(\r\022\027\n\017usec_p99_active\030\r \001(\r\022\024\n\014usec_a"
  "vg_all\030\025 \001(\r\022\024\n\014usec_p50_all\030\026 \001(\r\022\024\n\014us"
  "ec_p99_all\030\027 \001(\r\022\037\n\027usec_1secmax_avg_act"
  "ive\030\037 \001(\r\022\037\n\027usec_1secmax_p50_active\030  \001"
  "(\r\022\037\n\027usec_1secmax_p95_active\030! \001(\r\022\037\n\027u"
  "sec_1secmax_p99_active\030\" \001(\r\022\034\n\024usec_1se"
  "cmax_avg_all\030) \001(\r\022\034\n\024usec_1secmax_p50_a"
  "ll\030* \001(\r\022\034\n\024usec_1secmax_p95_all\030+ \001(\r\022\034"
  "\n\024usec_1secmax_p99_all\030, \001(\r\"\226\001\n\032CMsgSou"
  "rce2VProfLiteReport\022.\n\005total\030\001 \001(\0132\037.CMs"
  "gSource2VProfLiteReportItem\022.\n\005items\030\002 \003"
  "(\0132\037.CMsgSource2VProfLiteReportItem\022\030\n\020d"
  "iscarded_frames\030\003 \001(\r\"\360\t\n\035CMsgSource2Net"
  "workFlowQuality\022\020\n\010duration\030\001 \001(\r\022\023\n\013byt"
  "es_total\030\005 \001(\004\022\034\n\024bytes_total_reliable\030\006"
  " \001(\004\022\031\n\021bytes_total_voice\030\007 \001(\004\022\025\n\rbytes"
  "_sec_p95\030\n \001(\r\022\025\n\rbytes_sec_p99\030\013 \001(\r\022\030\n"
  "\020enginemsgs_total\030\024 \001(\r\022\032\n\022enginemsgs_se"
  "c_p95\030\025 \001(\r\022\032\n\022enginemsgs_sec_p99\030\026 \001(\r\022"
  "\027\n\017netframes_total\030\036 \001(\r\022\031\n\021netframes_dr"
  "opped\030\037 \001(\r\022\034\n\024netframes_outoforder\030  \001("
  "\r\022\"\n\032netframes_size_exceeds_mtu\030\" \001(\r\022\032\n"
  "\022netframes_size_p95\030# \001(\r\022\032\n\022netframes_s"
  "ize_p99\030$ \001(\r\022\023\n\013ticks_total\030( \001(\r\022\022\n\nti"
  "cks_good\030) \001(\r\022\036\n\026ticks_good_almost_late"
  "\030* \001(\r\022\033\n\023ticks_fixed_dropped\030+ \001(\r\022\030\n\020t"
  "icks_fixed_late\030, \001(\r\022\031\n\021ticks_bad_dropp"
  "ed\030- \001(\r\022\026\n\016ticks_bad_late\030. \001(\r\022\027\n\017tick"
  "s_bad_other\030/ \001(\r\022#\n\033tick_missrate_sampl"
  "es_total\0302 \001(\r\022%\n\035tick_missrate_samples_"
  "perfect\0303 \001(\r\022(\n tick_missrate_samples_p"
  "erfectnet\0304 \001(\r\022 \n\030tick_missratenet_p75_"
  "x10\0305 \001(\r\022 \n\030tick_missratenet_p95_x10\0306 "
  "\001(\r\022 \n\030tick_missratenet_p99_x10\0307 \001(\r\022\025\n"
  "\rrecvmargin_p1\030= \001(\021\022\025\n\rrecvmargin_p5\030> "
  "\001(\021\022\026\n\016recvmargin_p25\030\? \001(\021\022\026\n\016recvmargi"
  "n_p50\030@ \001(\021\022\026\n\016recvmargin_p75\030A \001(\021\022\026\n\016r"
  "ecvmargin_p95\030B \001(\021\022\033\n\023netframe_jitter_p"
  "50\030F \001(\r\022\033\n\023netframe_jitter_p99\030G \001(\r\022\037\n"
  "\027interval_peakjitter_p50\030H \001(\r\022\037\n\027interv"
  "al_peakjitter_p95\030I \001(\r\022&\n\036packet_misdel"
  "ivery_rate_p50_x4\030J \001(\r\022&\n\036packet_misdel"
  "ivery_rate_p95_x4\030K \001(\r\022\023\n\013net_ping_p5\030P"
  " \001(\r\022\024\n\014net_ping_p50\030Q \001(\r\022\024\n\014net_ping_p"
  "95\030R \001(\r\"\373\001\n\035CMsgSource2PerfIntervalSamp"
  "le\022\031\n\021frame_time_max_ms\030\001 \001(\002\022\031\n\021frame_t"
  "ime_avg_ms\030\002 \001(\002\022\031\n\021frame_time_min_ms\030\003 "
  "\001(\002\022\023\n\013frame_count\030\004 \001(\005\022\033\n\023frame_time_t"
  "otal_ms\030\005 \001(\002\0220\n\004tags\030\006 \003(\0132\".CMsgSource"
  "2PerfIntervalSample.Tag\032%\n\003Tag\022\013\n\003tag\030\001 "
  "\001(\t\022\021\n\tmax_value\030\002 \001(\r\"\273\004\n-CSource2Metri"
  "cs_MatchPerfSummary_Notification\022\r\n\005appi"
  "d\030\001 \001(\r\022\021\n\tgame_mode\030\002 \001(\t\022\027\n\017server_bui"
  "ld_id\030\003 \001(\r\022\024\n\014server_popid\030\004 \001(\007\0223\n\016ser"
  "ver_profile\030\n \001(\0132\033.CMsgSource2VProfLite"
  "Report\022F\n\007clients\030\013 \003(\01325.CSource2Metric"
  "s_MatchPerfSummary_Notification.Client\022\013"
  "\n\003map\030\024 \001(\t\032\256\002\n\006Client\022-\n\014system_specs\030\001"
  " \001(\0132\027.CMsgSource2SystemSpecs\022,\n\007profile"
  "\030\002 \001(\0132\033.CMsgSource2VProfLiteReport\022\020\n\010b"
  "uild_id\030\003 \001(\r\0227\n\017downstream_flow\030\004 \001(\0132\036"
  ".CMsgSource2NetworkFlowQuality\0225\n\rupstre"
  "am_flow\030\005 \001(\0132\036.CMsgSource2NetworkFlowQu"
  "ality\022\017\n\007steamid\030\n \001(\006\0224\n\014perf_samples\030\013"
  " \003(\0132\036.CMsgSource2PerfIntervalSample"
  ;
static ::_pbi::once_flag descriptor_table_source2_5fsteam_5fstats_2eproto_once;
const ::_pbi::DescriptorTable descriptor_table_source2_5fsteam_5fstats_2eproto = {
    false, false, 3196, descriptor_table_protodef_source2_5fsteam_5fstats_2eproto,
    "source2_steam_stats.proto",
    &descriptor_table_source2_5fsteam_5fstats_2eproto_once, nullptr, 0, 8,
    schemas, file_default_instances, TableStruct_source2_5fsteam_5fstats_2eproto::offsets,
    file_level_metadata_source2_5fsteam_5fstats_2eproto, file_level_enum_descriptors_source2_5fsteam_5fstats_2eproto,
    file_level_service_descriptors_source2_5fsteam_5fstats_2eproto,
};
PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_source2_5fsteam_5fstats_2eproto_getter() {
  return &descriptor_table_source2_5fsteam_5fstats_2eproto;
}

// Force running AddDescriptors() at dynamic initialization time.
PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::_pbi::AddDescriptorsRunner dynamic_init_dummy_source2_5fsteam_5fstats_2eproto(&descriptor_table_source2_5fsteam_5fstats_2eproto);

// ===================================================================

class CMsgSource2SystemSpecs::_Internal {
 public:
  using HasBits = decltype(std::declval<CMsgSource2SystemSpecs>()._impl_._has_bits_);
  static void set_has_cpu_id(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static void set_has_cpu_brand(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
  static void set_has_cpu_model(HasBits* has_bits) {
    (*has_bits)[0] |= 16u;
  }
  static void set_has_cpu_num_physical(HasBits* has_bits) {
    (*has_bits)[0] |= 32u;
  }
  static void set_has_ram_physical_total_mb(HasBits* has_bits) {
    (*has_bits)[0] |= 64u;
  }
  static void set_has_gpu_rendersystem_dll_name(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
  static void set_has_gpu_vendor_id(HasBits* has_bits) {
    (*has_bits)[0] |= 128u;
  }
  static void set_has_gpu_driver_name(HasBits* has_bits) {
    (*has_bits)[0] |= 8u;
  }
  static void set_has_gpu_driver_version_high(HasBits* has_bits) {
    (*has_bits)[0] |= 256u;
  }
  static void set_has_gpu_driver_version_low(HasBits* has_bits) {
    (*has_bits)[0] |= 512u;
  }
  static void set_has_gpu_dx_support_level(HasBits* has_bits) {
    (*has_bits)[0] |= 1024u;
  }
  static void set_has_gpu_texture_memory_size_mb(HasBits* has_bits) {
    (*has_bits)[0] |= 2048u;
  }
  static void set_has_backbuffer_width(HasBits* has_bits) {
    (*has_bits)[0] |= 4096u;
  }
  static void set_has_backbuffer_height(HasBits* has_bits) {
    (*has_bits)[0] |= 8192u;
  }
};

CMsgSource2SystemSpecs::CMsgSource2SystemSpecs(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:CMsgSource2SystemSpecs)
}
CMsgSource2SystemSpecs::CMsgSource2SystemSpecs(const CMsgSource2SystemSpecs& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  CMsgSource2SystemSpecs* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.cpu_id_){}
    , decltype(_impl_.cpu_brand_){}
    , decltype(_impl_.gpu_rendersystem_dll_name_){}
    , decltype(_impl_.gpu_driver_name_){}
    , decltype(_impl_.cpu_model_){}
    , decltype(_impl_.cpu_num_physical_){}
    , decltype(_impl_.ram_physical_total_mb_){}
    , decltype(_impl_.gpu_vendor_id_){}
    , decltype(_impl_.gpu_driver_version_high_){}
    , decltype(_impl_.gpu_driver_version_low_){}
    , decltype(_impl_.gpu_dx_support_level_){}
    , decltype(_impl_.gpu_texture_memory_size_mb_){}
    , decltype(_impl_.backbuffer_width_){}
    , decltype(_impl_.backbuffer_height_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.cpu_id_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.cpu_id_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (from._internal_has_cpu_id()) {
    _this->_impl_.cpu_id_.Set(from._internal_cpu_id(), 
      _this->GetArenaForAllocation());
  }
  _impl_.cpu_brand_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.cpu_brand_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (from._internal_has_cpu_brand()) {
    _this->_impl_.cpu_brand_.Set(from._internal_cpu_brand(), 
      _this->GetArenaForAllocation());
  }
  _impl_.gpu_rendersystem_dll_name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.gpu_rendersystem_dll_name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (from._internal_has_gpu_rendersystem_dll_name()) {
    _this->_impl_.gpu_rendersystem_dll_name_.Set(from._internal_gpu_rendersystem_dll_name(), 
      _this->GetArenaForAllocation());
  }
  _impl_.gpu_driver_name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.gpu_driver_name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (from._internal_has_gpu_driver_name()) {
    _this->_impl_.gpu_driver_name_.Set(from._internal_gpu_driver_name(), 
      _this->GetArenaForAllocation());
  }
  ::memcpy(&_impl_.cpu_model_, &from._impl_.cpu_model_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.backbuffer_height_) -
    reinterpret_cast<char*>(&_impl_.cpu_model_)) + sizeof(_impl_.backbuffer_height_));
  // @@protoc_insertion_point(copy_constructor:CMsgSource2SystemSpecs)
}

inline void CMsgSource2SystemSpecs::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.cpu_id_){}
    , decltype(_impl_.cpu_brand_){}
    , decltype(_impl_.gpu_rendersystem_dll_name_){}
    , decltype(_impl_.gpu_driver_name_){}
    , decltype(_impl_.cpu_model_){0u}
    , decltype(_impl_.cpu_num_physical_){0u}
    , decltype(_impl_.ram_physical_total_mb_){0u}
    , decltype(_impl_.gpu_vendor_id_){0u}
    , decltype(_impl_.gpu_driver_version_high_){0u}
    , decltype(_impl_.gpu_driver_version_low_){0u}
    , decltype(_impl_.gpu_dx_support_level_){0u}
    , decltype(_impl_.gpu_texture_memory_size_mb_){0u}
    , decltype(_impl_.backbuffer_width_){0u}
    , decltype(_impl_.backbuffer_height_){0u}
  };
  _impl_.cpu_id_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.cpu_id_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.cpu_brand_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.cpu_brand_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.gpu_rendersystem_dll_name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.gpu_rendersystem_dll_name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.gpu_driver_name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.gpu_driver_name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

CMsgSource2SystemSpecs::~CMsgSource2SystemSpecs() {
  // @@protoc_insertion_point(destructor:CMsgSource2SystemSpecs)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void CMsgSource2SystemSpecs::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.cpu_id_.Destroy();
  _impl_.cpu_brand_.Destroy();
  _impl_.gpu_rendersystem_dll_name_.Destroy();
  _impl_.gpu_driver_name_.Destroy();
}

void CMsgSource2SystemSpecs::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void CMsgSource2SystemSpecs::Clear() {
// @@protoc_insertion_point(message_clear_start:CMsgSource2SystemSpecs)
  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 (cached_has_bits & 0x0000000fu) {
    if (cached_has_bits & 0x00000001u) {
      _impl_.cpu_id_.ClearNonDefaultToEmpty();
    }
    if (cached_has_bits & 0x00000002u) {
      _impl_.cpu_brand_.ClearNonDefaultToEmpty();
    }
    if (cached_has_bits & 0x00000004u) {
      _impl_.gpu_rendersystem_dll_name_.ClearNonDefaultToEmpty();
    }
    if (cached_has_bits & 0x00000008u) {
      _impl_.gpu_driver_name_.ClearNonDefaultToEmpty();
    }
  }
  if (cached_has_bits & 0x000000f0u) {
    ::memset(&_impl_.cpu_model_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&_impl_.gpu_vendor_id_) -
        reinterpret_cast<char*>(&_impl_.cpu_model_)) + sizeof(_impl_.gpu_vendor_id_));
  }
  if (cached_has_bits & 0x00003f00u) {
    ::memset(&_impl_.gpu_driver_version_high_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&_impl_.backbuffer_height_) -
        reinterpret_cast<char*>(&_impl_.gpu_driver_version_high_)) + sizeof(_impl_.backbuffer_height_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CMsgSource2SystemSpecs::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional string cpu_id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_cpu_id();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          #ifndef NDEBUG
          ::_pbi::VerifyUTF8(str, "CMsgSource2SystemSpecs.cpu_id");
          #endif  // !NDEBUG
        } else
          goto handle_unusual;
        continue;
      // optional string cpu_brand = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_cpu_brand();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          #ifndef NDEBUG
          ::_pbi::VerifyUTF8(str, "CMsgSource2SystemSpecs.cpu_brand");
          #endif  // !NDEBUG
        } else
          goto handle_unusual;
        continue;
      // optional uint32 cpu_model = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          _Internal::set_has_cpu_model(&has_bits);
          _impl_.cpu_model_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 cpu_num_physical = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          _Internal::set_has_cpu_num_physical(&has_bits);
          _impl_.cpu_num_physical_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 ram_physical_total_mb = 21;
      case 21:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 168)) {
          _Internal::set_has_ram_physical_total_mb(&has_bits);
          _impl_.ram_physical_total_mb_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional string gpu_rendersystem_dll_name = 41;
      case 41:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
          auto str = _internal_mutable_gpu_rendersystem_dll_name();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          #ifndef NDEBUG
          ::_pbi::VerifyUTF8(str, "CMsgSource2SystemSpecs.gpu_rendersystem_dll_name");
          #endif  // !NDEBUG
        } else
          goto handle_unusual;
        continue;
      // optional uint32 gpu_vendor_id = 42;
      case 42:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 80)) {
          _Internal::set_has_gpu_vendor_id(&has_bits);
          _impl_.gpu_vendor_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional string gpu_driver_name = 43;
      case 43:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 90)) {
          auto str = _internal_mutable_gpu_driver_name();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          #ifndef NDEBUG
          ::_pbi::VerifyUTF8(str, "CMsgSource2SystemSpecs.gpu_driver_name");
          #endif  // !NDEBUG
        } else
          goto handle_unusual;
        continue;
      // optional uint32 gpu_driver_version_high = 44;
      case 44:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 96)) {
          _Internal::set_has_gpu_driver_version_high(&has_bits);
          _impl_.gpu_driver_version_high_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 gpu_driver_version_low = 45;
      case 45:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 104)) {
          _Internal::set_has_gpu_driver_version_low(&has_bits);
          _impl_.gpu_driver_version_low_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 gpu_dx_support_level = 46;
      case 46:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 112)) {
          _Internal::set_has_gpu_dx_support_level(&has_bits);
          _impl_.gpu_dx_support_level_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 gpu_texture_memory_size_mb = 47;
      case 47:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 120)) {
          _Internal::set_has_gpu_texture_memory_size_mb(&has_bits);
          _impl_.gpu_texture_memory_size_mb_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 backbuffer_width = 51;
      case 51:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 152)) {
          _Internal::set_has_backbuffer_width(&has_bits);
          _impl_.backbuffer_width_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 backbuffer_height = 52;
      case 52:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 160)) {
          _Internal::set_has_backbuffer_height(&has_bits);
          _impl_.backbuffer_height_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CMsgSource2SystemSpecs::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:CMsgSource2SystemSpecs)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // optional string cpu_id = 1;
  if (cached_has_bits & 0x00000001u) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::VerifyUTF8StringNamedField(
      this->_internal_cpu_id().data(), static_cast<int>(this->_internal_cpu_id().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SERIALIZE,
      "CMsgSource2SystemSpecs.cpu_id");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_cpu_id(), target);
  }

  // optional string cpu_brand = 2;
  if (cached_has_bits & 0x00000002u) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::VerifyUTF8StringNamedField(
      this->_internal_cpu_brand().data(), static_cast<int>(this->_internal_cpu_brand().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SERIALIZE,
      "CMsgSource2SystemSpecs.cpu_brand");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_cpu_brand(), target);
  }

  // optional uint32 cpu_model = 3;
  if (cached_has_bits & 0x00000010u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(3, this->_internal_cpu_model(), target);
  }

  // optional uint32 cpu_num_physical = 4;
  if (cached_has_bits & 0x00000020u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(4, this->_internal_cpu_num_physical(), target);
  }

  // optional uint32 ram_physical_total_mb = 21;
  if (cached_has_bits & 0x00000040u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(21, this->_internal_ram_physical_total_mb(), target);
  }

  // optional string gpu_rendersystem_dll_name = 41;
  if (cached_has_bits & 0x00000004u) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::VerifyUTF8StringNamedField(
      this->_internal_gpu_rendersystem_dll_name().data(), static_cast<int>(this->_internal_gpu_rendersystem_dll_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SERIALIZE,
      "CMsgSource2SystemSpecs.gpu_rendersystem_dll_name");
    target = stream->WriteStringMaybeAliased(
        41, this->_internal_gpu_rendersystem_dll_name(), target);
  }

  // optional uint32 gpu_vendor_id = 42;
  if (cached_has_bits & 0x00000080u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(42, this->_internal_gpu_vendor_id(), target);
  }

  // optional string gpu_driver_name = 43;
  if (cached_has_bits & 0x00000008u) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::VerifyUTF8StringNamedField(
      this->_internal_gpu_driver_name().data(), static_cast<int>(this->_internal_gpu_driver_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SERIALIZE,
      "CMsgSource2SystemSpecs.gpu_driver_name");
    target = stream->WriteStringMaybeAliased(
        43, this->_internal_gpu_driver_name(), target);
  }

  // optional uint32 gpu_driver_version_high = 44;
  if (cached_has_bits & 0x00000100u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(44, this->_internal_gpu_driver_version_high(), target);
  }

  // optional uint32 gpu_driver_version_low = 45;
  if (cached_has_bits & 0x00000200u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(45, this->_internal_gpu_driver_version_low(), target);
  }

  // optional uint32 gpu_dx_support_level = 46;
  if (cached_has_bits & 0x00000400u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(46, this->_internal_gpu_dx_support_level(), target);
  }

  // optional uint32 gpu_texture_memory_size_mb = 47;
  if (cached_has_bits & 0x00000800u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(47, this->_internal_gpu_texture_memory_size_mb(), target);
  }

  // optional uint32 backbuffer_width = 51;
  if (cached_has_bits & 0x00001000u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(51, this->_internal_backbuffer_width(), target);
  }

  // optional uint32 backbuffer_height = 52;
  if (cached_has_bits & 0x00002000u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(52, this->_internal_backbuffer_height(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:CMsgSource2SystemSpecs)
  return target;
}

size_t CMsgSource2SystemSpecs::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:CMsgSource2SystemSpecs)
  size_t total_size = 0;

  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 (cached_has_bits & 0x000000ffu) {
    // optional string cpu_id = 1;
    if (cached_has_bits & 0x00000001u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
          this->_internal_cpu_id());
    }

    // optional string cpu_brand = 2;
    if (cached_has_bits & 0x00000002u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
          this->_internal_cpu_brand());
    }

    // optional string gpu_rendersystem_dll_name = 41;
    if (cached_has_bits & 0x00000004u) {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
          this->_internal_gpu_rendersystem_dll_name());
    }

    // optional string gpu_driver_name = 43;
    if (cached_has_bits & 0x00000008u) {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
          this->_internal_gpu_driver_name());
    }

    // optional uint32 cpu_model = 3;
    if (cached_has_bits & 0x00000010u) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_cpu_model());
    }

    // optional uint32 cpu_num_physical = 4;
    if (cached_has_bits & 0x00000020u) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_cpu_num_physical());
    }

    // optional uint32 ram_physical_total_mb = 21;
    if (cached_has_bits & 0x00000040u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_ram_physical_total_mb());
    }

    // optional uint32 gpu_vendor_id = 42;
    if (cached_has_bits & 0x00000080u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_gpu_vendor_id());
    }

  }
  if (cached_has_bits & 0x00003f00u) {
    // optional uint32 gpu_driver_version_high = 44;
    if (cached_has_bits & 0x00000100u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_gpu_driver_version_high());
    }

    // optional uint32 gpu_driver_version_low = 45;
    if (cached_has_bits & 0x00000200u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_gpu_driver_version_low());
    }

    // optional uint32 gpu_dx_support_level = 46;
    if (cached_has_bits & 0x00000400u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_gpu_dx_support_level());
    }

    // optional uint32 gpu_texture_memory_size_mb = 47;
    if (cached_has_bits & 0x00000800u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_gpu_texture_memory_size_mb());
    }

    // optional uint32 backbuffer_width = 51;
    if (cached_has_bits & 0x00001000u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_backbuffer_width());
    }

    // optional uint32 backbuffer_height = 52;
    if (cached_has_bits & 0x00002000u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_backbuffer_height());
    }

  }
  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CMsgSource2SystemSpecs::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    CMsgSource2SystemSpecs::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CMsgSource2SystemSpecs::GetClassData() const { return &_class_data_; }


void CMsgSource2SystemSpecs::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<CMsgSource2SystemSpecs*>(&to_msg);
  auto& from = static_cast<const CMsgSource2SystemSpecs&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:CMsgSource2SystemSpecs)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x000000ffu) {
    if (cached_has_bits & 0x00000001u) {
      _this->_internal_set_cpu_id(from._internal_cpu_id());
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_internal_set_cpu_brand(from._internal_cpu_brand());
    }
    if (cached_has_bits & 0x00000004u) {
      _this->_internal_set_gpu_rendersystem_dll_name(from._internal_gpu_rendersystem_dll_name());
    }
    if (cached_has_bits & 0x00000008u) {
      _this->_internal_set_gpu_driver_name(from._internal_gpu_driver_name());
    }
    if (cached_has_bits & 0x00000010u) {
      _this->_impl_.cpu_model_ = from._impl_.cpu_model_;
    }
    if (cached_has_bits & 0x00000020u) {
      _this->_impl_.cpu_num_physical_ = from._impl_.cpu_num_physical_;
    }
    if (cached_has_bits & 0x00000040u) {
      _this->_impl_.ram_physical_total_mb_ = from._impl_.ram_physical_total_mb_;
    }
    if (cached_has_bits & 0x00000080u) {
      _this->_impl_.gpu_vendor_id_ = from._impl_.gpu_vendor_id_;
    }
    _this->_impl_._has_bits_[0] |= cached_has_bits;
  }
  if (cached_has_bits & 0x00003f00u) {
    if (cached_has_bits & 0x00000100u) {
      _this->_impl_.gpu_driver_version_high_ = from._impl_.gpu_driver_version_high_;
    }
    if (cached_has_bits & 0x00000200u) {
      _this->_impl_.gpu_driver_version_low_ = from._impl_.gpu_driver_version_low_;
    }
    if (cached_has_bits & 0x00000400u) {
      _this->_impl_.gpu_dx_support_level_ = from._impl_.gpu_dx_support_level_;
    }
    if (cached_has_bits & 0x00000800u) {
      _this->_impl_.gpu_texture_memory_size_mb_ = from._impl_.gpu_texture_memory_size_mb_;
    }
    if (cached_has_bits & 0x00001000u) {
      _this->_impl_.backbuffer_width_ = from._impl_.backbuffer_width_;
    }
    if (cached_has_bits & 0x00002000u) {
      _this->_impl_.backbuffer_height_ = from._impl_.backbuffer_height_;
    }
    _this->_impl_._has_bits_[0] |= cached_has_bits;
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

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

bool CMsgSource2SystemSpecs::IsInitialized() const {
  return true;
}

void CMsgSource2SystemSpecs::InternalSwap(CMsgSource2SystemSpecs* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.cpu_id_, lhs_arena,
      &other->_impl_.cpu_id_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.cpu_brand_, lhs_arena,
      &other->_impl_.cpu_brand_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.gpu_rendersystem_dll_name_, lhs_arena,
      &other->_impl_.gpu_rendersystem_dll_name_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.gpu_driver_name_, lhs_arena,
      &other->_impl_.gpu_driver_name_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(CMsgSource2SystemSpecs, _impl_.backbuffer_height_)
      + sizeof(CMsgSource2SystemSpecs::_impl_.backbuffer_height_)
      - PROTOBUF_FIELD_OFFSET(CMsgSource2SystemSpecs, _impl_.cpu_model_)>(
          reinterpret_cast<char*>(&_impl_.cpu_model_),
          reinterpret_cast<char*>(&other->_impl_.cpu_model_));
}

::PROTOBUF_NAMESPACE_ID::Metadata CMsgSource2SystemSpecs::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_source2_5fsteam_5fstats_2eproto_getter, &descriptor_table_source2_5fsteam_5fstats_2eproto_once,
      file_level_metadata_source2_5fsteam_5fstats_2eproto[0]);
}

// ===================================================================

class CMsgSource2VProfLiteReportItem::_Internal {
 public:
  using HasBits = decltype(std::declval<CMsgSource2VProfLiteReportItem>()._impl_._has_bits_);
  static void set_has_name(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static void set_has_active_samples(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
  static void set_has_active_samples_1secmax(HasBits* has_bits) {
    (*has_bits)[0] |= 8u;
  }
  static void set_has_usec_max(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
  static void set_has_usec_avg_active(HasBits* has_bits) {
    (*has_bits)[0] |= 16u;
  }
  static void set_has_usec_p50_active(HasBits* has_bits) {
    (*has_bits)[0] |= 32u;
  }
  static void set_has_usec_p99_active(HasBits* has_bits) {
    (*has_bits)[0] |= 64u;
  }
  static void set_has_usec_avg_all(HasBits* has_bits) {
    (*has_bits)[0] |= 128u;
  }
  static void set_has_usec_p50_all(HasBits* has_bits) {
    (*has_bits)[0] |= 256u;
  }
  static void set_has_usec_p99_all(HasBits* has_bits) {
    (*has_bits)[0] |= 512u;
  }
  static void set_has_usec_1secmax_avg_active(HasBits* has_bits) {
    (*has_bits)[0] |= 1024u;
  }
  static void set_has_usec_1secmax_p50_active(HasBits* has_bits) {
    (*has_bits)[0] |= 2048u;
  }
  static void set_has_usec_1secmax_p95_active(HasBits* has_bits) {
    (*has_bits)[0] |= 4096u;
  }
  static void set_has_usec_1secmax_p99_active(HasBits* has_bits) {
    (*has_bits)[0] |= 8192u;
  }
  static void set_has_usec_1secmax_avg_all(HasBits* has_bits) {
    (*has_bits)[0] |= 16384u;
  }
  static void set_has_usec_1secmax_p50_all(HasBits* has_bits) {
    (*has_bits)[0] |= 32768u;
  }
  static void set_has_usec_1secmax_p95_all(HasBits* has_bits) {
    (*has_bits)[0] |= 65536u;
  }
  static void set_has_usec_1secmax_p99_all(HasBits* has_bits) {
    (*has_bits)[0] |= 131072u;
  }
};

CMsgSource2VProfLiteReportItem::CMsgSource2VProfLiteReportItem(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:CMsgSource2VProfLiteReportItem)
}
CMsgSource2VProfLiteReportItem::CMsgSource2VProfLiteReportItem(const CMsgSource2VProfLiteReportItem& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  CMsgSource2VProfLiteReportItem* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.name_){}
    , decltype(_impl_.active_samples_){}
    , decltype(_impl_.usec_max_){}
    , decltype(_impl_.active_samples_1secmax_){}
    , decltype(_impl_.usec_avg_active_){}
    , decltype(_impl_.usec_p50_active_){}
    , decltype(_impl_.usec_p99_active_){}
    , decltype(_impl_.usec_avg_all_){}
    , decltype(_impl_.usec_p50_all_){}
    , decltype(_impl_.usec_p99_all_){}
    , decltype(_impl_.usec_1secmax_avg_active_){}
    , decltype(_impl_.usec_1secmax_p50_active_){}
    , decltype(_impl_.usec_1secmax_p95_active_){}
    , decltype(_impl_.usec_1secmax_p99_active_){}
    , decltype(_impl_.usec_1secmax_avg_all_){}
    , decltype(_impl_.usec_1secmax_p50_all_){}
    , decltype(_impl_.usec_1secmax_p95_all_){}
    , decltype(_impl_.usec_1secmax_p99_all_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (from._internal_has_name()) {
    _this->_impl_.name_.Set(from._internal_name(), 
      _this->GetArenaForAllocation());
  }
  ::memcpy(&_impl_.active_samples_, &from._impl_.active_samples_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.usec_1secmax_p99_all_) -
    reinterpret_cast<char*>(&_impl_.active_samples_)) + sizeof(_impl_.usec_1secmax_p99_all_));
  // @@protoc_insertion_point(copy_constructor:CMsgSource2VProfLiteReportItem)
}

inline void CMsgSource2VProfLiteReportItem::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.name_){}
    , decltype(_impl_.active_samples_){0u}
    , decltype(_impl_.usec_max_){0u}
    , decltype(_impl_.active_samples_1secmax_){0u}
    , decltype(_impl_.usec_avg_active_){0u}
    , decltype(_impl_.usec_p50_active_){0u}
    , decltype(_impl_.usec_p99_active_){0u}
    , decltype(_impl_.usec_avg_all_){0u}
    , decltype(_impl_.usec_p50_all_){0u}
    , decltype(_impl_.usec_p99_all_){0u}
    , decltype(_impl_.usec_1secmax_avg_active_){0u}
    , decltype(_impl_.usec_1secmax_p50_active_){0u}
    , decltype(_impl_.usec_1secmax_p95_active_){0u}
    , decltype(_impl_.usec_1secmax_p99_active_){0u}
    , decltype(_impl_.usec_1secmax_avg_all_){0u}
    , decltype(_impl_.usec_1secmax_p50_all_){0u}
    , decltype(_impl_.usec_1secmax_p95_all_){0u}
    , decltype(_impl_.usec_1secmax_p99_all_){0u}
  };
  _impl_.name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

CMsgSource2VProfLiteReportItem::~CMsgSource2VProfLiteReportItem() {
  // @@protoc_insertion_point(destructor:CMsgSource2VProfLiteReportItem)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void CMsgSource2VProfLiteReportItem::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.name_.Destroy();
}

void CMsgSource2VProfLiteReportItem::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void CMsgSource2VProfLiteReportItem::Clear() {
// @@protoc_insertion_point(message_clear_start:CMsgSource2VProfLiteReportItem)
  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 (cached_has_bits & 0x00000001u) {
    _impl_.name_.ClearNonDefaultToEmpty();
  }
  if (cached_has_bits & 0x000000feu) {
    ::memset(&_impl_.active_samples_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&_impl_.usec_avg_all_) -
        reinterpret_cast<char*>(&_impl_.active_samples_)) + sizeof(_impl_.usec_avg_all_));
  }
  if (cached_has_bits & 0x0000ff00u) {
    ::memset(&_impl_.usec_p50_all_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&_impl_.usec_1secmax_p50_all_) -
        reinterpret_cast<char*>(&_impl_.usec_p50_all_)) + sizeof(_impl_.usec_1secmax_p50_all_));
  }
  if (cached_has_bits & 0x00030000u) {
    ::memset(&_impl_.usec_1secmax_p95_all_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&_impl_.usec_1secmax_p99_all_) -
        reinterpret_cast<char*>(&_impl_.usec_1secmax_p95_all_)) + sizeof(_impl_.usec_1secmax_p99_all_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CMsgSource2VProfLiteReportItem::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional string name = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_name();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          #ifndef NDEBUG
          ::_pbi::VerifyUTF8(str, "CMsgSource2VProfLiteReportItem.name");
          #endif  // !NDEBUG
        } else
          goto handle_unusual;
        continue;
      // optional uint32 active_samples = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _Internal::set_has_active_samples(&has_bits);
          _impl_.active_samples_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 usec_max = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          _Internal::set_has_usec_max(&has_bits);
          _impl_.usec_max_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 active_samples_1secmax = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          _Internal::set_has_active_samples_1secmax(&has_bits);
          _impl_.active_samples_1secmax_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 usec_avg_active = 11;
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 88)) {
          _Internal::set_has_usec_avg_active(&has_bits);
          _impl_.usec_avg_active_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 usec_p50_active = 12;
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 96)) {
          _Internal::set_has_usec_p50_active(&has_bits);
          _impl_.usec_p50_active_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 usec_p99_active = 13;
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 104)) {
          _Internal::set_has_usec_p99_active(&has_bits);
          _impl_.usec_p99_active_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 usec_avg_all = 21;
      case 21:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 168)) {
          _Internal::set_has_usec_avg_all(&has_bits);
          _impl_.usec_avg_all_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 usec_p50_all = 22;
      case 22:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 176)) {
          _Internal::set_has_usec_p50_all(&has_bits);
          _impl_.usec_p50_all_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 usec_p99_all = 23;
      case 23:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 184)) {
          _Internal::set_has_usec_p99_all(&has_bits);
          _impl_.usec_p99_all_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 usec_1secmax_avg_active = 31;
      case 31:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 248)) {
          _Internal::set_has_usec_1secmax_avg_active(&has_bits);
          _impl_.usec_1secmax_avg_active_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 usec_1secmax_p50_active = 32;
      case 32:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 0)) {
          _Internal::set_has_usec_1secmax_p50_active(&has_bits);
          _impl_.usec_1secmax_p50_active_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 usec_1secmax_p95_active = 33;
      case 33:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          _Internal::set_has_usec_1secmax_p95_active(&has_bits);
          _impl_.usec_1secmax_p95_active_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 usec_1secmax_p99_active = 34;
      case 34:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _Internal::set_has_usec_1secmax_p99_active(&has_bits);
          _impl_.usec_1secmax_p99_active_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 usec_1secmax_avg_all = 41;
      case 41:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 72)) {
          _Internal::set_has_usec_1secmax_avg_all(&has_bits);
          _impl_.usec_1secmax_avg_all_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 usec_1secmax_p50_all = 42;
      case 42:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 80)) {
          _Internal::set_has_usec_1secmax_p50_all(&has_bits);
          _impl_.usec_1secmax_p50_all_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 usec_1secmax_p95_all = 43;
      case 43:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 88)) {
          _Internal::set_has_usec_1secmax_p95_all(&has_bits);
          _impl_.usec_1secmax_p95_all_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 usec_1secmax_p99_all = 44;
      case 44:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 96)) {
          _Internal::set_has_usec_1secmax_p99_all(&has_bits);
          _impl_.usec_1secmax_p99_all_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CMsgSource2VProfLiteReportItem::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:CMsgSource2VProfLiteReportItem)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // optional string name = 1;
  if (cached_has_bits & 0x00000001u) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::VerifyUTF8StringNamedField(
      this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SERIALIZE,
      "CMsgSource2VProfLiteReportItem.name");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_name(), target);
  }

  // optional uint32 active_samples = 2;
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(2, this->_internal_active_samples(), target);
  }

  // optional uint32 usec_max = 3;
  if (cached_has_bits & 0x00000004u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(3, this->_internal_usec_max(), target);
  }

  // optional uint32 active_samples_1secmax = 4;
  if (cached_has_bits & 0x00000008u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(4, this->_internal_active_samples_1secmax(), target);
  }

  // optional uint32 usec_avg_active = 11;
  if (cached_has_bits & 0x00000010u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(11, this->_internal_usec_avg_active(), target);
  }

  // optional uint32 usec_p50_active = 12;
  if (cached_has_bits & 0x00000020u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(12, this->_internal_usec_p50_active(), target);
  }

  // optional uint32 usec_p99_active = 13;
  if (cached_has_bits & 0x00000040u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(13, this->_internal_usec_p99_active(), target);
  }

  // optional uint32 usec_avg_all = 21;
  if (cached_has_bits & 0x00000080u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(21, this->_internal_usec_avg_all(), target);
  }

  // optional uint32 usec_p50_all = 22;
  if (cached_has_bits & 0x00000100u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(22, this->_internal_usec_p50_all(), target);
  }

  // optional uint32 usec_p99_all = 23;
  if (cached_has_bits & 0x00000200u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(23, this->_internal_usec_p99_all(), target);
  }

  // optional uint32 usec_1secmax_avg_active = 31;
  if (cached_has_bits & 0x00000400u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(31, this->_internal_usec_1secmax_avg_active(), target);
  }

  // optional uint32 usec_1secmax_p50_active = 32;
  if (cached_has_bits & 0x00000800u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(32, this->_internal_usec_1secmax_p50_active(), target);
  }

  // optional uint32 usec_1secmax_p95_active = 33;
  if (cached_has_bits & 0x00001000u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(33, this->_internal_usec_1secmax_p95_active(), target);
  }

  // optional uint32 usec_1secmax_p99_active = 34;
  if (cached_has_bits & 0x00002000u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(34, this->_internal_usec_1secmax_p99_active(), target);
  }

  // optional uint32 usec_1secmax_avg_all = 41;
  if (cached_has_bits & 0x00004000u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(41, this->_internal_usec_1secmax_avg_all(), target);
  }

  // optional uint32 usec_1secmax_p50_all = 42;
  if (cached_has_bits & 0x00008000u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(42, this->_internal_usec_1secmax_p50_all(), target);
  }

  // optional uint32 usec_1secmax_p95_all = 43;
  if (cached_has_bits & 0x00010000u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(43, this->_internal_usec_1secmax_p95_all(), target);
  }

  // optional uint32 usec_1secmax_p99_all = 44;
  if (cached_has_bits & 0x00020000u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(44, this->_internal_usec_1secmax_p99_all(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:CMsgSource2VProfLiteReportItem)
  return target;
}

size_t CMsgSource2VProfLiteReportItem::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:CMsgSource2VProfLiteReportItem)
  size_t total_size = 0;

  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 (cached_has_bits & 0x000000ffu) {
    // optional string name = 1;
    if (cached_has_bits & 0x00000001u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
          this->_internal_name());
    }

    // optional uint32 active_samples = 2;
    if (cached_has_bits & 0x00000002u) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_active_samples());
    }

    // optional uint32 usec_max = 3;
    if (cached_has_bits & 0x00000004u) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_usec_max());
    }

    // optional uint32 active_samples_1secmax = 4;
    if (cached_has_bits & 0x00000008u) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_active_samples_1secmax());
    }

    // optional uint32 usec_avg_active = 11;
    if (cached_has_bits & 0x00000010u) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_usec_avg_active());
    }

    // optional uint32 usec_p50_active = 12;
    if (cached_has_bits & 0x00000020u) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_usec_p50_active());
    }

    // optional uint32 usec_p99_active = 13;
    if (cached_has_bits & 0x00000040u) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_usec_p99_active());
    }

    // optional uint32 usec_avg_all = 21;
    if (cached_has_bits & 0x00000080u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_usec_avg_all());
    }

  }
  if (cached_has_bits & 0x0000ff00u) {
    // optional uint32 usec_p50_all = 22;
    if (cached_has_bits & 0x00000100u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_usec_p50_all());
    }

    // optional uint32 usec_p99_all = 23;
    if (cached_has_bits & 0x00000200u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_usec_p99_all());
    }

    // optional uint32 usec_1secmax_avg_active = 31;
    if (cached_has_bits & 0x00000400u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_usec_1secmax_avg_active());
    }

    // optional uint32 usec_1secmax_p50_active = 32;
    if (cached_has_bits & 0x00000800u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_usec_1secmax_p50_active());
    }

    // optional uint32 usec_1secmax_p95_active = 33;
    if (cached_has_bits & 0x00001000u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_usec_1secmax_p95_active());
    }

    // optional uint32 usec_1secmax_p99_active = 34;
    if (cached_has_bits & 0x00002000u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_usec_1secmax_p99_active());
    }

    // optional uint32 usec_1secmax_avg_all = 41;
    if (cached_has_bits & 0x00004000u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_usec_1secmax_avg_all());
    }

    // optional uint32 usec_1secmax_p50_all = 42;
    if (cached_has_bits & 0x00008000u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_usec_1secmax_p50_all());
    }

  }
  if (cached_has_bits & 0x00030000u) {
    // optional uint32 usec_1secmax_p95_all = 43;
    if (cached_has_bits & 0x00010000u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_usec_1secmax_p95_all());
    }

    // optional uint32 usec_1secmax_p99_all = 44;
    if (cached_has_bits & 0x00020000u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_usec_1secmax_p99_all());
    }

  }
  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CMsgSource2VProfLiteReportItem::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    CMsgSource2VProfLiteReportItem::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CMsgSource2VProfLiteReportItem::GetClassData() const { return &_class_data_; }


void CMsgSource2VProfLiteReportItem::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<CMsgSource2VProfLiteReportItem*>(&to_msg);
  auto& from = static_cast<const CMsgSource2VProfLiteReportItem&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:CMsgSource2VProfLiteReportItem)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x000000ffu) {
    if (cached_has_bits & 0x00000001u) {
      _this->_internal_set_name(from._internal_name());
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_impl_.active_samples_ = from._impl_.active_samples_;
    }
    if (cached_has_bits & 0x00000004u) {
      _this->_impl_.usec_max_ = from._impl_.usec_max_;
    }
    if (cached_has_bits & 0x00000008u) {
      _this->_impl_.active_samples_1secmax_ = from._impl_.active_samples_1secmax_;
    }
    if (cached_has_bits & 0x00000010u) {
      _this->_impl_.usec_avg_active_ = from._impl_.usec_avg_active_;
    }
    if (cached_has_bits & 0x00000020u) {
      _this->_impl_.usec_p50_active_ = from._impl_.usec_p50_active_;
    }
    if (cached_has_bits & 0x00000040u) {
      _this->_impl_.usec_p99_active_ = from._impl_.usec_p99_active_;
    }
    if (cached_has_bits & 0x00000080u) {
      _this->_impl_.usec_avg_all_ = from._impl_.usec_avg_all_;
    }
    _this->_impl_._has_bits_[0] |= cached_has_bits;
  }
  if (cached_has_bits & 0x0000ff00u) {
    if (cached_has_bits & 0x00000100u) {
      _this->_impl_.usec_p50_all_ = from._impl_.usec_p50_all_;
    }
    if (cached_has_bits & 0x00000200u) {
      _this->_impl_.usec_p99_all_ = from._impl_.usec_p99_all_;
    }
    if (cached_has_bits & 0x00000400u) {
      _this->_impl_.usec_1secmax_avg_active_ = from._impl_.usec_1secmax_avg_active_;
    }
    if (cached_has_bits & 0x00000800u) {
      _this->_impl_.usec_1secmax_p50_active_ = from._impl_.usec_1secmax_p50_active_;
    }
    if (cached_has_bits & 0x00001000u) {
      _this->_impl_.usec_1secmax_p95_active_ = from._impl_.usec_1secmax_p95_active_;
    }
    if (cached_has_bits & 0x00002000u) {
      _this->_impl_.usec_1secmax_p99_active_ = from._impl_.usec_1secmax_p99_active_;
    }
    if (cached_has_bits & 0x00004000u) {
      _this->_impl_.usec_1secmax_avg_all_ = from._impl_.usec_1secmax_avg_all_;
    }
    if (cached_has_bits & 0x00008000u) {
      _this->_impl_.usec_1secmax_p50_all_ = from._impl_.usec_1secmax_p50_all_;
    }
    _this->_impl_._has_bits_[0] |= cached_has_bits;
  }
  if (cached_has_bits & 0x00030000u) {
    if (cached_has_bits & 0x00010000u) {
      _this->_impl_.usec_1secmax_p95_all_ = from._impl_.usec_1secmax_p95_all_;
    }
    if (cached_has_bits & 0x00020000u) {
      _this->_impl_.usec_1secmax_p99_all_ = from._impl_.usec_1secmax_p99_all_;
    }
    _this->_impl_._has_bits_[0] |= cached_has_bits;
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

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

bool CMsgSource2VProfLiteReportItem::IsInitialized() const {
  return true;
}

void CMsgSource2VProfLiteReportItem::InternalSwap(CMsgSource2VProfLiteReportItem* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.name_, lhs_arena,
      &other->_impl_.name_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(CMsgSource2VProfLiteReportItem, _impl_.usec_1secmax_p99_all_)
      + sizeof(CMsgSource2VProfLiteReportItem::_impl_.usec_1secmax_p99_all_)
      - PROTOBUF_FIELD_OFFSET(CMsgSource2VProfLiteReportItem, _impl_.active_samples_)>(
          reinterpret_cast<char*>(&_impl_.active_samples_),
          reinterpret_cast<char*>(&other->_impl_.active_samples_));
}

::PROTOBUF_NAMESPACE_ID::Metadata CMsgSource2VProfLiteReportItem::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_source2_5fsteam_5fstats_2eproto_getter, &descriptor_table_source2_5fsteam_5fstats_2eproto_once,
      file_level_metadata_source2_5fsteam_5fstats_2eproto[1]);
}

// ===================================================================

class CMsgSource2VProfLiteReport::_Internal {
 public:
  using HasBits = decltype(std::declval<CMsgSource2VProfLiteReport>()._impl_._has_bits_);
  static const ::CMsgSource2VProfLiteReportItem& total(const CMsgSource2VProfLiteReport* msg);
  static void set_has_total(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static void set_has_discarded_frames(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
};

const ::CMsgSource2VProfLiteReportItem&
CMsgSource2VProfLiteReport::_Internal::total(const CMsgSource2VProfLiteReport* msg) {
  return *msg->_impl_.total_;
}
CMsgSource2VProfLiteReport::CMsgSource2VProfLiteReport(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:CMsgSource2VProfLiteReport)
}
CMsgSource2VProfLiteReport::CMsgSource2VProfLiteReport(const CMsgSource2VProfLiteReport& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  CMsgSource2VProfLiteReport* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.items_){from._impl_.items_}
    , decltype(_impl_.total_){nullptr}
    , decltype(_impl_.discarded_frames_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_total()) {
    _this->_impl_.total_ = new ::CMsgSource2VProfLiteReportItem(*from._impl_.total_);
  }
  _this->_impl_.discarded_frames_ = from._impl_.discarded_frames_;
  // @@protoc_insertion_point(copy_constructor:CMsgSource2VProfLiteReport)
}

inline void CMsgSource2VProfLiteReport::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.items_){arena}
    , decltype(_impl_.total_){nullptr}
    , decltype(_impl_.discarded_frames_){0u}
  };
}

CMsgSource2VProfLiteReport::~CMsgSource2VProfLiteReport() {
  // @@protoc_insertion_point(destructor:CMsgSource2VProfLiteReport)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void CMsgSource2VProfLiteReport::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.items_.~RepeatedPtrField();
  if (this != internal_default_instance()) delete _impl_.total_;
}

void CMsgSource2VProfLiteReport::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void CMsgSource2VProfLiteReport::Clear() {
// @@protoc_insertion_point(message_clear_start:CMsgSource2VProfLiteReport)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.items_.Clear();
  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    GOOGLE_DCHECK(_impl_.total_ != nullptr);
    _impl_.total_->Clear();
  }
  _impl_.discarded_frames_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CMsgSource2VProfLiteReport::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional .CMsgSource2VProfLiteReportItem total = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_total(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated .CMsgSource2VProfLiteReportItem items = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_items(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
        } else
          goto handle_unusual;
        continue;
      // optional uint32 discarded_frames = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          _Internal::set_has_discarded_frames(&has_bits);
          _impl_.discarded_frames_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CMsgSource2VProfLiteReport::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:CMsgSource2VProfLiteReport)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // optional .CMsgSource2VProfLiteReportItem total = 1;
  if (cached_has_bits & 0x00000001u) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(1, _Internal::total(this),
        _Internal::total(this).GetCachedSize(), target, stream);
  }

  // repeated .CMsgSource2VProfLiteReportItem items = 2;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_items_size()); i < n; i++) {
    const auto& repfield = this->_internal_items(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, repfield, repfield.GetCachedSize(), target, stream);
  }

  // optional uint32 discarded_frames = 3;
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(3, this->_internal_discarded_frames(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:CMsgSource2VProfLiteReport)
  return target;
}

size_t CMsgSource2VProfLiteReport::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:CMsgSource2VProfLiteReport)
  size_t total_size = 0;

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

  // repeated .CMsgSource2VProfLiteReportItem items = 2;
  total_size += 1UL * this->_internal_items_size();
  for (const auto& msg : this->_impl_.items_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000003u) {
    // optional .CMsgSource2VProfLiteReportItem total = 1;
    if (cached_has_bits & 0x00000001u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.total_);
    }

    // optional uint32 discarded_frames = 3;
    if (cached_has_bits & 0x00000002u) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_discarded_frames());
    }

  }
  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CMsgSource2VProfLiteReport::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    CMsgSource2VProfLiteReport::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CMsgSource2VProfLiteReport::GetClassData() const { return &_class_data_; }


void CMsgSource2VProfLiteReport::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<CMsgSource2VProfLiteReport*>(&to_msg);
  auto& from = static_cast<const CMsgSource2VProfLiteReport&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:CMsgSource2VProfLiteReport)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.items_.MergeFrom(from._impl_.items_);
  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x00000003u) {
    if (cached_has_bits & 0x00000001u) {
      _this->_internal_mutable_total()->::CMsgSource2VProfLiteReportItem::MergeFrom(
          from._internal_total());
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_impl_.discarded_frames_ = from._impl_.discarded_frames_;
    }
    _this->_impl_._has_bits_[0] |= cached_has_bits;
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

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

bool CMsgSource2VProfLiteReport::IsInitialized() const {
  return true;
}

void CMsgSource2VProfLiteReport::InternalSwap(CMsgSource2VProfLiteReport* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.items_.InternalSwap(&other->_impl_.items_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(CMsgSource2VProfLiteReport, _impl_.discarded_frames_)
      + sizeof(CMsgSource2VProfLiteReport::_impl_.discarded_frames_)
      - PROTOBUF_FIELD_OFFSET(CMsgSource2VProfLiteReport, _impl_.total_)>(
          reinterpret_cast<char*>(&_impl_.total_),
          reinterpret_cast<char*>(&other->_impl_.total_));
}

::PROTOBUF_NAMESPACE_ID::Metadata CMsgSource2VProfLiteReport::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_source2_5fsteam_5fstats_2eproto_getter, &descriptor_table_source2_5fsteam_5fstats_2eproto_once,
      file_level_metadata_source2_5fsteam_5fstats_2eproto[2]);
}

// ===================================================================

class CMsgSource2NetworkFlowQuality::_Internal {
 public:
  using HasBits = decltype(std::declval<CMsgSource2NetworkFlowQuality>()._impl_._has_bits_);
  static void set_has_duration(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
  static void set_has_bytes_total(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static void set_has_bytes_total_reliable(HasBits* has_bits) {
    (*has_bits)[0] |= 8u;
  }
  static void set_has_bytes_total_voice(HasBits* has_bits) {
    (*has_bits)[0] |= 16u;
  }
  static void set_has_bytes_sec_p95(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
  static void set_has_bytes_sec_p99(HasBits* has_bits) {
    (*has_bits)[0] |= 32u;
  }
  static void set_has_enginemsgs_total(HasBits* has_bits) {
    (*has_bits)[0] |= 64u;
  }
  static void set_has_enginemsgs_sec_p95(HasBits* has_bits) {
    (*has_bits)[0] |= 128u;
  }
  static void set_has_enginemsgs_sec_p99(HasBits* has_bits) {
    (*has_bits)[0] |= 256u;
  }
  static void set_has_netframes_total(HasBits* has_bits) {
    (*has_bits)[0] |= 512u;
  }
  static void set_has_netframes_dropped(HasBits* has_bits) {
    (*has_bits)[0] |= 1024u;
  }
  static void set_has_netframes_outoforder(HasBits* has_bits) {
    (*has_bits)[0] |= 2048u;
  }
  static void set_has_netframes_size_exceeds_mtu(HasBits* has_bits) {
    (*has_bits)[0] |= 4096u;
  }
  static void set_has_netframes_size_p95(HasBits* has_bits) {
    (*has_bits)[0] |= 8192u;
  }
  static void set_has_netframes_size_p99(HasBits* has_bits) {
    (*has_bits)[0] |= 16384u;
  }
  static void set_has_ticks_total(HasBits* has_bits) {
    (*has_bits)[0] |= 32768u;
  }
  static void set_has_ticks_good(HasBits* has_bits) {
    (*has_bits)[0] |= 65536u;
  }
  static void set_has_ticks_good_almost_late(HasBits* has_bits) {
    (*has_bits)[0] |= 131072u;
  }
  static void set_has_ticks_fixed_dropped(HasBits* has_bits) {
    (*has_bits)[0] |= 262144u;
  }
  static void set_has_ticks_fixed_late(HasBits* has_bits) {
    (*has_bits)[0] |= 524288u;
  }
  static void set_has_ticks_bad_dropped(HasBits* has_bits) {
    (*has_bits)[0] |= 1048576u;
  }
  static void set_has_ticks_bad_late(HasBits* has_bits) {
    (*has_bits)[0] |= 2097152u;
  }
  static void set_has_ticks_bad_other(HasBits* has_bits) {
    (*has_bits)[0] |= 4194304u;
  }
  static void set_has_tick_missrate_samples_total(HasBits* has_bits) {
    (*has_bits)[0] |= 8388608u;
  }
  static void set_has_tick_missrate_samples_perfect(HasBits* has_bits) {
    (*has_bits)[0] |= 16777216u;
  }
  static void set_has_tick_missrate_samples_perfectnet(HasBits* has_bits) {
    (*has_bits)[0] |= 33554432u;
  }
  static void set_has_tick_missratenet_p75_x10(HasBits* has_bits) {
    (*has_bits)[0] |= 67108864u;
  }
  static void set_has_tick_missratenet_p95_x10(HasBits* has_bits) {
    (*has_bits)[0] |= 134217728u;
  }
  static void set_has_tick_missratenet_p99_x10(HasBits* has_bits) {
    (*has_bits)[0] |= 268435456u;
  }
  static void set_has_recvmargin_p1(HasBits* has_bits) {
    (*has_bits)[0] |= 536870912u;
  }
  static void set_has_recvmargin_p5(HasBits* has_bits) {
    (*has_bits)[0] |= 1073741824u;
  }
  static void set_has_recvmargin_p25(HasBits* has_bits) {
    (*has_bits)[0] |= 2147483648u;
  }
  static void set_has_recvmargin_p50(HasBits* has_bits) {
    (*has_bits)[1] |= 1u;
  }
  static void set_has_recvmargin_p75(HasBits* has_bits) {
    (*has_bits)[1] |= 2u;
  }
  static void set_has_recvmargin_p95(HasBits* has_bits) {
    (*has_bits)[1] |= 4u;
  }
  static void set_has_netframe_jitter_p50(HasBits* has_bits) {
    (*has_bits)[1] |= 8u;
  }
  static void set_has_netframe_jitter_p99(HasBits* has_bits) {
    (*has_bits)[1] |= 16u;
  }
  static void set_has_interval_peakjitter_p50(HasBits* has_bits) {
    (*has_bits)[1] |= 32u;
  }
  static void set_has_interval_peakjitter_p95(HasBits* has_bits) {
    (*has_bits)[1] |= 64u;
  }
  static void set_has_packet_misdelivery_rate_p50_x4(HasBits* has_bits) {
    (*has_bits)[1] |= 128u;
  }
  static void set_has_packet_misdelivery_rate_p95_x4(HasBits* has_bits) {
    (*has_bits)[1] |= 256u;
  }
  static void set_has_net_ping_p5(HasBits* has_bits) {
    (*has_bits)[1] |= 512u;
  }
  static void set_has_net_ping_p50(HasBits* has_bits) {
    (*has_bits)[1] |= 1024u;
  }
  static void set_has_net_ping_p95(HasBits* has_bits) {
    (*has_bits)[1] |= 2048u;
  }
};

CMsgSource2NetworkFlowQuality::CMsgSource2NetworkFlowQuality(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:CMsgSource2NetworkFlowQuality)
}
CMsgSource2NetworkFlowQuality::CMsgSource2NetworkFlowQuality(const CMsgSource2NetworkFlowQuality& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  CMsgSource2NetworkFlowQuality* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.bytes_total_){}
    , decltype(_impl_.duration_){}
    , decltype(_impl_.bytes_sec_p95_){}
    , decltype(_impl_.bytes_total_reliable_){}
    , decltype(_impl_.bytes_total_voice_){}
    , decltype(_impl_.bytes_sec_p99_){}
    , decltype(_impl_.enginemsgs_total_){}
    , decltype(_impl_.enginemsgs_sec_p95_){}
    , decltype(_impl_.enginemsgs_sec_p99_){}
    , decltype(_impl_.netframes_total_){}
    , decltype(_impl_.netframes_dropped_){}
    , decltype(_impl_.netframes_outoforder_){}
    , decltype(_impl_.netframes_size_exceeds_mtu_){}
    , decltype(_impl_.netframes_size_p95_){}
    , decltype(_impl_.netframes_size_p99_){}
    , decltype(_impl_.ticks_total_){}
    , decltype(_impl_.ticks_good_){}
    , decltype(_impl_.ticks_good_almost_late_){}
    , decltype(_impl_.ticks_fixed_dropped_){}
    , decltype(_impl_.ticks_fixed_late_){}
    , decltype(_impl_.ticks_bad_dropped_){}
    , decltype(_impl_.ticks_bad_late_){}
    , decltype(_impl_.ticks_bad_other_){}
    , decltype(_impl_.tick_missrate_samples_total_){}
    , decltype(_impl_.tick_missrate_samples_perfect_){}
    , decltype(_impl_.tick_missrate_samples_perfectnet_){}
    , decltype(_impl_.tick_missratenet_p75_x10_){}
    , decltype(_impl_.tick_missratenet_p95_x10_){}
    , decltype(_impl_.tick_missratenet_p99_x10_){}
    , decltype(_impl_.recvmargin_p1_){}
    , decltype(_impl_.recvmargin_p5_){}
    , decltype(_impl_.recvmargin_p25_){}
    , decltype(_impl_.recvmargin_p50_){}
    , decltype(_impl_.recvmargin_p75_){}
    , decltype(_impl_.recvmargin_p95_){}
    , decltype(_impl_.netframe_jitter_p50_){}
    , decltype(_impl_.netframe_jitter_p99_){}
    , decltype(_impl_.interval_peakjitter_p50_){}
    , decltype(_impl_.interval_peakjitter_p95_){}
    , decltype(_impl_.packet_misdelivery_rate_p50_x4_){}
    , decltype(_impl_.packet_misdelivery_rate_p95_x4_){}
    , decltype(_impl_.net_ping_p5_){}
    , decltype(_impl_.net_ping_p50_){}
    , decltype(_impl_.net_ping_p95_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&_impl_.bytes_total_, &from._impl_.bytes_total_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.net_ping_p95_) -
    reinterpret_cast<char*>(&_impl_.bytes_total_)) + sizeof(_impl_.net_ping_p95_));
  // @@protoc_insertion_point(copy_constructor:CMsgSource2NetworkFlowQuality)
}

inline void CMsgSource2NetworkFlowQuality::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.bytes_total_){uint64_t{0u}}
    , decltype(_impl_.duration_){0u}
    , decltype(_impl_.bytes_sec_p95_){0u}
    , decltype(_impl_.bytes_total_reliable_){uint64_t{0u}}
    , decltype(_impl_.bytes_total_voice_){uint64_t{0u}}
    , decltype(_impl_.bytes_sec_p99_){0u}
    , decltype(_impl_.enginemsgs_total_){0u}
    , decltype(_impl_.enginemsgs_sec_p95_){0u}
    , decltype(_impl_.enginemsgs_sec_p99_){0u}
    , decltype(_impl_.netframes_total_){0u}
    , decltype(_impl_.netframes_dropped_){0u}
    , decltype(_impl_.netframes_outoforder_){0u}
    , decltype(_impl_.netframes_size_exceeds_mtu_){0u}
    , decltype(_impl_.netframes_size_p95_){0u}
    , decltype(_impl_.netframes_size_p99_){0u}
    , decltype(_impl_.ticks_total_){0u}
    , decltype(_impl_.ticks_good_){0u}
    , decltype(_impl_.ticks_good_almost_late_){0u}
    , decltype(_impl_.ticks_fixed_dropped_){0u}
    , decltype(_impl_.ticks_fixed_late_){0u}
    , decltype(_impl_.ticks_bad_dropped_){0u}
    , decltype(_impl_.ticks_bad_late_){0u}
    , decltype(_impl_.ticks_bad_other_){0u}
    , decltype(_impl_.tick_missrate_samples_total_){0u}
    , decltype(_impl_.tick_missrate_samples_perfect_){0u}
    , decltype(_impl_.tick_missrate_samples_perfectnet_){0u}
    , decltype(_impl_.tick_missratenet_p75_x10_){0u}
    , decltype(_impl_.tick_missratenet_p95_x10_){0u}
    , decltype(_impl_.tick_missratenet_p99_x10_){0u}
    , decltype(_impl_.recvmargin_p1_){0}
    , decltype(_impl_.recvmargin_p5_){0}
    , decltype(_impl_.recvmargin_p25_){0}
    , decltype(_impl_.recvmargin_p50_){0}
    , decltype(_impl_.recvmargin_p75_){0}
    , decltype(_impl_.recvmargin_p95_){0}
    , decltype(_impl_.netframe_jitter_p50_){0u}
    , decltype(_impl_.netframe_jitter_p99_){0u}
    , decltype(_impl_.interval_peakjitter_p50_){0u}
    , decltype(_impl_.interval_peakjitter_p95_){0u}
    , decltype(_impl_.packet_misdelivery_rate_p50_x4_){0u}
    , decltype(_impl_.packet_misdelivery_rate_p95_x4_){0u}
    , decltype(_impl_.net_ping_p5_){0u}
    , decltype(_impl_.net_ping_p50_){0u}
    , decltype(_impl_.net_ping_p95_){0u}
  };
}

CMsgSource2NetworkFlowQuality::~CMsgSource2NetworkFlowQuality() {
  // @@protoc_insertion_point(destructor:CMsgSource2NetworkFlowQuality)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void CMsgSource2NetworkFlowQuality::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void CMsgSource2NetworkFlowQuality::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void CMsgSource2NetworkFlowQuality::Clear() {
// @@protoc_insertion_point(message_clear_start:CMsgSource2NetworkFlowQuality)
  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 (cached_has_bits & 0x000000ffu) {
    ::memset(&_impl_.bytes_total_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&_impl_.enginemsgs_sec_p95_) -
        reinterpret_cast<char*>(&_impl_.bytes_total_)) + sizeof(_impl_.enginemsgs_sec_p95_));
  }
  if (cached_has_bits & 0x0000ff00u) {
    ::memset(&_impl_.enginemsgs_sec_p99_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&_impl_.ticks_total_) -
        reinterpret_cast<char*>(&_impl_.enginemsgs_sec_p99_)) + sizeof(_impl_.ticks_total_));
  }
  if (cached_has_bits & 0x00ff0000u) {
    ::memset(&_impl_.ticks_good_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&_impl_.tick_missrate_samples_total_) -
        reinterpret_cast<char*>(&_impl_.ticks_good_)) + sizeof(_impl_.tick_missrate_samples_total_));
  }
  if (cached_has_bits & 0xff000000u) {
    ::memset(&_impl_.tick_missrate_samples_perfect_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&_impl_.recvmargin_p25_) -
        reinterpret_cast<char*>(&_impl_.tick_missrate_samples_perfect_)) + sizeof(_impl_.recvmargin_p25_));
  }
  cached_has_bits = _impl_._has_bits_[1];
  if (cached_has_bits & 0x000000ffu) {
    ::memset(&_impl_.recvmargin_p50_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&_impl_.packet_misdelivery_rate_p50_x4_) -
        reinterpret_cast<char*>(&_impl_.recvmargin_p50_)) + sizeof(_impl_.packet_misdelivery_rate_p50_x4_));
  }
  if (cached_has_bits & 0x00000f00u) {
    ::memset(&_impl_.packet_misdelivery_rate_p95_x4_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&_impl_.net_ping_p95_) -
        reinterpret_cast<char*>(&_impl_.packet_misdelivery_rate_p95_x4_)) + sizeof(_impl_.net_ping_p95_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CMsgSource2NetworkFlowQuality::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional uint32 duration = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          _Internal::set_has_duration(&_impl_._has_bits_);
          _impl_.duration_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint64 bytes_total = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
          _Internal::set_has_bytes_total(&_impl_._has_bits_);
          _impl_.bytes_total_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint64 bytes_total_reliable = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 48)) {
          _Internal::set_has_bytes_total_reliable(&_impl_._has_bits_);
          _impl_.bytes_total_reliable_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint64 bytes_total_voice = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 56)) {
          _Internal::set_has_bytes_total_voice(&_impl_._has_bits_);
          _impl_.bytes_total_voice_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 bytes_sec_p95 = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 80)) {
          _Internal::set_has_bytes_sec_p95(&_impl_._has_bits_);
          _impl_.bytes_sec_p95_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 bytes_sec_p99 = 11;
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 88)) {
          _Internal::set_has_bytes_sec_p99(&_impl_._has_bits_);
          _impl_.bytes_sec_p99_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 enginemsgs_total = 20;
      case 20:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 160)) {
          _Internal::set_has_enginemsgs_total(&_impl_._has_bits_);
          _impl_.enginemsgs_total_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 enginemsgs_sec_p95 = 21;
      case 21:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 168)) {
          _Internal::set_has_enginemsgs_sec_p95(&_impl_._has_bits_);
          _impl_.enginemsgs_sec_p95_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 enginemsgs_sec_p99 = 22;
      case 22:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 176)) {
          _Internal::set_has_enginemsgs_sec_p99(&_impl_._has_bits_);
          _impl_.enginemsgs_sec_p99_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 netframes_total = 30;
      case 30:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 240)) {
          _Internal::set_has_netframes_total(&_impl_._has_bits_);
          _impl_.netframes_total_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 netframes_dropped = 31;
      case 31:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 248)) {
          _Internal::set_has_netframes_dropped(&_impl_._has_bits_);
          _impl_.netframes_dropped_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 netframes_outoforder = 32;
      case 32:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 0)) {
          _Internal::set_has_netframes_outoforder(&_impl_._has_bits_);
          _impl_.netframes_outoforder_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 netframes_size_exceeds_mtu = 34;
      case 34:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _Internal::set_has_netframes_size_exceeds_mtu(&_impl_._has_bits_);
          _impl_.netframes_size_exceeds_mtu_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 netframes_size_p95 = 35;
      case 35:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          _Internal::set_has_netframes_size_p95(&_impl_._has_bits_);
          _impl_.netframes_size_p95_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 netframes_size_p99 = 36;
      case 36:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          _Internal::set_has_netframes_size_p99(&_impl_._has_bits_);
          _impl_.netframes_size_p99_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 ticks_total = 40;
      case 40:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 64)) {
          _Internal::set_has_ticks_total(&_impl_._has_bits_);
          _impl_.ticks_total_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 ticks_good = 41;
      case 41:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 72)) {
          _Internal::set_has_ticks_good(&_impl_._has_bits_);
          _impl_.ticks_good_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 ticks_good_almost_late = 42;
      case 42:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 80)) {
          _Internal::set_has_ticks_good_almost_late(&_impl_._has_bits_);
          _impl_.ticks_good_almost_late_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 ticks_fixed_dropped = 43;
      case 43:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 88)) {
          _Internal::set_has_ticks_fixed_dropped(&_impl_._has_bits_);
          _impl_.ticks_fixed_dropped_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 ticks_fixed_late = 44;
      case 44:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 96)) {
          _Internal::set_has_ticks_fixed_late(&_impl_._has_bits_);
          _impl_.ticks_fixed_late_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 ticks_bad_dropped = 45;
      case 45:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 104)) {
          _Internal::set_has_ticks_bad_dropped(&_impl_._has_bits_);
          _impl_.ticks_bad_dropped_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 ticks_bad_late = 46;
      case 46:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 112)) {
          _Internal::set_has_ticks_bad_late(&_impl_._has_bits_);
          _impl_.ticks_bad_late_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 ticks_bad_other = 47;
      case 47:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 120)) {
          _Internal::set_has_ticks_bad_other(&_impl_._has_bits_);
          _impl_.ticks_bad_other_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 tick_missrate_samples_total = 50;
      case 50:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 144)) {
          _Internal::set_has_tick_missrate_samples_total(&_impl_._has_bits_);
          _impl_.tick_missrate_samples_total_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 tick_missrate_samples_perfect = 51;
      case 51:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 152)) {
          _Internal::set_has_tick_missrate_samples_perfect(&_impl_._has_bits_);
          _impl_.tick_missrate_samples_perfect_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 tick_missrate_samples_perfectnet = 52;
      case 52:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 160)) {
          _Internal::set_has_tick_missrate_samples_perfectnet(&_impl_._has_bits_);
          _impl_.tick_missrate_samples_perfectnet_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 tick_missratenet_p75_x10 = 53;
      case 53:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 168)) {
          _Internal::set_has_tick_missratenet_p75_x10(&_impl_._has_bits_);
          _impl_.tick_missratenet_p75_x10_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 tick_missratenet_p95_x10 = 54;
      case 54:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 176)) {
          _Internal::set_has_tick_missratenet_p95_x10(&_impl_._has_bits_);
          _impl_.tick_missratenet_p95_x10_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 tick_missratenet_p99_x10 = 55;
      case 55:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 184)) {
          _Internal::set_has_tick_missratenet_p99_x10(&_impl_._has_bits_);
          _impl_.tick_missratenet_p99_x10_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional sint32 recvmargin_p1 = 61;
      case 61:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 232)) {
          _Internal::set_has_recvmargin_p1(&_impl_._has_bits_);
          _impl_.recvmargin_p1_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarintZigZag32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional sint32 recvmargin_p5 = 62;
      case 62:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 240)) {
          _Internal::set_has_recvmargin_p5(&_impl_._has_bits_);
          _impl_.recvmargin_p5_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarintZigZag32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional sint32 recvmargin_p25 = 63;
      case 63:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 248)) {
          _Internal::set_has_recvmargin_p25(&_impl_._has_bits_);
          _impl_.recvmargin_p25_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarintZigZag32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional sint32 recvmargin_p50 = 64;
      case 64:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 0)) {
          _Internal::set_has_recvmargin_p50(&_impl_._has_bits_);
          _impl_.recvmargin_p50_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarintZigZag32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional sint32 recvmargin_p75 = 65;
      case 65:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          _Internal::set_has_recvmargin_p75(&_impl_._has_bits_);
          _impl_.recvmargin_p75_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarintZigZag32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional sint32 recvmargin_p95 = 66;
      case 66:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _Internal::set_has_recvmargin_p95(&_impl_._has_bits_);
          _impl_.recvmargin_p95_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarintZigZag32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 netframe_jitter_p50 = 70;
      case 70:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 48)) {
          _Internal::set_has_netframe_jitter_p50(&_impl_._has_bits_);
          _impl_.netframe_jitter_p50_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 netframe_jitter_p99 = 71;
      case 71:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 56)) {
          _Internal::set_has_netframe_jitter_p99(&_impl_._has_bits_);
          _impl_.netframe_jitter_p99_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 interval_peakjitter_p50 = 72;
      case 72:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 64)) {
          _Internal::set_has_interval_peakjitter_p50(&_impl_._has_bits_);
          _impl_.interval_peakjitter_p50_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 interval_peakjitter_p95 = 73;
      case 73:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 72)) {
          _Internal::set_has_interval_peakjitter_p95(&_impl_._has_bits_);
          _impl_.interval_peakjitter_p95_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 packet_misdelivery_rate_p50_x4 = 74;
      case 74:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 80)) {
          _Internal::set_has_packet_misdelivery_rate_p50_x4(&_impl_._has_bits_);
          _impl_.packet_misdelivery_rate_p50_x4_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 packet_misdelivery_rate_p95_x4 = 75;
      case 75:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 88)) {
          _Internal::set_has_packet_misdelivery_rate_p95_x4(&_impl_._has_bits_);
          _impl_.packet_misdelivery_rate_p95_x4_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 net_ping_p5 = 80;
      case 80:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 128)) {
          _Internal::set_has_net_ping_p5(&_impl_._has_bits_);
          _impl_.net_ping_p5_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 net_ping_p50 = 81;
      case 81:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 136)) {
          _Internal::set_has_net_ping_p50(&_impl_._has_bits_);
          _impl_.net_ping_p50_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 net_ping_p95 = 82;
      case 82:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 144)) {
          _Internal::set_has_net_ping_p95(&_impl_._has_bits_);
          _impl_.net_ping_p95_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CMsgSource2NetworkFlowQuality::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:CMsgSource2NetworkFlowQuality)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // optional uint32 duration = 1;
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(1, this->_internal_duration(), target);
  }

  // optional uint64 bytes_total = 5;
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt64ToArray(5, this->_internal_bytes_total(), target);
  }

  // optional uint64 bytes_total_reliable = 6;
  if (cached_has_bits & 0x00000008u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt64ToArray(6, this->_internal_bytes_total_reliable(), target);
  }

  // optional uint64 bytes_total_voice = 7;
  if (cached_has_bits & 0x00000010u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt64ToArray(7, this->_internal_bytes_total_voice(), target);
  }

  // optional uint32 bytes_sec_p95 = 10;
  if (cached_has_bits & 0x00000004u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(10, this->_internal_bytes_sec_p95(), target);
  }

  // optional uint32 bytes_sec_p99 = 11;
  if (cached_has_bits & 0x00000020u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(11, this->_internal_bytes_sec_p99(), target);
  }

  // optional uint32 enginemsgs_total = 20;
  if (cached_has_bits & 0x00000040u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(20, this->_internal_enginemsgs_total(), target);
  }

  // optional uint32 enginemsgs_sec_p95 = 21;
  if (cached_has_bits & 0x00000080u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(21, this->_internal_enginemsgs_sec_p95(), target);
  }

  // optional uint32 enginemsgs_sec_p99 = 22;
  if (cached_has_bits & 0x00000100u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(22, this->_internal_enginemsgs_sec_p99(), target);
  }

  // optional uint32 netframes_total = 30;
  if (cached_has_bits & 0x00000200u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(30, this->_internal_netframes_total(), target);
  }

  // optional uint32 netframes_dropped = 31;
  if (cached_has_bits & 0x00000400u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(31, this->_internal_netframes_dropped(), target);
  }

  // optional uint32 netframes_outoforder = 32;
  if (cached_has_bits & 0x00000800u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(32, this->_internal_netframes_outoforder(), target);
  }

  // optional uint32 netframes_size_exceeds_mtu = 34;
  if (cached_has_bits & 0x00001000u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(34, this->_internal_netframes_size_exceeds_mtu(), target);
  }

  // optional uint32 netframes_size_p95 = 35;
  if (cached_has_bits & 0x00002000u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(35, this->_internal_netframes_size_p95(), target);
  }

  // optional uint32 netframes_size_p99 = 36;
  if (cached_has_bits & 0x00004000u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(36, this->_internal_netframes_size_p99(), target);
  }

  // optional uint32 ticks_total = 40;
  if (cached_has_bits & 0x00008000u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(40, this->_internal_ticks_total(), target);
  }

  // optional uint32 ticks_good = 41;
  if (cached_has_bits & 0x00010000u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(41, this->_internal_ticks_good(), target);
  }

  // optional uint32 ticks_good_almost_late = 42;
  if (cached_has_bits & 0x00020000u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(42, this->_internal_ticks_good_almost_late(), target);
  }

  // optional uint32 ticks_fixed_dropped = 43;
  if (cached_has_bits & 0x00040000u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(43, this->_internal_ticks_fixed_dropped(), target);
  }

  // optional uint32 ticks_fixed_late = 44;
  if (cached_has_bits & 0x00080000u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(44, this->_internal_ticks_fixed_late(), target);
  }

  // optional uint32 ticks_bad_dropped = 45;
  if (cached_has_bits & 0x00100000u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(45, this->_internal_ticks_bad_dropped(), target);
  }

  // optional uint32 ticks_bad_late = 46;
  if (cached_has_bits & 0x00200000u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(46, this->_internal_ticks_bad_late(), target);
  }

  // optional uint32 ticks_bad_other = 47;
  if (cached_has_bits & 0x00400000u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(47, this->_internal_ticks_bad_other(), target);
  }

  // optional uint32 tick_missrate_samples_total = 50;
  if (cached_has_bits & 0x00800000u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(50, this->_internal_tick_missrate_samples_total(), target);
  }

  // optional uint32 tick_missrate_samples_perfect = 51;
  if (cached_has_bits & 0x01000000u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(51, this->_internal_tick_missrate_samples_perfect(), target);
  }

  // optional uint32 tick_missrate_samples_perfectnet = 52;
  if (cached_has_bits & 0x02000000u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(52, this->_internal_tick_missrate_samples_perfectnet(), target);
  }

  // optional uint32 tick_missratenet_p75_x10 = 53;
  if (cached_has_bits & 0x04000000u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(53, this->_internal_tick_missratenet_p75_x10(), target);
  }

  // optional uint32 tick_missratenet_p95_x10 = 54;
  if (cached_has_bits & 0x08000000u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(54, this->_internal_tick_missratenet_p95_x10(), target);
  }

  // optional uint32 tick_missratenet_p99_x10 = 55;
  if (cached_has_bits & 0x10000000u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(55, this->_internal_tick_missratenet_p99_x10(), target);
  }

  // optional sint32 recvmargin_p1 = 61;
  if (cached_has_bits & 0x20000000u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteSInt32ToArray(61, this->_internal_recvmargin_p1(), target);
  }

  // optional sint32 recvmargin_p5 = 62;
  if (cached_has_bits & 0x40000000u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteSInt32ToArray(62, this->_internal_recvmargin_p5(), target);
  }

  // optional sint32 recvmargin_p25 = 63;
  if (cached_has_bits & 0x80000000u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteSInt32ToArray(63, this->_internal_recvmargin_p25(), target);
  }

  cached_has_bits = _impl_._has_bits_[1];
  // optional sint32 recvmargin_p50 = 64;
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteSInt32ToArray(64, this->_internal_recvmargin_p50(), target);
  }

  // optional sint32 recvmargin_p75 = 65;
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteSInt32ToArray(65, this->_internal_recvmargin_p75(), target);
  }

  // optional sint32 recvmargin_p95 = 66;
  if (cached_has_bits & 0x00000004u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteSInt32ToArray(66, this->_internal_recvmargin_p95(), target);
  }

  // optional uint32 netframe_jitter_p50 = 70;
  if (cached_has_bits & 0x00000008u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(70, this->_internal_netframe_jitter_p50(), target);
  }

  // optional uint32 netframe_jitter_p99 = 71;
  if (cached_has_bits & 0x00000010u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(71, this->_internal_netframe_jitter_p99(), target);
  }

  // optional uint32 interval_peakjitter_p50 = 72;
  if (cached_has_bits & 0x00000020u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(72, this->_internal_interval_peakjitter_p50(), target);
  }

  // optional uint32 interval_peakjitter_p95 = 73;
  if (cached_has_bits & 0x00000040u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(73, this->_internal_interval_peakjitter_p95(), target);
  }

  // optional uint32 packet_misdelivery_rate_p50_x4 = 74;
  if (cached_has_bits & 0x00000080u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(74, this->_internal_packet_misdelivery_rate_p50_x4(), target);
  }

  // optional uint32 packet_misdelivery_rate_p95_x4 = 75;
  if (cached_has_bits & 0x00000100u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(75, this->_internal_packet_misdelivery_rate_p95_x4(), target);
  }

  // optional uint32 net_ping_p5 = 80;
  if (cached_has_bits & 0x00000200u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(80, this->_internal_net_ping_p5(), target);
  }

  // optional uint32 net_ping_p50 = 81;
  if (cached_has_bits & 0x00000400u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(81, this->_internal_net_ping_p50(), target);
  }

  // optional uint32 net_ping_p95 = 82;
  if (cached_has_bits & 0x00000800u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(82, this->_internal_net_ping_p95(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:CMsgSource2NetworkFlowQuality)
  return target;
}

size_t CMsgSource2NetworkFlowQuality::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:CMsgSource2NetworkFlowQuality)
  size_t total_size = 0;

  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 (cached_has_bits & 0x000000ffu) {
    // optional uint64 bytes_total = 5;
    if (cached_has_bits & 0x00000001u) {
      total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(this->_internal_bytes_total());
    }

    // optional uint32 duration = 1;
    if (cached_has_bits & 0x00000002u) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_duration());
    }

    // optional uint32 bytes_sec_p95 = 10;
    if (cached_has_bits & 0x00000004u) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_bytes_sec_p95());
    }

    // optional uint64 bytes_total_reliable = 6;
    if (cached_has_bits & 0x00000008u) {
      total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(this->_internal_bytes_total_reliable());
    }

    // optional uint64 bytes_total_voice = 7;
    if (cached_has_bits & 0x00000010u) {
      total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(this->_internal_bytes_total_voice());
    }

    // optional uint32 bytes_sec_p99 = 11;
    if (cached_has_bits & 0x00000020u) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_bytes_sec_p99());
    }

    // optional uint32 enginemsgs_total = 20;
    if (cached_has_bits & 0x00000040u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_enginemsgs_total());
    }

    // optional uint32 enginemsgs_sec_p95 = 21;
    if (cached_has_bits & 0x00000080u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_enginemsgs_sec_p95());
    }

  }
  if (cached_has_bits & 0x0000ff00u) {
    // optional uint32 enginemsgs_sec_p99 = 22;
    if (cached_has_bits & 0x00000100u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_enginemsgs_sec_p99());
    }

    // optional uint32 netframes_total = 30;
    if (cached_has_bits & 0x00000200u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_netframes_total());
    }

    // optional uint32 netframes_dropped = 31;
    if (cached_has_bits & 0x00000400u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_netframes_dropped());
    }

    // optional uint32 netframes_outoforder = 32;
    if (cached_has_bits & 0x00000800u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_netframes_outoforder());
    }

    // optional uint32 netframes_size_exceeds_mtu = 34;
    if (cached_has_bits & 0x00001000u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_netframes_size_exceeds_mtu());
    }

    // optional uint32 netframes_size_p95 = 35;
    if (cached_has_bits & 0x00002000u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_netframes_size_p95());
    }

    // optional uint32 netframes_size_p99 = 36;
    if (cached_has_bits & 0x00004000u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_netframes_size_p99());
    }

    // optional uint32 ticks_total = 40;
    if (cached_has_bits & 0x00008000u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_ticks_total());
    }

  }
  if (cached_has_bits & 0x00ff0000u) {
    // optional uint32 ticks_good = 41;
    if (cached_has_bits & 0x00010000u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_ticks_good());
    }

    // optional uint32 ticks_good_almost_late = 42;
    if (cached_has_bits & 0x00020000u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_ticks_good_almost_late());
    }

    // optional uint32 ticks_fixed_dropped = 43;
    if (cached_has_bits & 0x00040000u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_ticks_fixed_dropped());
    }

    // optional uint32 ticks_fixed_late = 44;
    if (cached_has_bits & 0x00080000u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_ticks_fixed_late());
    }

    // optional uint32 ticks_bad_dropped = 45;
    if (cached_has_bits & 0x00100000u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_ticks_bad_dropped());
    }

    // optional uint32 ticks_bad_late = 46;
    if (cached_has_bits & 0x00200000u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_ticks_bad_late());
    }

    // optional uint32 ticks_bad_other = 47;
    if (cached_has_bits & 0x00400000u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_ticks_bad_other());
    }

    // optional uint32 tick_missrate_samples_total = 50;
    if (cached_has_bits & 0x00800000u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_tick_missrate_samples_total());
    }

  }
  if (cached_has_bits & 0xff000000u) {
    // optional uint32 tick_missrate_samples_perfect = 51;
    if (cached_has_bits & 0x01000000u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_tick_missrate_samples_perfect());
    }

    // optional uint32 tick_missrate_samples_perfectnet = 52;
    if (cached_has_bits & 0x02000000u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_tick_missrate_samples_perfectnet());
    }

    // optional uint32 tick_missratenet_p75_x10 = 53;
    if (cached_has_bits & 0x04000000u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_tick_missratenet_p75_x10());
    }

    // optional uint32 tick_missratenet_p95_x10 = 54;
    if (cached_has_bits & 0x08000000u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_tick_missratenet_p95_x10());
    }

    // optional uint32 tick_missratenet_p99_x10 = 55;
    if (cached_has_bits & 0x10000000u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_tick_missratenet_p99_x10());
    }

    // optional sint32 recvmargin_p1 = 61;
    if (cached_has_bits & 0x20000000u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::SInt32Size(
          this->_internal_recvmargin_p1());
    }

    // optional sint32 recvmargin_p5 = 62;
    if (cached_has_bits & 0x40000000u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::SInt32Size(
          this->_internal_recvmargin_p5());
    }

    // optional sint32 recvmargin_p25 = 63;
    if (cached_has_bits & 0x80000000u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::SInt32Size(
          this->_internal_recvmargin_p25());
    }

  }
  cached_has_bits = _impl_._has_bits_[1];
  if (cached_has_bits & 0x000000ffu) {
    // optional sint32 recvmargin_p50 = 64;
    if (cached_has_bits & 0x00000001u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::SInt32Size(
          this->_internal_recvmargin_p50());
    }

    // optional sint32 recvmargin_p75 = 65;
    if (cached_has_bits & 0x00000002u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::SInt32Size(
          this->_internal_recvmargin_p75());
    }

    // optional sint32 recvmargin_p95 = 66;
    if (cached_has_bits & 0x00000004u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::SInt32Size(
          this->_internal_recvmargin_p95());
    }

    // optional uint32 netframe_jitter_p50 = 70;
    if (cached_has_bits & 0x00000008u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_netframe_jitter_p50());
    }

    // optional uint32 netframe_jitter_p99 = 71;
    if (cached_has_bits & 0x00000010u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_netframe_jitter_p99());
    }

    // optional uint32 interval_peakjitter_p50 = 72;
    if (cached_has_bits & 0x00000020u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_interval_peakjitter_p50());
    }

    // optional uint32 interval_peakjitter_p95 = 73;
    if (cached_has_bits & 0x00000040u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_interval_peakjitter_p95());
    }

    // optional uint32 packet_misdelivery_rate_p50_x4 = 74;
    if (cached_has_bits & 0x00000080u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_packet_misdelivery_rate_p50_x4());
    }

  }
  if (cached_has_bits & 0x00000f00u) {
    // optional uint32 packet_misdelivery_rate_p95_x4 = 75;
    if (cached_has_bits & 0x00000100u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_packet_misdelivery_rate_p95_x4());
    }

    // optional uint32 net_ping_p5 = 80;
    if (cached_has_bits & 0x00000200u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_net_ping_p5());
    }

    // optional uint32 net_ping_p50 = 81;
    if (cached_has_bits & 0x00000400u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_net_ping_p50());
    }

    // optional uint32 net_ping_p95 = 82;
    if (cached_has_bits & 0x00000800u) {
      total_size += 2 +
        ::_pbi::WireFormatLite::UInt32Size(
          this->_internal_net_ping_p95());
    }

  }
  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CMsgSource2NetworkFlowQuality::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    CMsgSource2NetworkFlowQuality::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CMsgSource2NetworkFlowQuality::GetClassData() const { return &_class_data_; }


void CMsgSource2NetworkFlowQuality::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<CMsgSource2NetworkFlowQuality*>(&to_msg);
  auto& from = static_cast<const CMsgSource2NetworkFlowQuality&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:CMsgSource2NetworkFlowQuality)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x000000ffu) {
    if (cached_has_bits & 0x00000001u) {
      _this->_impl_.bytes_total_ = from._impl_.bytes_total_;
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_impl_.duration_ = from._impl_.duration_;
    }
    if (cached_has_bits & 0x00000004u) {
      _this->_impl_.bytes_sec_p95_ = from._impl_.bytes_sec_p95_;
    }
    if (cached_has_bits & 0x00000008u) {
      _this->_impl_.bytes_total_reliable_ = from._impl_.bytes_total_reliable_;
    }
    if (cached_has_bits & 0x00000010u) {
      _this->_impl_.bytes_total_voice_ = from._impl_.bytes_total_voice_;
    }
    if (cached_has_bits & 0x00000020u) {
      _this->_impl_.bytes_sec_p99_ = from._impl_.bytes_sec_p99_;
    }
    if (cached_has_bits & 0x00000040u) {
      _this->_impl_.enginemsgs_total_ = from._impl_.enginemsgs_total_;
    }
    if (cached_has_bits & 0x00000080u) {
      _this->_impl_.enginemsgs_sec_p95_ = from._impl_.enginemsgs_sec_p95_;
    }
    _this->_impl_._has_bits_[0] |= cached_has_bits;
  }
  if (cached_has_bits & 0x0000ff00u) {
    if (cached_has_bits & 0x00000100u) {
      _this->_impl_.enginemsgs_sec_p99_ = from._impl_.enginemsgs_sec_p99_;
    }
    if (cached_has_bits & 0x00000200u) {
      _this->_impl_.netframes_total_ = from._impl_.netframes_total_;
    }
    if (cached_has_bits & 0x00000400u) {
      _this->_impl_.netframes_dropped_ = from._impl_.netframes_dropped_;
    }
    if (cached_has_bits & 0x00000800u) {
      _this->_impl_.netframes_outoforder_ = from._impl_.netframes_outoforder_;
    }
    if (cached_has_bits & 0x00001000u) {
      _this->_impl_.netframes_size_exceeds_mtu_ = from._impl_.netframes_size_exceeds_mtu_;
    }
    if (cached_has_bits & 0x00002000u) {
      _this->_impl_.netframes_size_p95_ = from._impl_.netframes_size_p95_;
    }
    if (cached_has_bits & 0x00004000u) {
      _this->_impl_.netframes_size_p99_ = from._impl_.netframes_size_p99_;
    }
    if (cached_has_bits & 0x00008000u) {
      _this->_impl_.ticks_total_ = from._impl_.ticks_total_;
    }
    _this->_impl_._has_bits_[0] |= cached_has_bits;
  }
  if (cached_has_bits & 0x00ff0000u) {
    if (cached_has_bits & 0x00010000u) {
      _this->_impl_.ticks_good_ = from._impl_.ticks_good_;
    }
    if (cached_has_bits & 0x00020000u) {
      _this->_impl_.ticks_good_almost_late_ = from._impl_.ticks_good_almost_late_;
    }
    if (cached_has_bits & 0x00040000u) {
      _this->_impl_.ticks_fixed_dropped_ = from._impl_.ticks_fixed_dropped_;
    }
    if (cached_has_bits & 0x00080000u) {
      _this->_impl_.ticks_fixed_late_ = from._impl_.ticks_fixed_late_;
    }
    if (cached_has_bits & 0x00100000u) {
      _this->_impl_.ticks_bad_dropped_ = from._impl_.ticks_bad_dropped_;
    }
    if (cached_has_bits & 0x00200000u) {
      _this->_impl_.ticks_bad_late_ = from._impl_.ticks_bad_late_;
    }
    if (cached_has_bits & 0x00400000u) {
      _this->_impl_.ticks_bad_other_ = from._impl_.ticks_bad_other_;
    }
    if (cached_has_bits & 0x00800000u) {
      _this->_impl_.tick_missrate_samples_total_ = from._impl_.tick_missrate_samples_total_;
    }
    _this->_impl_._has_bits_[0] |= cached_has_bits;
  }
  if (cached_has_bits & 0xff000000u) {
    if (cached_has_bits & 0x01000000u) {
      _this->_impl_.tick_missrate_samples_perfect_ = from._impl_.tick_missrate_samples_perfect_;
    }
    if (cached_has_bits & 0x02000000u) {
      _this->_impl_.tick_missrate_samples_perfectnet_ = from._impl_.tick_missrate_samples_perfectnet_;
    }
    if (cached_has_bits & 0x04000000u) {
      _this->_impl_.tick_missratenet_p75_x10_ = from._impl_.tick_missratenet_p75_x10_;
    }
    if (cached_has_bits & 0x08000000u) {
      _this->_impl_.tick_missratenet_p95_x10_ = from._impl_.tick_missratenet_p95_x10_;
    }
    if (cached_has_bits & 0x10000000u) {
      _this->_impl_.tick_missratenet_p99_x10_ = from._impl_.tick_missratenet_p99_x10_;
    }
    if (cached_has_bits & 0x20000000u) {
      _this->_impl_.recvmargin_p1_ = from._impl_.recvmargin_p1_;
    }
    if (cached_has_bits & 0x40000000u) {
      _this->_impl_.recvmargin_p5_ = from._impl_.recvmargin_p5_;
    }
    if (cached_has_bits & 0x80000000u) {
      _this->_impl_.recvmargin_p25_ = from._impl_.recvmargin_p25_;
    }
    _this->_impl_._has_bits_[0] |= cached_has_bits;
  }
  cached_has_bits = from._impl_._has_bits_[1];
  if (cached_has_bits & 0x000000ffu) {
    if (cached_has_bits & 0x00000001u) {
      _this->_impl_.recvmargin_p50_ = from._impl_.recvmargin_p50_;
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_impl_.recvmargin_p75_ = from._impl_.recvmargin_p75_;
    }
    if (cached_has_bits & 0x00000004u) {
      _this->_impl_.recvmargin_p95_ = from._impl_.recvmargin_p95_;
    }
    if (cached_has_bits & 0x00000008u) {
      _this->_impl_.netframe_jitter_p50_ = from._impl_.netframe_jitter_p50_;
    }
    if (cached_has_bits & 0x00000010u) {
      _this->_impl_.netframe_jitter_p99_ = from._impl_.netframe_jitter_p99_;
    }
    if (cached_has_bits & 0x00000020u) {
      _this->_impl_.interval_peakjitter_p50_ = from._impl_.interval_peakjitter_p50_;
    }
    if (cached_has_bits & 0x00000040u) {
      _this->_impl_.interval_peakjitter_p95_ = from._impl_.interval_peakjitter_p95_;
    }
    if (cached_has_bits & 0x00000080u) {
      _this->_impl_.packet_misdelivery_rate_p50_x4_ = from._impl_.packet_misdelivery_rate_p50_x4_;
    }
    _this->_impl_._has_bits_[1] |= cached_has_bits;
  }
  if (cached_has_bits & 0x00000f00u) {
    if (cached_has_bits & 0x00000100u) {
      _this->_impl_.packet_misdelivery_rate_p95_x4_ = from._impl_.packet_misdelivery_rate_p95_x4_;
    }
    if (cached_has_bits & 0x00000200u) {
      _this->_impl_.net_ping_p5_ = from._impl_.net_ping_p5_;
    }
    if (cached_has_bits & 0x00000400u) {
      _this->_impl_.net_ping_p50_ = from._impl_.net_ping_p50_;
    }
    if (cached_has_bits & 0x00000800u) {
      _this->_impl_.net_ping_p95_ = from._impl_.net_ping_p95_;
    }
    _this->_impl_._has_bits_[1] |= cached_has_bits;
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

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

bool CMsgSource2NetworkFlowQuality::IsInitialized() const {
  return true;
}

void CMsgSource2NetworkFlowQuality::InternalSwap(CMsgSource2NetworkFlowQuality* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  swap(_impl_._has_bits_[1], other->_impl_._has_bits_[1]);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(CMsgSource2NetworkFlowQuality, _impl_.net_ping_p95_)
      + sizeof(CMsgSource2NetworkFlowQuality::_impl_.net_ping_p95_)
      - PROTOBUF_FIELD_OFFSET(CMsgSource2NetworkFlowQuality, _impl_.bytes_total_)>(
          reinterpret_cast<char*>(&_impl_.bytes_total_),
          reinterpret_cast<char*>(&other->_impl_.bytes_total_));
}

::PROTOBUF_NAMESPACE_ID::Metadata CMsgSource2NetworkFlowQuality::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_source2_5fsteam_5fstats_2eproto_getter, &descriptor_table_source2_5fsteam_5fstats_2eproto_once,
      file_level_metadata_source2_5fsteam_5fstats_2eproto[3]);
}

// ===================================================================

class CMsgSource2PerfIntervalSample_Tag::_Internal {
 public:
  using HasBits = decltype(std::declval<CMsgSource2PerfIntervalSample_Tag>()._impl_._has_bits_);
  static void set_has_tag(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static void set_has_max_value(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
};

CMsgSource2PerfIntervalSample_Tag::CMsgSource2PerfIntervalSample_Tag(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:CMsgSource2PerfIntervalSample.Tag)
}
CMsgSource2PerfIntervalSample_Tag::CMsgSource2PerfIntervalSample_Tag(const CMsgSource2PerfIntervalSample_Tag& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  CMsgSource2PerfIntervalSample_Tag* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.tag_){}
    , decltype(_impl_.max_value_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.tag_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.tag_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (from._internal_has_tag()) {
    _this->_impl_.tag_.Set(from._internal_tag(), 
      _this->GetArenaForAllocation());
  }
  _this->_impl_.max_value_ = from._impl_.max_value_;
  // @@protoc_insertion_point(copy_constructor:CMsgSource2PerfIntervalSample.Tag)
}

inline void CMsgSource2PerfIntervalSample_Tag::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.tag_){}
    , decltype(_impl_.max_value_){0u}
  };
  _impl_.tag_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.tag_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

CMsgSource2PerfIntervalSample_Tag::~CMsgSource2PerfIntervalSample_Tag() {
  // @@protoc_insertion_point(destructor:CMsgSource2PerfIntervalSample.Tag)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void CMsgSource2PerfIntervalSample_Tag::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.tag_.Destroy();
}

void CMsgSource2PerfIntervalSample_Tag::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void CMsgSource2PerfIntervalSample_Tag::Clear() {
// @@protoc_insertion_point(message_clear_start:CMsgSource2PerfIntervalSample.Tag)
  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 (cached_has_bits & 0x00000001u) {
    _impl_.tag_.ClearNonDefaultToEmpty();
  }
  _impl_.max_value_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CMsgSource2PerfIntervalSample_Tag::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional string tag = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_tag();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          #ifndef NDEBUG
          ::_pbi::VerifyUTF8(str, "CMsgSource2PerfIntervalSample.Tag.tag");
          #endif  // !NDEBUG
        } else
          goto handle_unusual;
        continue;
      // optional uint32 max_value = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _Internal::set_has_max_value(&has_bits);
          _impl_.max_value_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CMsgSource2PerfIntervalSample_Tag::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:CMsgSource2PerfIntervalSample.Tag)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // optional string tag = 1;
  if (cached_has_bits & 0x00000001u) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::VerifyUTF8StringNamedField(
      this->_internal_tag().data(), static_cast<int>(this->_internal_tag().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SERIALIZE,
      "CMsgSource2PerfIntervalSample.Tag.tag");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_tag(), target);
  }

  // optional uint32 max_value = 2;
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(2, this->_internal_max_value(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:CMsgSource2PerfIntervalSample.Tag)
  return target;
}

size_t CMsgSource2PerfIntervalSample_Tag::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:CMsgSource2PerfIntervalSample.Tag)
  size_t total_size = 0;

  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 (cached_has_bits & 0x00000003u) {
    // optional string tag = 1;
    if (cached_has_bits & 0x00000001u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
          this->_internal_tag());
    }

    // optional uint32 max_value = 2;
    if (cached_has_bits & 0x00000002u) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_max_value());
    }

  }
  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CMsgSource2PerfIntervalSample_Tag::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    CMsgSource2PerfIntervalSample_Tag::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CMsgSource2PerfIntervalSample_Tag::GetClassData() const { return &_class_data_; }


void CMsgSource2PerfIntervalSample_Tag::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<CMsgSource2PerfIntervalSample_Tag*>(&to_msg);
  auto& from = static_cast<const CMsgSource2PerfIntervalSample_Tag&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:CMsgSource2PerfIntervalSample.Tag)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x00000003u) {
    if (cached_has_bits & 0x00000001u) {
      _this->_internal_set_tag(from._internal_tag());
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_impl_.max_value_ = from._impl_.max_value_;
    }
    _this->_impl_._has_bits_[0] |= cached_has_bits;
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

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

bool CMsgSource2PerfIntervalSample_Tag::IsInitialized() const {
  return true;
}

void CMsgSource2PerfIntervalSample_Tag::InternalSwap(CMsgSource2PerfIntervalSample_Tag* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.tag_, lhs_arena,
      &other->_impl_.tag_, rhs_arena
  );
  swap(_impl_.max_value_, other->_impl_.max_value_);
}

::PROTOBUF_NAMESPACE_ID::Metadata CMsgSource2PerfIntervalSample_Tag::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_source2_5fsteam_5fstats_2eproto_getter, &descriptor_table_source2_5fsteam_5fstats_2eproto_once,
      file_level_metadata_source2_5fsteam_5fstats_2eproto[4]);
}

// ===================================================================

class CMsgSource2PerfIntervalSample::_Internal {
 public:
  using HasBits = decltype(std::declval<CMsgSource2PerfIntervalSample>()._impl_._has_bits_);
  static void set_has_frame_time_max_ms(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static void set_has_frame_time_avg_ms(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
  static void set_has_frame_time_min_ms(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
  static void set_has_frame_count(HasBits* has_bits) {
    (*has_bits)[0] |= 8u;
  }
  static void set_has_frame_time_total_ms(HasBits* has_bits) {
    (*has_bits)[0] |= 16u;
  }
};

CMsgSource2PerfIntervalSample::CMsgSource2PerfIntervalSample(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:CMsgSource2PerfIntervalSample)
}
CMsgSource2PerfIntervalSample::CMsgSource2PerfIntervalSample(const CMsgSource2PerfIntervalSample& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  CMsgSource2PerfIntervalSample* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.tags_){from._impl_.tags_}
    , decltype(_impl_.frame_time_max_ms_){}
    , decltype(_impl_.frame_time_avg_ms_){}
    , decltype(_impl_.frame_time_min_ms_){}
    , decltype(_impl_.frame_count_){}
    , decltype(_impl_.frame_time_total_ms_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&_impl_.frame_time_max_ms_, &from._impl_.frame_time_max_ms_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.frame_time_total_ms_) -
    reinterpret_cast<char*>(&_impl_.frame_time_max_ms_)) + sizeof(_impl_.frame_time_total_ms_));
  // @@protoc_insertion_point(copy_constructor:CMsgSource2PerfIntervalSample)
}

inline void CMsgSource2PerfIntervalSample::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.tags_){arena}
    , decltype(_impl_.frame_time_max_ms_){0}
    , decltype(_impl_.frame_time_avg_ms_){0}
    , decltype(_impl_.frame_time_min_ms_){0}
    , decltype(_impl_.frame_count_){0}
    , decltype(_impl_.frame_time_total_ms_){0}
  };
}

CMsgSource2PerfIntervalSample::~CMsgSource2PerfIntervalSample() {
  // @@protoc_insertion_point(destructor:CMsgSource2PerfIntervalSample)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void CMsgSource2PerfIntervalSample::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.tags_.~RepeatedPtrField();
}

void CMsgSource2PerfIntervalSample::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void CMsgSource2PerfIntervalSample::Clear() {
// @@protoc_insertion_point(message_clear_start:CMsgSource2PerfIntervalSample)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.tags_.Clear();
  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x0000001fu) {
    ::memset(&_impl_.frame_time_max_ms_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&_impl_.frame_time_total_ms_) -
        reinterpret_cast<char*>(&_impl_.frame_time_max_ms_)) + sizeof(_impl_.frame_time_total_ms_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CMsgSource2PerfIntervalSample::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional float frame_time_max_ms = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 13)) {
          _Internal::set_has_frame_time_max_ms(&has_bits);
          _impl_.frame_time_max_ms_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float frame_time_avg_ms = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 21)) {
          _Internal::set_has_frame_time_avg_ms(&has_bits);
          _impl_.frame_time_avg_ms_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float frame_time_min_ms = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 29)) {
          _Internal::set_has_frame_time_min_ms(&has_bits);
          _impl_.frame_time_min_ms_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional int32 frame_count = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          _Internal::set_has_frame_count(&has_bits);
          _impl_.frame_count_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional float frame_time_total_ms = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 45)) {
          _Internal::set_has_frame_time_total_ms(&has_bits);
          _impl_.frame_time_total_ms_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // repeated .CMsgSource2PerfIntervalSample.Tag tags = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_tags(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<50>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CMsgSource2PerfIntervalSample::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:CMsgSource2PerfIntervalSample)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // optional float frame_time_max_ms = 1;
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(1, this->_internal_frame_time_max_ms(), target);
  }

  // optional float frame_time_avg_ms = 2;
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(2, this->_internal_frame_time_avg_ms(), target);
  }

  // optional float frame_time_min_ms = 3;
  if (cached_has_bits & 0x00000004u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(3, this->_internal_frame_time_min_ms(), target);
  }

  // optional int32 frame_count = 4;
  if (cached_has_bits & 0x00000008u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(4, this->_internal_frame_count(), target);
  }

  // optional float frame_time_total_ms = 5;
  if (cached_has_bits & 0x00000010u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(5, this->_internal_frame_time_total_ms(), target);
  }

  // repeated .CMsgSource2PerfIntervalSample.Tag tags = 6;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_tags_size()); i < n; i++) {
    const auto& repfield = this->_internal_tags(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(6, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:CMsgSource2PerfIntervalSample)
  return target;
}

size_t CMsgSource2PerfIntervalSample::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:CMsgSource2PerfIntervalSample)
  size_t total_size = 0;

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

  // repeated .CMsgSource2PerfIntervalSample.Tag tags = 6;
  total_size += 1UL * this->_internal_tags_size();
  for (const auto& msg : this->_impl_.tags_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x0000001fu) {
    // optional float frame_time_max_ms = 1;
    if (cached_has_bits & 0x00000001u) {
      total_size += 1 + 4;
    }

    // optional float frame_time_avg_ms = 2;
    if (cached_has_bits & 0x00000002u) {
      total_size += 1 + 4;
    }

    // optional float frame_time_min_ms = 3;
    if (cached_has_bits & 0x00000004u) {
      total_size += 1 + 4;
    }

    // optional int32 frame_count = 4;
    if (cached_has_bits & 0x00000008u) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_frame_count());
    }

    // optional float frame_time_total_ms = 5;
    if (cached_has_bits & 0x00000010u) {
      total_size += 1 + 4;
    }

  }
  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CMsgSource2PerfIntervalSample::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    CMsgSource2PerfIntervalSample::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CMsgSource2PerfIntervalSample::GetClassData() const { return &_class_data_; }


void CMsgSource2PerfIntervalSample::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<CMsgSource2PerfIntervalSample*>(&to_msg);
  auto& from = static_cast<const CMsgSource2PerfIntervalSample&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:CMsgSource2PerfIntervalSample)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.tags_.MergeFrom(from._impl_.tags_);
  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x0000001fu) {
    if (cached_has_bits & 0x00000001u) {
      _this->_impl_.frame_time_max_ms_ = from._impl_.frame_time_max_ms_;
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_impl_.frame_time_avg_ms_ = from._impl_.frame_time_avg_ms_;
    }
    if (cached_has_bits & 0x00000004u) {
      _this->_impl_.frame_time_min_ms_ = from._impl_.frame_time_min_ms_;
    }
    if (cached_has_bits & 0x00000008u) {
      _this->_impl_.frame_count_ = from._impl_.frame_count_;
    }
    if (cached_has_bits & 0x00000010u) {
      _this->_impl_.frame_time_total_ms_ = from._impl_.frame_time_total_ms_;
    }
    _this->_impl_._has_bits_[0] |= cached_has_bits;
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

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

bool CMsgSource2PerfIntervalSample::IsInitialized() const {
  return true;
}

void CMsgSource2PerfIntervalSample::InternalSwap(CMsgSource2PerfIntervalSample* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.tags_.InternalSwap(&other->_impl_.tags_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(CMsgSource2PerfIntervalSample, _impl_.frame_time_total_ms_)
      + sizeof(CMsgSource2PerfIntervalSample::_impl_.frame_time_total_ms_)
      - PROTOBUF_FIELD_OFFSET(CMsgSource2PerfIntervalSample, _impl_.frame_time_max_ms_)>(
          reinterpret_cast<char*>(&_impl_.frame_time_max_ms_),
          reinterpret_cast<char*>(&other->_impl_.frame_time_max_ms_));
}

::PROTOBUF_NAMESPACE_ID::Metadata CMsgSource2PerfIntervalSample::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_source2_5fsteam_5fstats_2eproto_getter, &descriptor_table_source2_5fsteam_5fstats_2eproto_once,
      file_level_metadata_source2_5fsteam_5fstats_2eproto[5]);
}

// ===================================================================

class CSource2Metrics_MatchPerfSummary_Notification_Client::_Internal {
 public:
  using HasBits = decltype(std::declval<CSource2Metrics_MatchPerfSummary_Notification_Client>()._impl_._has_bits_);
  static const ::CMsgSource2SystemSpecs& system_specs(const CSource2Metrics_MatchPerfSummary_Notification_Client* msg);
  static void set_has_system_specs(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static const ::CMsgSource2VProfLiteReport& profile(const CSource2Metrics_MatchPerfSummary_Notification_Client* msg);
  static void set_has_profile(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
  static void set_has_build_id(HasBits* has_bits) {
    (*has_bits)[0] |= 32u;
  }
  static const ::CMsgSource2NetworkFlowQuality& downstream_flow(const CSource2Metrics_MatchPerfSummary_Notification_Client* msg);
  static void set_has_downstream_flow(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
  static const ::CMsgSource2NetworkFlowQuality& upstream_flow(const CSource2Metrics_MatchPerfSummary_Notification_Client* msg);
  static void set_has_upstream_flow(HasBits* has_bits) {
    (*has_bits)[0] |= 8u;
  }
  static void set_has_steamid(HasBits* has_bits) {
    (*has_bits)[0] |= 16u;
  }
};

const ::CMsgSource2SystemSpecs&
CSource2Metrics_MatchPerfSummary_Notification_Client::_Internal::system_specs(const CSource2Metrics_MatchPerfSummary_Notification_Client* msg) {
  return *msg->_impl_.system_specs_;
}
const ::CMsgSource2VProfLiteReport&
CSource2Metrics_MatchPerfSummary_Notification_Client::_Internal::profile(const CSource2Metrics_MatchPerfSummary_Notification_Client* msg) {
  return *msg->_impl_.profile_;
}
const ::CMsgSource2NetworkFlowQuality&
CSource2Metrics_MatchPerfSummary_Notification_Client::_Internal::downstream_flow(const CSource2Metrics_MatchPerfSummary_Notification_Client* msg) {
  return *msg->_impl_.downstream_flow_;
}
const ::CMsgSource2NetworkFlowQuality&
CSource2Metrics_MatchPerfSummary_Notification_Client::_Internal::upstream_flow(const CSource2Metrics_MatchPerfSummary_Notification_Client* msg) {
  return *msg->_impl_.upstream_flow_;
}
CSource2Metrics_MatchPerfSummary_Notification_Client::CSource2Metrics_MatchPerfSummary_Notification_Client(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:CSource2Metrics_MatchPerfSummary_Notification.Client)
}
CSource2Metrics_MatchPerfSummary_Notification_Client::CSource2Metrics_MatchPerfSummary_Notification_Client(const CSource2Metrics_MatchPerfSummary_Notification_Client& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  CSource2Metrics_MatchPerfSummary_Notification_Client* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.perf_samples_){from._impl_.perf_samples_}
    , decltype(_impl_.system_specs_){nullptr}
    , decltype(_impl_.profile_){nullptr}
    , decltype(_impl_.downstream_flow_){nullptr}
    , decltype(_impl_.upstream_flow_){nullptr}
    , decltype(_impl_.steamid_){}
    , decltype(_impl_.build_id_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_system_specs()) {
    _this->_impl_.system_specs_ = new ::CMsgSource2SystemSpecs(*from._impl_.system_specs_);
  }
  if (from._internal_has_profile()) {
    _this->_impl_.profile_ = new ::CMsgSource2VProfLiteReport(*from._impl_.profile_);
  }
  if (from._internal_has_downstream_flow()) {
    _this->_impl_.downstream_flow_ = new ::CMsgSource2NetworkFlowQuality(*from._impl_.downstream_flow_);
  }
  if (from._internal_has_upstream_flow()) {
    _this->_impl_.upstream_flow_ = new ::CMsgSource2NetworkFlowQuality(*from._impl_.upstream_flow_);
  }
  ::memcpy(&_impl_.steamid_, &from._impl_.steamid_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.build_id_) -
    reinterpret_cast<char*>(&_impl_.steamid_)) + sizeof(_impl_.build_id_));
  // @@protoc_insertion_point(copy_constructor:CSource2Metrics_MatchPerfSummary_Notification.Client)
}

inline void CSource2Metrics_MatchPerfSummary_Notification_Client::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.perf_samples_){arena}
    , decltype(_impl_.system_specs_){nullptr}
    , decltype(_impl_.profile_){nullptr}
    , decltype(_impl_.downstream_flow_){nullptr}
    , decltype(_impl_.upstream_flow_){nullptr}
    , decltype(_impl_.steamid_){uint64_t{0u}}
    , decltype(_impl_.build_id_){0u}
  };
}

CSource2Metrics_MatchPerfSummary_Notification_Client::~CSource2Metrics_MatchPerfSummary_Notification_Client() {
  // @@protoc_insertion_point(destructor:CSource2Metrics_MatchPerfSummary_Notification.Client)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void CSource2Metrics_MatchPerfSummary_Notification_Client::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.perf_samples_.~RepeatedPtrField();
  if (this != internal_default_instance()) delete _impl_.system_specs_;
  if (this != internal_default_instance()) delete _impl_.profile_;
  if (this != internal_default_instance()) delete _impl_.downstream_flow_;
  if (this != internal_default_instance()) delete _impl_.upstream_flow_;
}

void CSource2Metrics_MatchPerfSummary_Notification_Client::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void CSource2Metrics_MatchPerfSummary_Notification_Client::Clear() {
// @@protoc_insertion_point(message_clear_start:CSource2Metrics_MatchPerfSummary_Notification.Client)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.perf_samples_.Clear();
  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x0000000fu) {
    if (cached_has_bits & 0x00000001u) {
      GOOGLE_DCHECK(_impl_.system_specs_ != nullptr);
      _impl_.system_specs_->Clear();
    }
    if (cached_has_bits & 0x00000002u) {
      GOOGLE_DCHECK(_impl_.profile_ != nullptr);
      _impl_.profile_->Clear();
    }
    if (cached_has_bits & 0x00000004u) {
      GOOGLE_DCHECK(_impl_.downstream_flow_ != nullptr);
      _impl_.downstream_flow_->Clear();
    }
    if (cached_has_bits & 0x00000008u) {
      GOOGLE_DCHECK(_impl_.upstream_flow_ != nullptr);
      _impl_.upstream_flow_->Clear();
    }
  }
  if (cached_has_bits & 0x00000030u) {
    ::memset(&_impl_.steamid_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&_impl_.build_id_) -
        reinterpret_cast<char*>(&_impl_.steamid_)) + sizeof(_impl_.build_id_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CSource2Metrics_MatchPerfSummary_Notification_Client::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional .CMsgSource2SystemSpecs system_specs = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_system_specs(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional .CMsgSource2VProfLiteReport profile = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_profile(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional uint32 build_id = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          _Internal::set_has_build_id(&has_bits);
          _impl_.build_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional .CMsgSource2NetworkFlowQuality downstream_flow = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          ptr = ctx->ParseMessage(_internal_mutable_downstream_flow(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional .CMsgSource2NetworkFlowQuality upstream_flow = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          ptr = ctx->ParseMessage(_internal_mutable_upstream_flow(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional fixed64 steamid = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 81)) {
          _Internal::set_has_steamid(&has_bits);
          _impl_.steamid_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<uint64_t>(ptr);
          ptr += sizeof(uint64_t);
        } else
          goto handle_unusual;
        continue;
      // repeated .CMsgSource2PerfIntervalSample perf_samples = 11;
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 90)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_perf_samples(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<90>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CSource2Metrics_MatchPerfSummary_Notification_Client::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:CSource2Metrics_MatchPerfSummary_Notification.Client)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // optional .CMsgSource2SystemSpecs system_specs = 1;
  if (cached_has_bits & 0x00000001u) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(1, _Internal::system_specs(this),
        _Internal::system_specs(this).GetCachedSize(), target, stream);
  }

  // optional .CMsgSource2VProfLiteReport profile = 2;
  if (cached_has_bits & 0x00000002u) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(2, _Internal::profile(this),
        _Internal::profile(this).GetCachedSize(), target, stream);
  }

  // optional uint32 build_id = 3;
  if (cached_has_bits & 0x00000020u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(3, this->_internal_build_id(), target);
  }

  // optional .CMsgSource2NetworkFlowQuality downstream_flow = 4;
  if (cached_has_bits & 0x00000004u) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(4, _Internal::downstream_flow(this),
        _Internal::downstream_flow(this).GetCachedSize(), target, stream);
  }

  // optional .CMsgSource2NetworkFlowQuality upstream_flow = 5;
  if (cached_has_bits & 0x00000008u) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(5, _Internal::upstream_flow(this),
        _Internal::upstream_flow(this).GetCachedSize(), target, stream);
  }

  // optional fixed64 steamid = 10;
  if (cached_has_bits & 0x00000010u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFixed64ToArray(10, this->_internal_steamid(), target);
  }

  // repeated .CMsgSource2PerfIntervalSample perf_samples = 11;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_perf_samples_size()); i < n; i++) {
    const auto& repfield = this->_internal_perf_samples(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(11, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:CSource2Metrics_MatchPerfSummary_Notification.Client)
  return target;
}

size_t CSource2Metrics_MatchPerfSummary_Notification_Client::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:CSource2Metrics_MatchPerfSummary_Notification.Client)
  size_t total_size = 0;

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

  // repeated .CMsgSource2PerfIntervalSample perf_samples = 11;
  total_size += 1UL * this->_internal_perf_samples_size();
  for (const auto& msg : this->_impl_.perf_samples_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x0000003fu) {
    // optional .CMsgSource2SystemSpecs system_specs = 1;
    if (cached_has_bits & 0x00000001u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.system_specs_);
    }

    // optional .CMsgSource2VProfLiteReport profile = 2;
    if (cached_has_bits & 0x00000002u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.profile_);
    }

    // optional .CMsgSource2NetworkFlowQuality downstream_flow = 4;
    if (cached_has_bits & 0x00000004u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.downstream_flow_);
    }

    // optional .CMsgSource2NetworkFlowQuality upstream_flow = 5;
    if (cached_has_bits & 0x00000008u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.upstream_flow_);
    }

    // optional fixed64 steamid = 10;
    if (cached_has_bits & 0x00000010u) {
      total_size += 1 + 8;
    }

    // optional uint32 build_id = 3;
    if (cached_has_bits & 0x00000020u) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_build_id());
    }

  }
  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CSource2Metrics_MatchPerfSummary_Notification_Client::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    CSource2Metrics_MatchPerfSummary_Notification_Client::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CSource2Metrics_MatchPerfSummary_Notification_Client::GetClassData() const { return &_class_data_; }


void CSource2Metrics_MatchPerfSummary_Notification_Client::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<CSource2Metrics_MatchPerfSummary_Notification_Client*>(&to_msg);
  auto& from = static_cast<const CSource2Metrics_MatchPerfSummary_Notification_Client&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:CSource2Metrics_MatchPerfSummary_Notification.Client)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.perf_samples_.MergeFrom(from._impl_.perf_samples_);
  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x0000003fu) {
    if (cached_has_bits & 0x00000001u) {
      _this->_internal_mutable_system_specs()->::CMsgSource2SystemSpecs::MergeFrom(
          from._internal_system_specs());
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_internal_mutable_profile()->::CMsgSource2VProfLiteReport::MergeFrom(
          from._internal_profile());
    }
    if (cached_has_bits & 0x00000004u) {
      _this->_internal_mutable_downstream_flow()->::CMsgSource2NetworkFlowQuality::MergeFrom(
          from._internal_downstream_flow());
    }
    if (cached_has_bits & 0x00000008u) {
      _this->_internal_mutable_upstream_flow()->::CMsgSource2NetworkFlowQuality::MergeFrom(
          from._internal_upstream_flow());
    }
    if (cached_has_bits & 0x00000010u) {
      _this->_impl_.steamid_ = from._impl_.steamid_;
    }
    if (cached_has_bits & 0x00000020u) {
      _this->_impl_.build_id_ = from._impl_.build_id_;
    }
    _this->_impl_._has_bits_[0] |= cached_has_bits;
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

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

bool CSource2Metrics_MatchPerfSummary_Notification_Client::IsInitialized() const {
  return true;
}

void CSource2Metrics_MatchPerfSummary_Notification_Client::InternalSwap(CSource2Metrics_MatchPerfSummary_Notification_Client* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.perf_samples_.InternalSwap(&other->_impl_.perf_samples_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(CSource2Metrics_MatchPerfSummary_Notification_Client, _impl_.build_id_)
      + sizeof(CSource2Metrics_MatchPerfSummary_Notification_Client::_impl_.build_id_)
      - PROTOBUF_FIELD_OFFSET(CSource2Metrics_MatchPerfSummary_Notification_Client, _impl_.system_specs_)>(
          reinterpret_cast<char*>(&_impl_.system_specs_),
          reinterpret_cast<char*>(&other->_impl_.system_specs_));
}

::PROTOBUF_NAMESPACE_ID::Metadata CSource2Metrics_MatchPerfSummary_Notification_Client::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_source2_5fsteam_5fstats_2eproto_getter, &descriptor_table_source2_5fsteam_5fstats_2eproto_once,
      file_level_metadata_source2_5fsteam_5fstats_2eproto[6]);
}

// ===================================================================

class CSource2Metrics_MatchPerfSummary_Notification::_Internal {
 public:
  using HasBits = decltype(std::declval<CSource2Metrics_MatchPerfSummary_Notification>()._impl_._has_bits_);
  static void set_has_appid(HasBits* has_bits) {
    (*has_bits)[0] |= 8u;
  }
  static void set_has_game_mode(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static void set_has_server_build_id(HasBits* has_bits) {
    (*has_bits)[0] |= 16u;
  }
  static void set_has_server_popid(HasBits* has_bits) {
    (*has_bits)[0] |= 32u;
  }
  static const ::CMsgSource2VProfLiteReport& server_profile(const CSource2Metrics_MatchPerfSummary_Notification* msg);
  static void set_has_server_profile(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
  static void set_has_map(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
};

const ::CMsgSource2VProfLiteReport&
CSource2Metrics_MatchPerfSummary_Notification::_Internal::server_profile(const CSource2Metrics_MatchPerfSummary_Notification* msg) {
  return *msg->_impl_.server_profile_;
}
CSource2Metrics_MatchPerfSummary_Notification::CSource2Metrics_MatchPerfSummary_Notification(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:CSource2Metrics_MatchPerfSummary_Notification)
}
CSource2Metrics_MatchPerfSummary_Notification::CSource2Metrics_MatchPerfSummary_Notification(const CSource2Metrics_MatchPerfSummary_Notification& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  CSource2Metrics_MatchPerfSummary_Notification* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){from._impl_._has_bits_}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.clients_){from._impl_.clients_}
    , decltype(_impl_.game_mode_){}
    , decltype(_impl_.map_){}
    , decltype(_impl_.server_profile_){nullptr}
    , decltype(_impl_.appid_){}
    , decltype(_impl_.server_build_id_){}
    , decltype(_impl_.server_popid_){}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.game_mode_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.game_mode_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (from._internal_has_game_mode()) {
    _this->_impl_.game_mode_.Set(from._internal_game_mode(), 
      _this->GetArenaForAllocation());
  }
  _impl_.map_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.map_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (from._internal_has_map()) {
    _this->_impl_.map_.Set(from._internal_map(), 
      _this->GetArenaForAllocation());
  }
  if (from._internal_has_server_profile()) {
    _this->_impl_.server_profile_ = new ::CMsgSource2VProfLiteReport(*from._impl_.server_profile_);
  }
  ::memcpy(&_impl_.appid_, &from._impl_.appid_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.server_popid_) -
    reinterpret_cast<char*>(&_impl_.appid_)) + sizeof(_impl_.server_popid_));
  // @@protoc_insertion_point(copy_constructor:CSource2Metrics_MatchPerfSummary_Notification)
}

inline void CSource2Metrics_MatchPerfSummary_Notification::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_._has_bits_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , decltype(_impl_.clients_){arena}
    , decltype(_impl_.game_mode_){}
    , decltype(_impl_.map_){}
    , decltype(_impl_.server_profile_){nullptr}
    , decltype(_impl_.appid_){0u}
    , decltype(_impl_.server_build_id_){0u}
    , decltype(_impl_.server_popid_){0u}
  };
  _impl_.game_mode_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.game_mode_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.map_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.map_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

CSource2Metrics_MatchPerfSummary_Notification::~CSource2Metrics_MatchPerfSummary_Notification() {
  // @@protoc_insertion_point(destructor:CSource2Metrics_MatchPerfSummary_Notification)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void CSource2Metrics_MatchPerfSummary_Notification::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.clients_.~RepeatedPtrField();
  _impl_.game_mode_.Destroy();
  _impl_.map_.Destroy();
  if (this != internal_default_instance()) delete _impl_.server_profile_;
}

void CSource2Metrics_MatchPerfSummary_Notification::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void CSource2Metrics_MatchPerfSummary_Notification::Clear() {
// @@protoc_insertion_point(message_clear_start:CSource2Metrics_MatchPerfSummary_Notification)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.clients_.Clear();
  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000007u) {
    if (cached_has_bits & 0x00000001u) {
      _impl_.game_mode_.ClearNonDefaultToEmpty();
    }
    if (cached_has_bits & 0x00000002u) {
      _impl_.map_.ClearNonDefaultToEmpty();
    }
    if (cached_has_bits & 0x00000004u) {
      GOOGLE_DCHECK(_impl_.server_profile_ != nullptr);
      _impl_.server_profile_->Clear();
    }
  }
  if (cached_has_bits & 0x00000038u) {
    ::memset(&_impl_.appid_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&_impl_.server_popid_) -
        reinterpret_cast<char*>(&_impl_.appid_)) + sizeof(_impl_.server_popid_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CSource2Metrics_MatchPerfSummary_Notification::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional uint32 appid = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          _Internal::set_has_appid(&has_bits);
          _impl_.appid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional string game_mode = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_game_mode();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          #ifndef NDEBUG
          ::_pbi::VerifyUTF8(str, "CSource2Metrics_MatchPerfSummary_Notification.game_mode");
          #endif  // !NDEBUG
        } else
          goto handle_unusual;
        continue;
      // optional uint32 server_build_id = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          _Internal::set_has_server_build_id(&has_bits);
          _impl_.server_build_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional fixed32 server_popid = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 37)) {
          _Internal::set_has_server_popid(&has_bits);
          _impl_.server_popid_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<uint32_t>(ptr);
          ptr += sizeof(uint32_t);
        } else
          goto handle_unusual;
        continue;
      // optional .CMsgSource2VProfLiteReport server_profile = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 82)) {
          ptr = ctx->ParseMessage(_internal_mutable_server_profile(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated .CSource2Metrics_MatchPerfSummary_Notification.Client clients = 11;
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 90)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_clients(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<90>(ptr));
        } else
          goto handle_unusual;
        continue;
      // optional string map = 20;
      case 20:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 162)) {
          auto str = _internal_mutable_map();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          #ifndef NDEBUG
          ::_pbi::VerifyUTF8(str, "CSource2Metrics_MatchPerfSummary_Notification.map");
          #endif  // !NDEBUG
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _impl_._has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CSource2Metrics_MatchPerfSummary_Notification::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:CSource2Metrics_MatchPerfSummary_Notification)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  // optional uint32 appid = 1;
  if (cached_has_bits & 0x00000008u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(1, this->_internal_appid(), target);
  }

  // optional string game_mode = 2;
  if (cached_has_bits & 0x00000001u) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::VerifyUTF8StringNamedField(
      this->_internal_game_mode().data(), static_cast<int>(this->_internal_game_mode().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SERIALIZE,
      "CSource2Metrics_MatchPerfSummary_Notification.game_mode");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_game_mode(), target);
  }

  // optional uint32 server_build_id = 3;
  if (cached_has_bits & 0x00000010u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(3, this->_internal_server_build_id(), target);
  }

  // optional fixed32 server_popid = 4;
  if (cached_has_bits & 0x00000020u) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFixed32ToArray(4, this->_internal_server_popid(), target);
  }

  // optional .CMsgSource2VProfLiteReport server_profile = 10;
  if (cached_has_bits & 0x00000004u) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(10, _Internal::server_profile(this),
        _Internal::server_profile(this).GetCachedSize(), target, stream);
  }

  // repeated .CSource2Metrics_MatchPerfSummary_Notification.Client clients = 11;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_clients_size()); i < n; i++) {
    const auto& repfield = this->_internal_clients(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(11, repfield, repfield.GetCachedSize(), target, stream);
  }

  // optional string map = 20;
  if (cached_has_bits & 0x00000002u) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::VerifyUTF8StringNamedField(
      this->_internal_map().data(), static_cast<int>(this->_internal_map().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SERIALIZE,
      "CSource2Metrics_MatchPerfSummary_Notification.map");
    target = stream->WriteStringMaybeAliased(
        20, this->_internal_map(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:CSource2Metrics_MatchPerfSummary_Notification)
  return target;
}

size_t CSource2Metrics_MatchPerfSummary_Notification::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:CSource2Metrics_MatchPerfSummary_Notification)
  size_t total_size = 0;

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

  // repeated .CSource2Metrics_MatchPerfSummary_Notification.Client clients = 11;
  total_size += 1UL * this->_internal_clients_size();
  for (const auto& msg : this->_impl_.clients_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x0000003fu) {
    // optional string game_mode = 2;
    if (cached_has_bits & 0x00000001u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
          this->_internal_game_mode());
    }

    // optional string map = 20;
    if (cached_has_bits & 0x00000002u) {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
          this->_internal_map());
    }

    // optional .CMsgSource2VProfLiteReport server_profile = 10;
    if (cached_has_bits & 0x00000004u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.server_profile_);
    }

    // optional uint32 appid = 1;
    if (cached_has_bits & 0x00000008u) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_appid());
    }

    // optional uint32 server_build_id = 3;
    if (cached_has_bits & 0x00000010u) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_server_build_id());
    }

    // optional fixed32 server_popid = 4;
    if (cached_has_bits & 0x00000020u) {
      total_size += 1 + 4;
    }

  }
  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CSource2Metrics_MatchPerfSummary_Notification::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    CSource2Metrics_MatchPerfSummary_Notification::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CSource2Metrics_MatchPerfSummary_Notification::GetClassData() const { return &_class_data_; }


void CSource2Metrics_MatchPerfSummary_Notification::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<CSource2Metrics_MatchPerfSummary_Notification*>(&to_msg);
  auto& from = static_cast<const CSource2Metrics_MatchPerfSummary_Notification&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:CSource2Metrics_MatchPerfSummary_Notification)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.clients_.MergeFrom(from._impl_.clients_);
  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x0000003fu) {
    if (cached_has_bits & 0x00000001u) {
      _this->_internal_set_game_mode(from._internal_game_mode());
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_internal_set_map(from._internal_map());
    }
    if (cached_has_bits & 0x00000004u) {
      _this->_internal_mutable_server_profile()->::CMsgSource2VProfLiteReport::MergeFrom(
          from._internal_server_profile());
    }
    if (cached_has_bits & 0x00000008u) {
      _this->_impl_.appid_ = from._impl_.appid_;
    }
    if (cached_has_bits & 0x00000010u) {
      _this->_impl_.server_build_id_ = from._impl_.server_build_id_;
    }
    if (cached_has_bits & 0x00000020u) {
      _this->_impl_.server_popid_ = from._impl_.server_popid_;
    }
    _this->_impl_._has_bits_[0] |= cached_has_bits;
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

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

bool CSource2Metrics_MatchPerfSummary_Notification::IsInitialized() const {
  return true;
}

void CSource2Metrics_MatchPerfSummary_Notification::InternalSwap(CSource2Metrics_MatchPerfSummary_Notification* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.clients_.InternalSwap(&other->_impl_.clients_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.game_mode_, lhs_arena,
      &other->_impl_.game_mode_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.map_, lhs_arena,
      &other->_impl_.map_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(CSource2Metrics_MatchPerfSummary_Notification, _impl_.server_popid_)
      + sizeof(CSource2Metrics_MatchPerfSummary_Notification::_impl_.server_popid_)
      - PROTOBUF_FIELD_OFFSET(CSource2Metrics_MatchPerfSummary_Notification, _impl_.server_profile_)>(
          reinterpret_cast<char*>(&_impl_.server_profile_),
          reinterpret_cast<char*>(&other->_impl_.server_profile_));
}

::PROTOBUF_NAMESPACE_ID::Metadata CSource2Metrics_MatchPerfSummary_Notification::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_source2_5fsteam_5fstats_2eproto_getter, &descriptor_table_source2_5fsteam_5fstats_2eproto_once,
      file_level_metadata_source2_5fsteam_5fstats_2eproto[7]);
}

// @@protoc_insertion_point(namespace_scope)
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE ::CMsgSource2SystemSpecs*
Arena::CreateMaybeMessage< ::CMsgSource2SystemSpecs >(Arena* arena) {
  return Arena::CreateMessageInternal< ::CMsgSource2SystemSpecs >(arena);
}
template<> PROTOBUF_NOINLINE ::CMsgSource2VProfLiteReportItem*
Arena::CreateMaybeMessage< ::CMsgSource2VProfLiteReportItem >(Arena* arena) {
  return Arena::CreateMessageInternal< ::CMsgSource2VProfLiteReportItem >(arena);
}
template<> PROTOBUF_NOINLINE ::CMsgSource2VProfLiteReport*
Arena::CreateMaybeMessage< ::CMsgSource2VProfLiteReport >(Arena* arena) {
  return Arena::CreateMessageInternal< ::CMsgSource2VProfLiteReport >(arena);
}
template<> PROTOBUF_NOINLINE ::CMsgSource2NetworkFlowQuality*
Arena::CreateMaybeMessage< ::CMsgSource2NetworkFlowQuality >(Arena* arena) {
  return Arena::CreateMessageInternal< ::CMsgSource2NetworkFlowQuality >(arena);
}
template<> PROTOBUF_NOINLINE ::CMsgSource2PerfIntervalSample_Tag*
Arena::CreateMaybeMessage< ::CMsgSource2PerfIntervalSample_Tag >(Arena* arena) {
  return Arena::CreateMessageInternal< ::CMsgSource2PerfIntervalSample_Tag >(arena);
}
template<> PROTOBUF_NOINLINE ::CMsgSource2PerfIntervalSample*
Arena::CreateMaybeMessage< ::CMsgSource2PerfIntervalSample >(Arena* arena) {
  return Arena::CreateMessageInternal< ::CMsgSource2PerfIntervalSample >(arena);
}
template<> PROTOBUF_NOINLINE ::CSource2Metrics_MatchPerfSummary_Notification_Client*
Arena::CreateMaybeMessage< ::CSource2Metrics_MatchPerfSummary_Notification_Client >(Arena* arena) {
  return Arena::CreateMessageInternal< ::CSource2Metrics_MatchPerfSummary_Notification_Client >(arena);
}
template<> PROTOBUF_NOINLINE ::CSource2Metrics_MatchPerfSummary_Notification*
Arena::CreateMaybeMessage< ::CSource2Metrics_MatchPerfSummary_Notification >(Arena* arena) {
  return Arena::CreateMessageInternal< ::CSource2Metrics_MatchPerfSummary_Notification >(arena);
}
PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)
#include <google/protobuf/port_undef.inc>
