// <auto-generated>
//   This file was generated by a tool; you should avoid making direct changes.
//   Consider using 'partial classes' to extend these types
//   Input: dota_gcmessages_client_battle_report.proto
// </auto-generated>

#region Designer generated code
#pragma warning disable CS0612, CS0618, CS1591, CS3021, IDE0079, IDE1006, RCS1036, RCS1057, RCS1085, RCS1192
namespace SteamKit2.GC.Dota.Internal
{

    [global::ProtoBuf.ProtoContract()]
    public partial class CMsgClientToGCGetBattleReport : global::ProtoBuf.IExtensible
    {
        private global::ProtoBuf.IExtension __pbn__extensionData;
        global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
            => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

        [global::ProtoBuf.ProtoMember(1)]
        public uint account_id
        {
            get => __pbn__account_id.GetValueOrDefault();
            set => __pbn__account_id = value;
        }
        public bool ShouldSerializeaccount_id() => __pbn__account_id != null;
        public void Resetaccount_id() => __pbn__account_id = null;
        private uint? __pbn__account_id;

        [global::ProtoBuf.ProtoMember(2)]
        public uint timestamp
        {
            get => __pbn__timestamp.GetValueOrDefault();
            set => __pbn__timestamp = value;
        }
        public bool ShouldSerializetimestamp() => __pbn__timestamp != null;
        public void Resettimestamp() => __pbn__timestamp = null;
        private uint? __pbn__timestamp;

        [global::ProtoBuf.ProtoMember(3)]
        public uint duration
        {
            get => __pbn__duration.GetValueOrDefault();
            set => __pbn__duration = value;
        }
        public bool ShouldSerializeduration() => __pbn__duration != null;
        public void Resetduration() => __pbn__duration = null;
        private uint? __pbn__duration;

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CMsgBattleReport_Game : global::ProtoBuf.IExtensible
    {
        private global::ProtoBuf.IExtension __pbn__extensionData;
        global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
            => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

        [global::ProtoBuf.ProtoMember(1)]
        public int hero_id
        {
            get => __pbn__hero_id.GetValueOrDefault();
            set => __pbn__hero_id = value;
        }
        public bool ShouldSerializehero_id() => __pbn__hero_id != null;
        public void Resethero_id() => __pbn__hero_id = null;
        private int? __pbn__hero_id;

        [global::ProtoBuf.ProtoMember(2)]
        public uint kills
        {
            get => __pbn__kills.GetValueOrDefault();
            set => __pbn__kills = value;
        }
        public bool ShouldSerializekills() => __pbn__kills != null;
        public void Resetkills() => __pbn__kills = null;
        private uint? __pbn__kills;

        [global::ProtoBuf.ProtoMember(3)]
        public uint deaths
        {
            get => __pbn__deaths.GetValueOrDefault();
            set => __pbn__deaths = value;
        }
        public bool ShouldSerializedeaths() => __pbn__deaths != null;
        public void Resetdeaths() => __pbn__deaths = null;
        private uint? __pbn__deaths;

        [global::ProtoBuf.ProtoMember(4)]
        public uint assists
        {
            get => __pbn__assists.GetValueOrDefault();
            set => __pbn__assists = value;
        }
        public bool ShouldSerializeassists() => __pbn__assists != null;
        public void Resetassists() => __pbn__assists = null;
        private uint? __pbn__assists;

        [global::ProtoBuf.ProtoMember(5)]
        public int rank_change
        {
            get => __pbn__rank_change.GetValueOrDefault();
            set => __pbn__rank_change = value;
        }
        public bool ShouldSerializerank_change() => __pbn__rank_change != null;
        public void Resetrank_change() => __pbn__rank_change = null;
        private int? __pbn__rank_change;

        [global::ProtoBuf.ProtoMember(6)]
        public uint last_hits
        {
            get => __pbn__last_hits.GetValueOrDefault();
            set => __pbn__last_hits = value;
        }
        public bool ShouldSerializelast_hits() => __pbn__last_hits != null;
        public void Resetlast_hits() => __pbn__last_hits = null;
        private uint? __pbn__last_hits;

        [global::ProtoBuf.ProtoMember(21)]
        public uint denies
        {
            get => __pbn__denies.GetValueOrDefault();
            set => __pbn__denies = value;
        }
        public bool ShouldSerializedenies() => __pbn__denies != null;
        public void Resetdenies() => __pbn__denies = null;
        private uint? __pbn__denies;

        [global::ProtoBuf.ProtoMember(7)]
        public uint gpm
        {
            get => __pbn__gpm.GetValueOrDefault();
            set => __pbn__gpm = value;
        }
        public bool ShouldSerializegpm() => __pbn__gpm != null;
        public void Resetgpm() => __pbn__gpm = null;
        private uint? __pbn__gpm;

        [global::ProtoBuf.ProtoMember(8)]
        public uint xpm
        {
            get => __pbn__xpm.GetValueOrDefault();
            set => __pbn__xpm = value;
        }
        public bool ShouldSerializexpm() => __pbn__xpm != null;
        public void Resetxpm() => __pbn__xpm = null;
        private uint? __pbn__xpm;

        [global::ProtoBuf.ProtoMember(9)]
        [global::System.ComponentModel.DefaultValue(CMsgBattleReport_Role.k_eUnknownRole)]
        public CMsgBattleReport_Role role
        {
            get => __pbn__role ?? CMsgBattleReport_Role.k_eUnknownRole;
            set => __pbn__role = value;
        }
        public bool ShouldSerializerole() => __pbn__role != null;
        public void Resetrole() => __pbn__role = null;
        private CMsgBattleReport_Role? __pbn__role;

        [global::ProtoBuf.ProtoMember(10)]
        [global::System.ComponentModel.DefaultValue(CMsgBattleReport_EOutcome.k_eWin)]
        public CMsgBattleReport_EOutcome outcome
        {
            get => __pbn__outcome ?? CMsgBattleReport_EOutcome.k_eWin;
            set => __pbn__outcome = value;
        }
        public bool ShouldSerializeoutcome() => __pbn__outcome != null;
        public void Resetoutcome() => __pbn__outcome = null;
        private CMsgBattleReport_EOutcome? __pbn__outcome;

        [global::ProtoBuf.ProtoMember(11)]
        [global::System.ComponentModel.DefaultValue(CMsgBattleReport_ELaneOutcome.k_eUnknownLaneOutcome)]
        public CMsgBattleReport_ELaneOutcome lane_outcome
        {
            get => __pbn__lane_outcome ?? CMsgBattleReport_ELaneOutcome.k_eUnknownLaneOutcome;
            set => __pbn__lane_outcome = value;
        }
        public bool ShouldSerializelane_outcome() => __pbn__lane_outcome != null;
        public void Resetlane_outcome() => __pbn__lane_outcome = null;
        private CMsgBattleReport_ELaneOutcome? __pbn__lane_outcome;

        [global::ProtoBuf.ProtoMember(12)]
        public bool ranked
        {
            get => __pbn__ranked.GetValueOrDefault();
            set => __pbn__ranked = value;
        }
        public bool ShouldSerializeranked() => __pbn__ranked != null;
        public void Resetranked() => __pbn__ranked = null;
        private bool? __pbn__ranked;

        [global::ProtoBuf.ProtoMember(13)]
        public ulong match_id
        {
            get => __pbn__match_id.GetValueOrDefault();
            set => __pbn__match_id = value;
        }
        public bool ShouldSerializematch_id() => __pbn__match_id != null;
        public void Resetmatch_id() => __pbn__match_id = null;
        private ulong? __pbn__match_id;

        [global::ProtoBuf.ProtoMember(14)]
        public uint lane_selection_flags
        {
            get => __pbn__lane_selection_flags.GetValueOrDefault();
            set => __pbn__lane_selection_flags = value;
        }
        public bool ShouldSerializelane_selection_flags() => __pbn__lane_selection_flags != null;
        public void Resetlane_selection_flags() => __pbn__lane_selection_flags = null;
        private uint? __pbn__lane_selection_flags;

        [global::ProtoBuf.ProtoMember(15)]
        public uint predicted_position
        {
            get => __pbn__predicted_position.GetValueOrDefault();
            set => __pbn__predicted_position = value;
        }
        public bool ShouldSerializepredicted_position() => __pbn__predicted_position != null;
        public void Resetpredicted_position() => __pbn__predicted_position = null;
        private uint? __pbn__predicted_position;

        [global::ProtoBuf.ProtoMember(16)]
        public uint seconds_dead
        {
            get => __pbn__seconds_dead.GetValueOrDefault();
            set => __pbn__seconds_dead = value;
        }
        public bool ShouldSerializeseconds_dead() => __pbn__seconds_dead != null;
        public void Resetseconds_dead() => __pbn__seconds_dead = null;
        private uint? __pbn__seconds_dead;

        [global::ProtoBuf.ProtoMember(17)]
        public uint winning_team
        {
            get => __pbn__winning_team.GetValueOrDefault();
            set => __pbn__winning_team = value;
        }
        public bool ShouldSerializewinning_team() => __pbn__winning_team != null;
        public void Resetwinning_team() => __pbn__winning_team = null;
        private uint? __pbn__winning_team;

        [global::ProtoBuf.ProtoMember(28)]
        public uint player_slot
        {
            get => __pbn__player_slot.GetValueOrDefault();
            set => __pbn__player_slot = value;
        }
        public bool ShouldSerializeplayer_slot() => __pbn__player_slot != null;
        public void Resetplayer_slot() => __pbn__player_slot = null;
        private uint? __pbn__player_slot;

        [global::ProtoBuf.ProtoMember(19)]
        public bool party_game
        {
            get => __pbn__party_game.GetValueOrDefault();
            set => __pbn__party_game = value;
        }
        public bool ShouldSerializeparty_game() => __pbn__party_game != null;
        public void Resetparty_game() => __pbn__party_game = null;
        private bool? __pbn__party_game;

        [global::ProtoBuf.ProtoMember(20)]
        public uint start_time
        {
            get => __pbn__start_time.GetValueOrDefault();
            set => __pbn__start_time = value;
        }
        public bool ShouldSerializestart_time() => __pbn__start_time != null;
        public void Resetstart_time() => __pbn__start_time = null;
        private uint? __pbn__start_time;

        [global::ProtoBuf.ProtoMember(22)]
        public uint bounty_runes
        {
            get => __pbn__bounty_runes.GetValueOrDefault();
            set => __pbn__bounty_runes = value;
        }
        public bool ShouldSerializebounty_runes() => __pbn__bounty_runes != null;
        public void Resetbounty_runes() => __pbn__bounty_runes = null;
        private uint? __pbn__bounty_runes;

        [global::ProtoBuf.ProtoMember(23)]
        public uint water_runes
        {
            get => __pbn__water_runes.GetValueOrDefault();
            set => __pbn__water_runes = value;
        }
        public bool ShouldSerializewater_runes() => __pbn__water_runes != null;
        public void Resetwater_runes() => __pbn__water_runes = null;
        private uint? __pbn__water_runes;

        [global::ProtoBuf.ProtoMember(24)]
        public uint power_runes
        {
            get => __pbn__power_runes.GetValueOrDefault();
            set => __pbn__power_runes = value;
        }
        public bool ShouldSerializepower_runes() => __pbn__power_runes != null;
        public void Resetpower_runes() => __pbn__power_runes = null;
        private uint? __pbn__power_runes;

        [global::ProtoBuf.ProtoMember(25)]
        public uint time_enemy_t1_tower_destroyed
        {
            get => __pbn__time_enemy_t1_tower_destroyed.GetValueOrDefault();
            set => __pbn__time_enemy_t1_tower_destroyed = value;
        }
        public bool ShouldSerializetime_enemy_t1_tower_destroyed() => __pbn__time_enemy_t1_tower_destroyed != null;
        public void Resettime_enemy_t1_tower_destroyed() => __pbn__time_enemy_t1_tower_destroyed = null;
        private uint? __pbn__time_enemy_t1_tower_destroyed;

        [global::ProtoBuf.ProtoMember(26)]
        public uint time_friendly_t1_tower_destroyed
        {
            get => __pbn__time_friendly_t1_tower_destroyed.GetValueOrDefault();
            set => __pbn__time_friendly_t1_tower_destroyed = value;
        }
        public bool ShouldSerializetime_friendly_t1_tower_destroyed() => __pbn__time_friendly_t1_tower_destroyed != null;
        public void Resettime_friendly_t1_tower_destroyed() => __pbn__time_friendly_t1_tower_destroyed = null;
        private uint? __pbn__time_friendly_t1_tower_destroyed;

        [global::ProtoBuf.ProtoMember(27)]
        public uint enemy_roshan_kills
        {
            get => __pbn__enemy_roshan_kills.GetValueOrDefault();
            set => __pbn__enemy_roshan_kills = value;
        }
        public bool ShouldSerializeenemy_roshan_kills() => __pbn__enemy_roshan_kills != null;
        public void Resetenemy_roshan_kills() => __pbn__enemy_roshan_kills = null;
        private uint? __pbn__enemy_roshan_kills;

        [global::ProtoBuf.ProtoMember(29)]
        public uint teleports_used
        {
            get => __pbn__teleports_used.GetValueOrDefault();
            set => __pbn__teleports_used = value;
        }
        public bool ShouldSerializeteleports_used() => __pbn__teleports_used != null;
        public void Resetteleports_used() => __pbn__teleports_used = null;
        private uint? __pbn__teleports_used;

        [global::ProtoBuf.ProtoMember(30)]
        public uint dewards
        {
            get => __pbn__dewards.GetValueOrDefault();
            set => __pbn__dewards = value;
        }
        public bool ShouldSerializedewards() => __pbn__dewards != null;
        public void Resetdewards() => __pbn__dewards = null;
        private uint? __pbn__dewards;

        [global::ProtoBuf.ProtoMember(31)]
        public uint camps_stacked
        {
            get => __pbn__camps_stacked.GetValueOrDefault();
            set => __pbn__camps_stacked = value;
        }
        public bool ShouldSerializecamps_stacked() => __pbn__camps_stacked != null;
        public void Resetcamps_stacked() => __pbn__camps_stacked = null;
        private uint? __pbn__camps_stacked;

        [global::ProtoBuf.ProtoMember(32)]
        public uint support_gold
        {
            get => __pbn__support_gold.GetValueOrDefault();
            set => __pbn__support_gold = value;
        }
        public bool ShouldSerializesupport_gold() => __pbn__support_gold != null;
        public void Resetsupport_gold() => __pbn__support_gold = null;
        private uint? __pbn__support_gold;

        [global::ProtoBuf.ProtoMember(33)]
        public uint hero_damage
        {
            get => __pbn__hero_damage.GetValueOrDefault();
            set => __pbn__hero_damage = value;
        }
        public bool ShouldSerializehero_damage() => __pbn__hero_damage != null;
        public void Resethero_damage() => __pbn__hero_damage = null;
        private uint? __pbn__hero_damage;

        [global::ProtoBuf.ProtoMember(34)]
        public uint hero_healing
        {
            get => __pbn__hero_healing.GetValueOrDefault();
            set => __pbn__hero_healing = value;
        }
        public bool ShouldSerializehero_healing() => __pbn__hero_healing != null;
        public void Resethero_healing() => __pbn__hero_healing = null;
        private uint? __pbn__hero_healing;

        [global::ProtoBuf.ProtoMember(35)]
        public uint tower_damage
        {
            get => __pbn__tower_damage.GetValueOrDefault();
            set => __pbn__tower_damage = value;
        }
        public bool ShouldSerializetower_damage() => __pbn__tower_damage != null;
        public void Resettower_damage() => __pbn__tower_damage = null;
        private uint? __pbn__tower_damage;

        [global::ProtoBuf.ProtoMember(36)]
        public uint successful_smokes
        {
            get => __pbn__successful_smokes.GetValueOrDefault();
            set => __pbn__successful_smokes = value;
        }
        public bool ShouldSerializesuccessful_smokes() => __pbn__successful_smokes != null;
        public void Resetsuccessful_smokes() => __pbn__successful_smokes = null;
        private uint? __pbn__successful_smokes;

        [global::ProtoBuf.ProtoMember(37)]
        public uint stun_duration
        {
            get => __pbn__stun_duration.GetValueOrDefault();
            set => __pbn__stun_duration = value;
        }
        public bool ShouldSerializestun_duration() => __pbn__stun_duration != null;
        public void Resetstun_duration() => __pbn__stun_duration = null;
        private uint? __pbn__stun_duration;

        [global::ProtoBuf.ProtoMember(38)]
        public uint duration
        {
            get => __pbn__duration.GetValueOrDefault();
            set => __pbn__duration = value;
        }
        public bool ShouldSerializeduration() => __pbn__duration != null;
        public void Resetduration() => __pbn__duration = null;
        private uint? __pbn__duration;

        [global::ProtoBuf.ProtoMember(39)]
        public uint friendly_roshan_kills
        {
            get => __pbn__friendly_roshan_kills.GetValueOrDefault();
            set => __pbn__friendly_roshan_kills = value;
        }
        public bool ShouldSerializefriendly_roshan_kills() => __pbn__friendly_roshan_kills != null;
        public void Resetfriendly_roshan_kills() => __pbn__friendly_roshan_kills = null;
        private uint? __pbn__friendly_roshan_kills;

        [global::ProtoBuf.ProtoMember(40)]
        public int previous_rank
        {
            get => __pbn__previous_rank.GetValueOrDefault();
            set => __pbn__previous_rank = value;
        }
        public bool ShouldSerializeprevious_rank() => __pbn__previous_rank != null;
        public void Resetprevious_rank() => __pbn__previous_rank = null;
        private int? __pbn__previous_rank;

        [global::ProtoBuf.ProtoMember(41)]
        public uint game_mode
        {
            get => __pbn__game_mode.GetValueOrDefault();
            set => __pbn__game_mode = value;
        }
        public bool ShouldSerializegame_mode() => __pbn__game_mode != null;
        public void Resetgame_mode() => __pbn__game_mode = null;
        private uint? __pbn__game_mode;

        [global::ProtoBuf.ProtoMember(42)]
        public uint lobby_type
        {
            get => __pbn__lobby_type.GetValueOrDefault();
            set => __pbn__lobby_type = value;
        }
        public bool ShouldSerializelobby_type() => __pbn__lobby_type != null;
        public void Resetlobby_type() => __pbn__lobby_type = null;
        private uint? __pbn__lobby_type;

        [global::ProtoBuf.ProtoMember(43)]
        public float time_purchased_shard
        {
            get => __pbn__time_purchased_shard.GetValueOrDefault();
            set => __pbn__time_purchased_shard = value;
        }
        public bool ShouldSerializetime_purchased_shard() => __pbn__time_purchased_shard != null;
        public void Resettime_purchased_shard() => __pbn__time_purchased_shard = null;
        private float? __pbn__time_purchased_shard;

        [global::ProtoBuf.ProtoMember(44)]
        public float time_purchased_scepter
        {
            get => __pbn__time_purchased_scepter.GetValueOrDefault();
            set => __pbn__time_purchased_scepter = value;
        }
        public bool ShouldSerializetime_purchased_scepter() => __pbn__time_purchased_scepter != null;
        public void Resettime_purchased_scepter() => __pbn__time_purchased_scepter = null;
        private float? __pbn__time_purchased_scepter;

        [global::ProtoBuf.ProtoMember(45)]
        [global::System.ComponentModel.DefaultValue(-1)]
        public int item0
        {
            get => __pbn__item0 ?? -1;
            set => __pbn__item0 = value;
        }
        public bool ShouldSerializeitem0() => __pbn__item0 != null;
        public void Resetitem0() => __pbn__item0 = null;
        private int? __pbn__item0;

        [global::ProtoBuf.ProtoMember(46)]
        [global::System.ComponentModel.DefaultValue(-1)]
        public int item1
        {
            get => __pbn__item1 ?? -1;
            set => __pbn__item1 = value;
        }
        public bool ShouldSerializeitem1() => __pbn__item1 != null;
        public void Resetitem1() => __pbn__item1 = null;
        private int? __pbn__item1;

        [global::ProtoBuf.ProtoMember(47)]
        [global::System.ComponentModel.DefaultValue(-1)]
        public int item2
        {
            get => __pbn__item2 ?? -1;
            set => __pbn__item2 = value;
        }
        public bool ShouldSerializeitem2() => __pbn__item2 != null;
        public void Resetitem2() => __pbn__item2 = null;
        private int? __pbn__item2;

        [global::ProtoBuf.ProtoMember(48)]
        [global::System.ComponentModel.DefaultValue(-1)]
        public int item3
        {
            get => __pbn__item3 ?? -1;
            set => __pbn__item3 = value;
        }
        public bool ShouldSerializeitem3() => __pbn__item3 != null;
        public void Resetitem3() => __pbn__item3 = null;
        private int? __pbn__item3;

        [global::ProtoBuf.ProtoMember(49)]
        [global::System.ComponentModel.DefaultValue(-1)]
        public int item4
        {
            get => __pbn__item4 ?? -1;
            set => __pbn__item4 = value;
        }
        public bool ShouldSerializeitem4() => __pbn__item4 != null;
        public void Resetitem4() => __pbn__item4 = null;
        private int? __pbn__item4;

        [global::ProtoBuf.ProtoMember(50)]
        [global::System.ComponentModel.DefaultValue(-1)]
        public int item5
        {
            get => __pbn__item5 ?? -1;
            set => __pbn__item5 = value;
        }
        public bool ShouldSerializeitem5() => __pbn__item5 != null;
        public void Resetitem5() => __pbn__item5 = null;
        private int? __pbn__item5;

        [global::ProtoBuf.ProtoMember(51)]
        public uint selected_facet
        {
            get => __pbn__selected_facet.GetValueOrDefault();
            set => __pbn__selected_facet = value;
        }
        public bool ShouldSerializeselected_facet() => __pbn__selected_facet != null;
        public void Resetselected_facet() => __pbn__selected_facet = null;
        private uint? __pbn__selected_facet;

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CMsgBattleReport_GameList : global::ProtoBuf.IExtensible
    {
        private global::ProtoBuf.IExtension __pbn__extensionData;
        global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
            => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

        [global::ProtoBuf.ProtoMember(1)]
        public global::System.Collections.Generic.List<CMsgBattleReport_Game> games { get; } = new global::System.Collections.Generic.List<CMsgBattleReport_Game>();

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CMsgBattleReport : global::ProtoBuf.IExtensible
    {
        private global::ProtoBuf.IExtension __pbn__extensionData;
        global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
            => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

        [global::ProtoBuf.ProtoMember(1)]
        public global::System.Collections.Generic.List<CMsgBattleReport_Game> games { get; } = new global::System.Collections.Generic.List<CMsgBattleReport_Game>();

        [global::ProtoBuf.ProtoMember(3)]
        public CMsgBattleReportHighlights highlights { get; set; }

        [global::ProtoBuf.ProtoContract()]
        public partial class HighlightGeneral : global::ProtoBuf.IExtensible
        {
            private global::ProtoBuf.IExtension __pbn__extensionData;
            global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
                => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

            [global::ProtoBuf.ProtoMember(1)]
            public int win_loss_window
            {
                get => __pbn__win_loss_window.GetValueOrDefault();
                set => __pbn__win_loss_window = value;
            }
            public bool ShouldSerializewin_loss_window() => __pbn__win_loss_window != null;
            public void Resetwin_loss_window() => __pbn__win_loss_window = null;
            private int? __pbn__win_loss_window;

            [global::ProtoBuf.ProtoMember(2)]
            public float win_percent
            {
                get => __pbn__win_percent.GetValueOrDefault();
                set => __pbn__win_percent = value;
            }
            public bool ShouldSerializewin_percent() => __pbn__win_percent != null;
            public void Resetwin_percent() => __pbn__win_percent = null;
            private float? __pbn__win_percent;

            [global::ProtoBuf.ProtoMember(3)]
            public int mmr_delta
            {
                get => __pbn__mmr_delta.GetValueOrDefault();
                set => __pbn__mmr_delta = value;
            }
            public bool ShouldSerializemmr_delta() => __pbn__mmr_delta != null;
            public void Resetmmr_delta() => __pbn__mmr_delta = null;
            private int? __pbn__mmr_delta;

            [global::ProtoBuf.ProtoMember(4)]
            public float highlight_score
            {
                get => __pbn__highlight_score.GetValueOrDefault();
                set => __pbn__highlight_score = value;
            }
            public bool ShouldSerializehighlight_score() => __pbn__highlight_score != null;
            public void Resethighlight_score() => __pbn__highlight_score = null;
            private float? __pbn__highlight_score;

        }

        [global::ProtoBuf.ProtoContract()]
        public partial class Highlight : global::ProtoBuf.IExtensible
        {
            private global::ProtoBuf.IExtension __pbn__extensionData;
            global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
                => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

            [global::ProtoBuf.ProtoMember(1, IsRequired = true)]
            public uint highlight_id { get; set; }

            [global::ProtoBuf.ProtoMember(2, IsRequired = true)]
            public CMsgBattleReport_HighlightCategory category { get; set; } = CMsgBattleReport_HighlightCategory.k_eHighlightGeneral;

            [global::ProtoBuf.ProtoMember(3)]
            [global::System.ComponentModel.DefaultValue(CMsgBattleReport_HighlightTier.k_eHighlightTierLow)]
            public CMsgBattleReport_HighlightTier tier
            {
                get => __pbn__tier ?? CMsgBattleReport_HighlightTier.k_eHighlightTierLow;
                set => __pbn__tier = value;
            }
            public bool ShouldSerializetier() => __pbn__tier != null;
            public void Resettier() => __pbn__tier = null;
            private CMsgBattleReport_HighlightTier? __pbn__tier;

            [global::ProtoBuf.ProtoMember(4)]
            [global::System.ComponentModel.DefaultValue(CMsgBattleReport_HighlightRarity.k_eHighlightCommon)]
            public CMsgBattleReport_HighlightRarity rarity
            {
                get => __pbn__rarity ?? CMsgBattleReport_HighlightRarity.k_eHighlightCommon;
                set => __pbn__rarity = value;
            }
            public bool ShouldSerializerarity() => __pbn__rarity != null;
            public void Resetrarity() => __pbn__rarity = null;
            private CMsgBattleReport_HighlightRarity? __pbn__rarity;

            [global::ProtoBuf.ProtoMember(5)]
            public float score
            {
                get => __pbn__score.GetValueOrDefault();
                set => __pbn__score = value;
            }
            public bool ShouldSerializescore() => __pbn__score != null;
            public void Resetscore() => __pbn__score = null;
            private float? __pbn__score;

            [global::ProtoBuf.ProtoMember(6)]
            public float confidence
            {
                get => __pbn__confidence.GetValueOrDefault();
                set => __pbn__confidence = value;
            }
            public bool ShouldSerializeconfidence() => __pbn__confidence != null;
            public void Resetconfidence() => __pbn__confidence = null;
            private float? __pbn__confidence;

            [global::ProtoBuf.ProtoMember(7)]
            public int hero_id
            {
                get => __pbn__hero_id.GetValueOrDefault();
                set => __pbn__hero_id = value;
            }
            public bool ShouldSerializehero_id() => __pbn__hero_id != null;
            public void Resethero_id() => __pbn__hero_id = null;
            private int? __pbn__hero_id;

            [global::ProtoBuf.ProtoMember(8)]
            [global::System.ComponentModel.DefaultValue(CMsgBattleReport_Role.k_eUnknownRole)]
            public CMsgBattleReport_Role role
            {
                get => __pbn__role ?? CMsgBattleReport_Role.k_eUnknownRole;
                set => __pbn__role = value;
            }
            public bool ShouldSerializerole() => __pbn__role != null;
            public void Resetrole() => __pbn__role = null;
            private CMsgBattleReport_Role? __pbn__role;

            [global::ProtoBuf.ProtoMember(9)]
            public float comparison_delta_value
            {
                get => __pbn__comparison_delta_value.GetValueOrDefault();
                set => __pbn__comparison_delta_value = value;
            }
            public bool ShouldSerializecomparison_delta_value() => __pbn__comparison_delta_value != null;
            public void Resetcomparison_delta_value() => __pbn__comparison_delta_value = null;
            private float? __pbn__comparison_delta_value;

            [global::ProtoBuf.ProtoMember(10)]
            [global::System.ComponentModel.DefaultValue(CMsgBattleReport_CompareContext.k_eCompareContextInvalid)]
            public CMsgBattleReport_CompareContext context
            {
                get => __pbn__context ?? CMsgBattleReport_CompareContext.k_eCompareContextInvalid;
                set => __pbn__context = value;
            }
            public bool ShouldSerializecontext() => __pbn__context != null;
            public void Resetcontext() => __pbn__context = null;
            private CMsgBattleReport_CompareContext? __pbn__context;

        }

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CMsgBattleReportInfo : global::ProtoBuf.IExtensible
    {
        private global::ProtoBuf.IExtension __pbn__extensionData;
        global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
            => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

        [global::ProtoBuf.ProtoMember(1)]
        public uint timestamp
        {
            get => __pbn__timestamp.GetValueOrDefault();
            set => __pbn__timestamp = value;
        }
        public bool ShouldSerializetimestamp() => __pbn__timestamp != null;
        public void Resettimestamp() => __pbn__timestamp = null;
        private uint? __pbn__timestamp;

        [global::ProtoBuf.ProtoMember(2)]
        public uint duration
        {
            get => __pbn__duration.GetValueOrDefault();
            set => __pbn__duration = value;
        }
        public bool ShouldSerializeduration() => __pbn__duration != null;
        public void Resetduration() => __pbn__duration = null;
        private uint? __pbn__duration;

        [global::ProtoBuf.ProtoMember(3)]
        public bool acknowledged
        {
            get => __pbn__acknowledged.GetValueOrDefault();
            set => __pbn__acknowledged = value;
        }
        public bool ShouldSerializeacknowledged() => __pbn__acknowledged != null;
        public void Resetacknowledged() => __pbn__acknowledged = null;
        private bool? __pbn__acknowledged;

        [global::ProtoBuf.ProtoMember(4)]
        public int featured_hero_id
        {
            get => __pbn__featured_hero_id.GetValueOrDefault();
            set => __pbn__featured_hero_id = value;
        }
        public bool ShouldSerializefeatured_hero_id() => __pbn__featured_hero_id != null;
        public void Resetfeatured_hero_id() => __pbn__featured_hero_id = null;
        private int? __pbn__featured_hero_id;

        [global::ProtoBuf.ProtoMember(5)]
        public uint featured_position
        {
            get => __pbn__featured_position.GetValueOrDefault();
            set => __pbn__featured_position = value;
        }
        public bool ShouldSerializefeatured_position() => __pbn__featured_position != null;
        public void Resetfeatured_position() => __pbn__featured_position = null;
        private uint? __pbn__featured_position;

        [global::ProtoBuf.ProtoMember(6)]
        public uint games_played
        {
            get => __pbn__games_played.GetValueOrDefault();
            set => __pbn__games_played = value;
        }
        public bool ShouldSerializegames_played() => __pbn__games_played != null;
        public void Resetgames_played() => __pbn__games_played = null;
        private uint? __pbn__games_played;

        [global::ProtoBuf.ProtoMember(7)]
        public global::System.Collections.Generic.List<uint> medal_counts { get; } = new global::System.Collections.Generic.List<uint>();

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CMsgBattleReportInfoList : global::ProtoBuf.IExtensible
    {
        private global::ProtoBuf.IExtension __pbn__extensionData;
        global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
            => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

        [global::ProtoBuf.ProtoMember(1)]
        public global::System.Collections.Generic.List<CMsgBattleReportInfo> battle_report_info { get; } = new global::System.Collections.Generic.List<CMsgBattleReportInfo>();

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CMsgBattleReportHighlights : global::ProtoBuf.IExtensible
    {
        private global::ProtoBuf.IExtension __pbn__extensionData;
        global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
            => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

        [global::ProtoBuf.ProtoMember(1)]
        public global::System.Collections.Generic.List<CMsgBattleReport.Highlight> highlights { get; } = new global::System.Collections.Generic.List<CMsgBattleReport.Highlight>();

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CMsgBattleReportAggregateStats : global::ProtoBuf.IExtensible
    {
        private global::ProtoBuf.IExtension __pbn__extensionData;
        global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
            => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

        [global::ProtoBuf.ProtoMember(1)]
        public global::System.Collections.Generic.List<CMsgBattleReportAggregate> result { get; } = new global::System.Collections.Generic.List<CMsgBattleReportAggregate>();

        [global::ProtoBuf.ProtoContract()]
        public partial class CMsgBattleReportStat : global::ProtoBuf.IExtensible
        {
            private global::ProtoBuf.IExtension __pbn__extensionData;
            global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
                => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

            [global::ProtoBuf.ProtoMember(1)]
            public float mean
            {
                get => __pbn__mean.GetValueOrDefault();
                set => __pbn__mean = value;
            }
            public bool ShouldSerializemean() => __pbn__mean != null;
            public void Resetmean() => __pbn__mean = null;
            private float? __pbn__mean;

            [global::ProtoBuf.ProtoMember(2)]
            public float stdev
            {
                get => __pbn__stdev.GetValueOrDefault();
                set => __pbn__stdev = value;
            }
            public bool ShouldSerializestdev() => __pbn__stdev != null;
            public void Resetstdev() => __pbn__stdev = null;
            private float? __pbn__stdev;

        }

        [global::ProtoBuf.ProtoContract()]
        public partial class CMsgBattleReportAggregate : global::ProtoBuf.IExtensible
        {
            private global::ProtoBuf.IExtension __pbn__extensionData;
            global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
                => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

            [global::ProtoBuf.ProtoMember(1)]
            public int hero_id
            {
                get => __pbn__hero_id.GetValueOrDefault();
                set => __pbn__hero_id = value;
            }
            public bool ShouldSerializehero_id() => __pbn__hero_id != null;
            public void Resethero_id() => __pbn__hero_id = null;
            private int? __pbn__hero_id;

            [global::ProtoBuf.ProtoMember(2)]
            public uint predicted_position
            {
                get => __pbn__predicted_position.GetValueOrDefault();
                set => __pbn__predicted_position = value;
            }
            public bool ShouldSerializepredicted_position() => __pbn__predicted_position != null;
            public void Resetpredicted_position() => __pbn__predicted_position = null;
            private uint? __pbn__predicted_position;

            [global::ProtoBuf.ProtoMember(3)]
            public uint game_count
            {
                get => __pbn__game_count.GetValueOrDefault();
                set => __pbn__game_count = value;
            }
            public bool ShouldSerializegame_count() => __pbn__game_count != null;
            public void Resetgame_count() => __pbn__game_count = null;
            private uint? __pbn__game_count;

            [global::ProtoBuf.ProtoMember(4)]
            public uint win_count
            {
                get => __pbn__win_count.GetValueOrDefault();
                set => __pbn__win_count = value;
            }
            public bool ShouldSerializewin_count() => __pbn__win_count != null;
            public void Resetwin_count() => __pbn__win_count = null;
            private uint? __pbn__win_count;

            [global::ProtoBuf.ProtoMember(5)]
            public uint lane_win_count
            {
                get => __pbn__lane_win_count.GetValueOrDefault();
                set => __pbn__lane_win_count = value;
            }
            public bool ShouldSerializelane_win_count() => __pbn__lane_win_count != null;
            public void Resetlane_win_count() => __pbn__lane_win_count = null;
            private uint? __pbn__lane_win_count;

            [global::ProtoBuf.ProtoMember(6)]
            public CMsgBattleReportAggregateStats.CMsgBattleReportStat kills { get; set; }

            [global::ProtoBuf.ProtoMember(7)]
            public CMsgBattleReportAggregateStats.CMsgBattleReportStat deaths { get; set; }

            [global::ProtoBuf.ProtoMember(8)]
            public CMsgBattleReportAggregateStats.CMsgBattleReportStat assists { get; set; }

            [global::ProtoBuf.ProtoMember(9)]
            public CMsgBattleReportAggregateStats.CMsgBattleReportStat rank_change { get; set; }

            [global::ProtoBuf.ProtoMember(10)]
            public CMsgBattleReportAggregateStats.CMsgBattleReportStat last_hits { get; set; }

            [global::ProtoBuf.ProtoMember(11)]
            public CMsgBattleReportAggregateStats.CMsgBattleReportStat denies { get; set; }

            [global::ProtoBuf.ProtoMember(12)]
            public CMsgBattleReportAggregateStats.CMsgBattleReportStat gpm { get; set; }

            [global::ProtoBuf.ProtoMember(13)]
            public CMsgBattleReportAggregateStats.CMsgBattleReportStat xpm { get; set; }

            [global::ProtoBuf.ProtoMember(14)]
            public CMsgBattleReportAggregateStats.CMsgBattleReportStat seconds_dead { get; set; }

            [global::ProtoBuf.ProtoMember(15)]
            public CMsgBattleReportAggregateStats.CMsgBattleReportStat bounty_runes { get; set; }

            [global::ProtoBuf.ProtoMember(16)]
            public CMsgBattleReportAggregateStats.CMsgBattleReportStat water_runes { get; set; }

            [global::ProtoBuf.ProtoMember(17)]
            public CMsgBattleReportAggregateStats.CMsgBattleReportStat power_runes { get; set; }

            [global::ProtoBuf.ProtoMember(18)]
            public CMsgBattleReportAggregateStats.CMsgBattleReportStat time_enemy_t1_tower_destroyed { get; set; }

            [global::ProtoBuf.ProtoMember(19)]
            public CMsgBattleReportAggregateStats.CMsgBattleReportStat time_friendly_t1_tower_destroyed { get; set; }

            [global::ProtoBuf.ProtoMember(20)]
            public CMsgBattleReportAggregateStats.CMsgBattleReportStat enemy_roshan_kills { get; set; }

            [global::ProtoBuf.ProtoMember(21)]
            public CMsgBattleReportAggregateStats.CMsgBattleReportStat teleports_used { get; set; }

            [global::ProtoBuf.ProtoMember(22)]
            public CMsgBattleReportAggregateStats.CMsgBattleReportStat dewards { get; set; }

            [global::ProtoBuf.ProtoMember(23)]
            public CMsgBattleReportAggregateStats.CMsgBattleReportStat camps_stacked { get; set; }

            [global::ProtoBuf.ProtoMember(24)]
            public CMsgBattleReportAggregateStats.CMsgBattleReportStat support_gold { get; set; }

            [global::ProtoBuf.ProtoMember(25)]
            public CMsgBattleReportAggregateStats.CMsgBattleReportStat hero_damage { get; set; }

            [global::ProtoBuf.ProtoMember(26)]
            public CMsgBattleReportAggregateStats.CMsgBattleReportStat hero_healing { get; set; }

            [global::ProtoBuf.ProtoMember(27)]
            public CMsgBattleReportAggregateStats.CMsgBattleReportStat tower_damage { get; set; }

            [global::ProtoBuf.ProtoMember(28)]
            public CMsgBattleReportAggregateStats.CMsgBattleReportStat successful_smokes { get; set; }

            [global::ProtoBuf.ProtoMember(29)]
            public CMsgBattleReportAggregateStats.CMsgBattleReportStat stun_duration { get; set; }

            [global::ProtoBuf.ProtoMember(30)]
            public CMsgBattleReportAggregateStats.CMsgBattleReportStat duration { get; set; }

            [global::ProtoBuf.ProtoMember(31)]
            public CMsgBattleReportAggregateStats.CMsgBattleReportStat friendly_roshan_kills { get; set; }

        }

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CMsgBattleReportAggregatedGeneralStats : global::ProtoBuf.IExtensible
    {
        private global::ProtoBuf.IExtension __pbn__extensionData;
        global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
            => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CMsgClientToGCGetBattleReportResponse : global::ProtoBuf.IExtensible
    {
        private global::ProtoBuf.IExtension __pbn__extensionData;
        global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
            => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

        [global::ProtoBuf.ProtoMember(1)]
        public CMsgBattleReport report { get; set; }

        [global::ProtoBuf.ProtoMember(2)]
        [global::System.ComponentModel.DefaultValue(EResponse.k_eInternalError)]
        public EResponse response
        {
            get => __pbn__response ?? EResponse.k_eInternalError;
            set => __pbn__response = value;
        }
        public bool ShouldSerializeresponse() => __pbn__response != null;
        public void Resetresponse() => __pbn__response = null;
        private EResponse? __pbn__response;

        [global::ProtoBuf.ProtoMember(3)]
        public CMsgBattleReportAggregateStats aggregate_stats { get; set; }

        [global::ProtoBuf.ProtoMember(4)]
        public CMsgBattleReportInfo info { get; set; }

        [global::ProtoBuf.ProtoContract()]
        public enum EResponse
        {
            k_eInternalError = 0,
            k_eSuccess = 1,
            k_eTooBusy = 2,
            k_eDisabled = 3,
            k_ePermissionDenied = 4,
            k_eNotSubscribedToDotaPlus = 5,
            k_eInvalidParameters = 6,
            k_eUnableToGetPlusSubInfo = 7,
            k_eUnableToLoadBattleReport = 8,
            k_eUnableToSaveBattleReport = 9,
            k_eUnableToGetAggregates = 10,
            k_eNotEnoughGamesPlayed = 11,
        }

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CMsgClientToGCGetBattleReportAggregateStats : global::ProtoBuf.IExtensible
    {
        private global::ProtoBuf.IExtension __pbn__extensionData;
        global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
            => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

        [global::ProtoBuf.ProtoMember(1)]
        public global::System.Collections.Generic.List<CMsgBattleReportAggregateKey> aggregate_keys { get; } = new global::System.Collections.Generic.List<CMsgBattleReportAggregateKey>();

        [global::ProtoBuf.ProtoMember(2)]
        public uint timestamp
        {
            get => __pbn__timestamp.GetValueOrDefault();
            set => __pbn__timestamp = value;
        }
        public bool ShouldSerializetimestamp() => __pbn__timestamp != null;
        public void Resettimestamp() => __pbn__timestamp = null;
        private uint? __pbn__timestamp;

        [global::ProtoBuf.ProtoMember(3)]
        public uint duration
        {
            get => __pbn__duration.GetValueOrDefault();
            set => __pbn__duration = value;
        }
        public bool ShouldSerializeduration() => __pbn__duration != null;
        public void Resetduration() => __pbn__duration = null;
        private uint? __pbn__duration;

        [global::ProtoBuf.ProtoMember(4)]
        public uint rank
        {
            get => __pbn__rank.GetValueOrDefault();
            set => __pbn__rank = value;
        }
        public bool ShouldSerializerank() => __pbn__rank != null;
        public void Resetrank() => __pbn__rank = null;
        private uint? __pbn__rank;

        [global::ProtoBuf.ProtoContract()]
        public partial class CMsgBattleReportAggregateKey : global::ProtoBuf.IExtensible
        {
            private global::ProtoBuf.IExtension __pbn__extensionData;
            global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
                => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

            [global::ProtoBuf.ProtoMember(1)]
            public int hero_id
            {
                get => __pbn__hero_id.GetValueOrDefault();
                set => __pbn__hero_id = value;
            }
            public bool ShouldSerializehero_id() => __pbn__hero_id != null;
            public void Resethero_id() => __pbn__hero_id = null;
            private int? __pbn__hero_id;

            [global::ProtoBuf.ProtoMember(2)]
            public uint predicted_position
            {
                get => __pbn__predicted_position.GetValueOrDefault();
                set => __pbn__predicted_position = value;
            }
            public bool ShouldSerializepredicted_position() => __pbn__predicted_position != null;
            public void Resetpredicted_position() => __pbn__predicted_position = null;
            private uint? __pbn__predicted_position;

        }

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CMsgClientToGCGetBattleReportAggregateStatsResponse : global::ProtoBuf.IExtensible
    {
        private global::ProtoBuf.IExtension __pbn__extensionData;
        global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
            => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

        [global::ProtoBuf.ProtoMember(1)]
        public CMsgBattleReportAggregateStats aggregate_stats { get; set; }

        [global::ProtoBuf.ProtoMember(2)]
        [global::System.ComponentModel.DefaultValue(EResponse.k_eInternalError)]
        public EResponse response
        {
            get => __pbn__response ?? EResponse.k_eInternalError;
            set => __pbn__response = value;
        }
        public bool ShouldSerializeresponse() => __pbn__response != null;
        public void Resetresponse() => __pbn__response = null;
        private EResponse? __pbn__response;

        [global::ProtoBuf.ProtoContract()]
        public enum EResponse
        {
            k_eInternalError = 0,
            k_eSuccess = 1,
            k_eTooBusy = 2,
            k_eDisabled = 3,
            k_ePermissionDenied = 4,
            k_eInvalidParams = 5,
            k_eNotSubscribedToDotaPlus = 6,
        }

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CMsgClientToGCGetBattleReportInfo : global::ProtoBuf.IExtensible
    {
        private global::ProtoBuf.IExtension __pbn__extensionData;
        global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
            => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

        [global::ProtoBuf.ProtoMember(1)]
        public uint account_id
        {
            get => __pbn__account_id.GetValueOrDefault();
            set => __pbn__account_id = value;
        }
        public bool ShouldSerializeaccount_id() => __pbn__account_id != null;
        public void Resetaccount_id() => __pbn__account_id = null;
        private uint? __pbn__account_id;

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CMsgClientToGCGetBattleReportInfoResponse : global::ProtoBuf.IExtensible
    {
        private global::ProtoBuf.IExtension __pbn__extensionData;
        global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
            => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

        [global::ProtoBuf.ProtoMember(1)]
        public CMsgBattleReportInfoList battle_report_info_list { get; set; }

        [global::ProtoBuf.ProtoMember(2)]
        [global::System.ComponentModel.DefaultValue(EResponse.k_eInternalError)]
        public EResponse response
        {
            get => __pbn__response ?? EResponse.k_eInternalError;
            set => __pbn__response = value;
        }
        public bool ShouldSerializeresponse() => __pbn__response != null;
        public void Resetresponse() => __pbn__response = null;
        private EResponse? __pbn__response;

        [global::ProtoBuf.ProtoContract()]
        public enum EResponse
        {
            k_eInternalError = 0,
            k_eSuccess = 1,
            k_eTooBusy = 2,
            k_eDisabled = 3,
            k_ePermissionDenied = 4,
            k_eNotSubscribedToDotaPlus = 5,
        }

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CMsgClientToGCAcknowledgeBattleReport : global::ProtoBuf.IExtensible
    {
        private global::ProtoBuf.IExtension __pbn__extensionData;
        global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
            => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

        [global::ProtoBuf.ProtoMember(1)]
        public uint account_id
        {
            get => __pbn__account_id.GetValueOrDefault();
            set => __pbn__account_id = value;
        }
        public bool ShouldSerializeaccount_id() => __pbn__account_id != null;
        public void Resetaccount_id() => __pbn__account_id = null;
        private uint? __pbn__account_id;

        [global::ProtoBuf.ProtoMember(2)]
        public uint timestamp
        {
            get => __pbn__timestamp.GetValueOrDefault();
            set => __pbn__timestamp = value;
        }
        public bool ShouldSerializetimestamp() => __pbn__timestamp != null;
        public void Resettimestamp() => __pbn__timestamp = null;
        private uint? __pbn__timestamp;

        [global::ProtoBuf.ProtoMember(3)]
        public uint duration
        {
            get => __pbn__duration.GetValueOrDefault();
            set => __pbn__duration = value;
        }
        public bool ShouldSerializeduration() => __pbn__duration != null;
        public void Resetduration() => __pbn__duration = null;
        private uint? __pbn__duration;

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CMsgClientToGCAcknowledgeBattleReportResponse : global::ProtoBuf.IExtensible
    {
        private global::ProtoBuf.IExtension __pbn__extensionData;
        global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
            => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

        [global::ProtoBuf.ProtoMember(1)]
        [global::System.ComponentModel.DefaultValue(EResponse.k_eInternalError)]
        public EResponse response
        {
            get => __pbn__response ?? EResponse.k_eInternalError;
            set => __pbn__response = value;
        }
        public bool ShouldSerializeresponse() => __pbn__response != null;
        public void Resetresponse() => __pbn__response = null;
        private EResponse? __pbn__response;

        [global::ProtoBuf.ProtoMember(2)]
        public uint shards_awarded
        {
            get => __pbn__shards_awarded.GetValueOrDefault();
            set => __pbn__shards_awarded = value;
        }
        public bool ShouldSerializeshards_awarded() => __pbn__shards_awarded != null;
        public void Resetshards_awarded() => __pbn__shards_awarded = null;
        private uint? __pbn__shards_awarded;

        [global::ProtoBuf.ProtoContract()]
        public enum EResponse
        {
            k_eInternalError = 0,
            k_eSuccess = 1,
            k_eTooBusy = 2,
            k_eDisabled = 3,
            k_eTimeout = 4,
            k_ePermissionDenied = 5,
            k_eUnableToLoadBattleReport = 6,
            k_eAlreadyAcknowledged = 7,
            k_eUnknownReport = 8,
            k_eNotSubscribedToDotaPlus = 9,
            k_eNotEnoughGamesPlayed = 10,
        }

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CMsgClientToGCGetBattleReportMatchHistory : global::ProtoBuf.IExtensible
    {
        private global::ProtoBuf.IExtension __pbn__extensionData;
        global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
            => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

        [global::ProtoBuf.ProtoMember(1)]
        public uint account_id
        {
            get => __pbn__account_id.GetValueOrDefault();
            set => __pbn__account_id = value;
        }
        public bool ShouldSerializeaccount_id() => __pbn__account_id != null;
        public void Resetaccount_id() => __pbn__account_id = null;
        private uint? __pbn__account_id;

        [global::ProtoBuf.ProtoMember(2)]
        public uint timestamp
        {
            get => __pbn__timestamp.GetValueOrDefault();
            set => __pbn__timestamp = value;
        }
        public bool ShouldSerializetimestamp() => __pbn__timestamp != null;
        public void Resettimestamp() => __pbn__timestamp = null;
        private uint? __pbn__timestamp;

        [global::ProtoBuf.ProtoMember(3)]
        public uint duration
        {
            get => __pbn__duration.GetValueOrDefault();
            set => __pbn__duration = value;
        }
        public bool ShouldSerializeduration() => __pbn__duration != null;
        public void Resetduration() => __pbn__duration = null;
        private uint? __pbn__duration;

    }

    [global::ProtoBuf.ProtoContract()]
    public partial class CMsgClientToGCGetBattleReportMatchHistoryResponse : global::ProtoBuf.IExtensible
    {
        private global::ProtoBuf.IExtension __pbn__extensionData;
        global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
            => global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);

        [global::ProtoBuf.ProtoMember(1)]
        [global::System.ComponentModel.DefaultValue(EResponse.k_eInternalError)]
        public EResponse response
        {
            get => __pbn__response ?? EResponse.k_eInternalError;
            set => __pbn__response = value;
        }
        public bool ShouldSerializeresponse() => __pbn__response != null;
        public void Resetresponse() => __pbn__response = null;
        private EResponse? __pbn__response;

        [global::ProtoBuf.ProtoMember(2)]
        public CMsgBattleReport_GameList games { get; set; }

        [global::ProtoBuf.ProtoContract()]
        public enum EResponse
        {
            k_eInternalError = 0,
            k_eSuccess = 1,
            k_eTooBusy = 2,
            k_eDisabled = 3,
            k_eTimeout = 4,
            k_ePermissionDenied = 5,
            k_eNotSubscribedToDotaPlus = 6,
        }

    }

    [global::ProtoBuf.ProtoContract()]
    public enum CMsgBattleReport_HighlightType
    {
        k_eHighlightTypeInvalid = -1,
        k_eGameWinrate = 0,
        k_eLaneWinrate = 1,
        k_eMMRDelta = 2,
        k_eNumHeroesPlayed = 3,
        k_eNumGamesPlayed = 4,
        k_eAveragePowerRunesTaken = 5,
        k_eAverageBountyRunesTaken = 6,
        k_eTotalKillEnemyT1First = 7,
        k_eTotalRoshanKills = 8,
        k_eTotalDewards = 9,
        k_eTotalCampsStacked = 10,
        k_eMaxWinstreak = 11,
        k_eAverageDewards = 12,
        k_eAverageKills = 13,
        k_eMaxKills = 14,
        k_eAverageAssists = 15,
        k_eMaxAssists = 16,
        k_eAverageDeaths = 17,
        k_eMinDeaths = 18,
        k_eAverageCampsStacked = 19,
        k_eTotalLastHits = 20,
        k_eAverageLastHits = 21,
        k_eTotalDenies = 22,
        k_eAverageDenies = 23,
        k_eTotalGamesWithRoshanAdvantage = 24,
        k_ePercentGamesWithRoshanAdvantage = 25,
        k_eAverageStunDuration = 26,
        k_eTotalStunDuration = 27,
        k_eAverageTeleportsUsed = 28,
        k_eTotalTeleportsUsed = 29,
        k_eAverageHeroDamage = 30,
        k_eTotalHeroDamage = 31,
        k_eAverageHeroHealing = 32,
        k_eTotalHeroHealing = 33,
        k_eAverageTowerDamage = 34,
        k_eTotalTowerDamage = 35,
        k_eMaxLossStreak = 36,
        k_eAverageGameDuration = 37,
        k_eMaxGameDuration = 38,
        k_eMinGameDuration = 39,
        k_eAverageWinDuration = 40,
        k_eMaxWinDuration = 41,
        k_eMinWinDuration = 42,
        k_eAverageLossDuration = 43,
        k_eMaxLossDuration = 44,
        k_eMinLossDuration = 45,
        k_ePctGamesEnemyT1TakenFirst = 46,
        k_eMaxCampsStacked = 47,
        k_eMaxDewards = 48,
        k_eMaxRoshanKills = 49,
        k_eMaxBountyRunesTaken = 50,
        k_eMaxPowerRunesTaken = 51,
        k_eMaxDeaths = 52,
        k_eMaxLastHits = 53,
        k_eMaxDenies = 54,
        k_eRadiantWinRate = 55,
        k_eDireWinRate = 56,
        k_eRadiantGameCount = 57,
        k_eDireGameCount = 58,
        k_eMaxDamage = 59,
        k_eMaxHealing = 60,
        k_eMaxTowerDamage = 61,
        k_eAverageGPM = 62,
        k_eMaxGPM = 63,
        k_eAverageXPM = 64,
        k_eMaxXPM = 65,
    }

    [global::ProtoBuf.ProtoContract()]
    public enum CMsgBattleReport_HighlightCategory
    {
        k_eHighlightGeneral = 0,
        k_eHighlightHero = 1,
        k_eHighlightRole = 2,
    }

    [global::ProtoBuf.ProtoContract()]
    public enum CMsgBattleReport_Role
    {
        k_eUnknownRole = -1,
        k_eSafelane = 0,
        k_eMidlane = 1,
        k_eOfflane = 2,
        k_eSupport = 3,
        k_eHardSupport = 4,
    }

    [global::ProtoBuf.ProtoContract()]
    public enum CMsgBattleReport_CompareContext
    {
        k_eCompareContextInvalid = -1,
        k_eAbsoluteValue = 0,
        k_ePlayersOfSimilarRank = 1,
        k_eAllPlayers = 2,
        k_ePlayersPersonalHistory = 3,
    }

    [global::ProtoBuf.ProtoContract()]
    public enum CMsgBattleReport_HighlightTier
    {
        k_eHighlightTierLow = -1,
        k_eHighlightTierNone = 0,
        k_eHighlightTier1 = 1,
        k_eHighlightTier2 = 2,
        k_eHighlightTier3 = 3,
        k_eHighlightTierCustom = 4,
    }

    [global::ProtoBuf.ProtoContract()]
    public enum CMsgBattleReport_HighlightRarity
    {
        k_eHighlightCommon = 0,
        k_eHighlightUncommon = 1,
        k_eHighlightRare = 2,
    }

    [global::ProtoBuf.ProtoContract()]
    public enum CMsgBattleReport_EOutcome
    {
        k_eWin = 0,
        k_eLoss = 1,
    }

    [global::ProtoBuf.ProtoContract()]
    public enum CMsgBattleReport_ELaneOutcome
    {
        k_eUnknownLaneOutcome = -1,
        k_eWonLane = 0,
        k_eLostLane = 1,
        k_eEvenLane = 2,
    }

}

#pragma warning restore CS0612, CS0618, CS1591, CS3021, IDE0079, IDE1006, RCS1036, RCS1057, RCS1085, RCS1192
#endregion
