All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.dota2.proto.DotaUsermessages Maven / Gradle / Ivy

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

package com.dota2.proto;

public final class DotaUsermessages {
  private DotaUsermessages() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
  }
  /**
   * Protobuf enum {@code EDotaUserMessages}
   */
  public enum EDotaUserMessages
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * DOTA_UM_AddUnitToSelection = 64;
     */
    DOTA_UM_AddUnitToSelection(0, 64),
    /**
     * DOTA_UM_AIDebugLine = 65;
     */
    DOTA_UM_AIDebugLine(1, 65),
    /**
     * DOTA_UM_ChatEvent = 66;
     */
    DOTA_UM_ChatEvent(2, 66),
    /**
     * DOTA_UM_CombatHeroPositions = 67;
     */
    DOTA_UM_CombatHeroPositions(3, 67),
    /**
     * DOTA_UM_CombatLogData = 68;
     */
    DOTA_UM_CombatLogData(4, 68),
    /**
     * DOTA_UM_CombatLogShowDeath = 70;
     */
    DOTA_UM_CombatLogShowDeath(5, 70),
    /**
     * DOTA_UM_CreateLinearProjectile = 71;
     */
    DOTA_UM_CreateLinearProjectile(6, 71),
    /**
     * DOTA_UM_DestroyLinearProjectile = 72;
     */
    DOTA_UM_DestroyLinearProjectile(7, 72),
    /**
     * DOTA_UM_DodgeTrackingProjectiles = 73;
     */
    DOTA_UM_DodgeTrackingProjectiles(8, 73),
    /**
     * DOTA_UM_GlobalLightColor = 74;
     */
    DOTA_UM_GlobalLightColor(9, 74),
    /**
     * DOTA_UM_GlobalLightDirection = 75;
     */
    DOTA_UM_GlobalLightDirection(10, 75),
    /**
     * DOTA_UM_InvalidCommand = 76;
     */
    DOTA_UM_InvalidCommand(11, 76),
    /**
     * DOTA_UM_LocationPing = 77;
     */
    DOTA_UM_LocationPing(12, 77),
    /**
     * DOTA_UM_MapLine = 78;
     */
    DOTA_UM_MapLine(13, 78),
    /**
     * DOTA_UM_MiniKillCamInfo = 79;
     */
    DOTA_UM_MiniKillCamInfo(14, 79),
    /**
     * DOTA_UM_MinimapDebugPoint = 80;
     */
    DOTA_UM_MinimapDebugPoint(15, 80),
    /**
     * DOTA_UM_MinimapEvent = 81;
     */
    DOTA_UM_MinimapEvent(16, 81),
    /**
     * DOTA_UM_NevermoreRequiem = 82;
     */
    DOTA_UM_NevermoreRequiem(17, 82),
    /**
     * DOTA_UM_OverheadEvent = 83;
     */
    DOTA_UM_OverheadEvent(18, 83),
    /**
     * DOTA_UM_SetNextAutobuyItem = 84;
     */
    DOTA_UM_SetNextAutobuyItem(19, 84),
    /**
     * DOTA_UM_SharedCooldown = 85;
     */
    DOTA_UM_SharedCooldown(20, 85),
    /**
     * DOTA_UM_SpectatorPlayerClick = 86;
     */
    DOTA_UM_SpectatorPlayerClick(21, 86),
    /**
     * DOTA_UM_TutorialTipInfo = 87;
     */
    DOTA_UM_TutorialTipInfo(22, 87),
    /**
     * DOTA_UM_UnitEvent = 88;
     */
    DOTA_UM_UnitEvent(23, 88),
    /**
     * DOTA_UM_ParticleManager = 89;
     */
    DOTA_UM_ParticleManager(24, 89),
    /**
     * DOTA_UM_BotChat = 90;
     */
    DOTA_UM_BotChat(25, 90),
    /**
     * DOTA_UM_HudError = 91;
     */
    DOTA_UM_HudError(26, 91),
    /**
     * DOTA_UM_ItemPurchased = 92;
     */
    DOTA_UM_ItemPurchased(27, 92),
    /**
     * DOTA_UM_Ping = 93;
     */
    DOTA_UM_Ping(28, 93),
    /**
     * DOTA_UM_ItemFound = 94;
     */
    DOTA_UM_ItemFound(29, 94),
    /**
     * DOTA_UM_CharacterSpeakConcept = 95;
     */
    DOTA_UM_CharacterSpeakConcept(30, 95),
    /**
     * DOTA_UM_SwapVerify = 96;
     */
    DOTA_UM_SwapVerify(31, 96),
    /**
     * DOTA_UM_WorldLine = 97;
     */
    DOTA_UM_WorldLine(32, 97),
    /**
     * DOTA_UM_TournamentDrop = 98;
     */
    DOTA_UM_TournamentDrop(33, 98),
    /**
     * DOTA_UM_ItemAlert = 99;
     */
    DOTA_UM_ItemAlert(34, 99),
    /**
     * DOTA_UM_HalloweenDrops = 100;
     */
    DOTA_UM_HalloweenDrops(35, 100),
    /**
     * DOTA_UM_ChatWheel = 101;
     */
    DOTA_UM_ChatWheel(36, 101),
    /**
     * DOTA_UM_ReceivedXmasGift = 102;
     */
    DOTA_UM_ReceivedXmasGift(37, 102),
    /**
     * DOTA_UM_UpdateSharedContent = 103;
     */
    DOTA_UM_UpdateSharedContent(38, 103),
    /**
     * DOTA_UM_TutorialRequestExp = 104;
     */
    DOTA_UM_TutorialRequestExp(39, 104),
    /**
     * DOTA_UM_TutorialPingMinimap = 105;
     */
    DOTA_UM_TutorialPingMinimap(40, 105),
    /**
     * DOTA_UM_GamerulesStateChanged = 106;
     */
    DOTA_UM_GamerulesStateChanged(41, 106),
    /**
     * DOTA_UM_ShowSurvey = 107;
     */
    DOTA_UM_ShowSurvey(42, 107),
    /**
     * DOTA_UM_TutorialFade = 108;
     */
    DOTA_UM_TutorialFade(43, 108),
    /**
     * DOTA_UM_AddQuestLogEntry = 109;
     */
    DOTA_UM_AddQuestLogEntry(44, 109),
    /**
     * DOTA_UM_SendStatPopup = 110;
     */
    DOTA_UM_SendStatPopup(45, 110),
    /**
     * DOTA_UM_TutorialFinish = 111;
     */
    DOTA_UM_TutorialFinish(46, 111),
    /**
     * DOTA_UM_SendRoshanPopup = 112;
     */
    DOTA_UM_SendRoshanPopup(47, 112),
    /**
     * DOTA_UM_SendGenericToolTip = 113;
     */
    DOTA_UM_SendGenericToolTip(48, 113),
    /**
     * DOTA_UM_SendFinalGold = 114;
     */
    DOTA_UM_SendFinalGold(49, 114),
    /**
     * DOTA_UM_CustomMsg = 115;
     */
    DOTA_UM_CustomMsg(50, 115),
    /**
     * DOTA_UM_CoachHUDPing = 116;
     */
    DOTA_UM_CoachHUDPing(51, 116),
    /**
     * DOTA_UM_ClientLoadGridNav = 117;
     */
    DOTA_UM_ClientLoadGridNav(52, 117),
    /**
     * DOTA_UM_AbilityPing = 118;
     */
    DOTA_UM_AbilityPing(53, 118),
    /**
     * DOTA_UM_ShowGenericPopup = 119;
     */
    DOTA_UM_ShowGenericPopup(54, 119),
    /**
     * DOTA_UM_VoteStart = 120;
     */
    DOTA_UM_VoteStart(55, 120),
    /**
     * DOTA_UM_VoteUpdate = 121;
     */
    DOTA_UM_VoteUpdate(56, 121),
    /**
     * DOTA_UM_VoteEnd = 122;
     */
    DOTA_UM_VoteEnd(57, 122),
    /**
     * DOTA_UM_BoosterState = 123;
     */
    DOTA_UM_BoosterState(58, 123),
    /**
     * DOTA_UM_WillPurchaseAlert = 124;
     */
    DOTA_UM_WillPurchaseAlert(59, 124),
    /**
     * DOTA_UM_TutorialMinimapPosition = 125;
     */
    DOTA_UM_TutorialMinimapPosition(60, 125),
    /**
     * DOTA_UM_PlayerMMR = 126;
     */
    DOTA_UM_PlayerMMR(61, 126),
    /**
     * DOTA_UM_AbilitySteal = 127;
     */
    DOTA_UM_AbilitySteal(62, 127),
    /**
     * DOTA_UM_CourierKilledAlert = 128;
     */
    DOTA_UM_CourierKilledAlert(63, 128),
    /**
     * DOTA_UM_EnemyItemAlert = 129;
     */
    DOTA_UM_EnemyItemAlert(64, 129),
    /**
     * DOTA_UM_StatsMatchDetails = 130;
     */
    DOTA_UM_StatsMatchDetails(65, 130),
    /**
     * DOTA_UM_MiniTaunt = 131;
     */
    DOTA_UM_MiniTaunt(66, 131),
    /**
     * DOTA_UM_BuyBackStateAlert = 132;
     */
    DOTA_UM_BuyBackStateAlert(67, 132),
    /**
     * DOTA_UM_QuickBuyAlert = 133;
     */
    DOTA_UM_QuickBuyAlert(68, 133),
    /**
     * DOTA_UM_StatsHeroDetails = 134;
     */
    DOTA_UM_StatsHeroDetails(69, 134),
    ;

    /**
     * DOTA_UM_AddUnitToSelection = 64;
     */
    public static final int DOTA_UM_AddUnitToSelection_VALUE = 64;
    /**
     * DOTA_UM_AIDebugLine = 65;
     */
    public static final int DOTA_UM_AIDebugLine_VALUE = 65;
    /**
     * DOTA_UM_ChatEvent = 66;
     */
    public static final int DOTA_UM_ChatEvent_VALUE = 66;
    /**
     * DOTA_UM_CombatHeroPositions = 67;
     */
    public static final int DOTA_UM_CombatHeroPositions_VALUE = 67;
    /**
     * DOTA_UM_CombatLogData = 68;
     */
    public static final int DOTA_UM_CombatLogData_VALUE = 68;
    /**
     * DOTA_UM_CombatLogShowDeath = 70;
     */
    public static final int DOTA_UM_CombatLogShowDeath_VALUE = 70;
    /**
     * DOTA_UM_CreateLinearProjectile = 71;
     */
    public static final int DOTA_UM_CreateLinearProjectile_VALUE = 71;
    /**
     * DOTA_UM_DestroyLinearProjectile = 72;
     */
    public static final int DOTA_UM_DestroyLinearProjectile_VALUE = 72;
    /**
     * DOTA_UM_DodgeTrackingProjectiles = 73;
     */
    public static final int DOTA_UM_DodgeTrackingProjectiles_VALUE = 73;
    /**
     * DOTA_UM_GlobalLightColor = 74;
     */
    public static final int DOTA_UM_GlobalLightColor_VALUE = 74;
    /**
     * DOTA_UM_GlobalLightDirection = 75;
     */
    public static final int DOTA_UM_GlobalLightDirection_VALUE = 75;
    /**
     * DOTA_UM_InvalidCommand = 76;
     */
    public static final int DOTA_UM_InvalidCommand_VALUE = 76;
    /**
     * DOTA_UM_LocationPing = 77;
     */
    public static final int DOTA_UM_LocationPing_VALUE = 77;
    /**
     * DOTA_UM_MapLine = 78;
     */
    public static final int DOTA_UM_MapLine_VALUE = 78;
    /**
     * DOTA_UM_MiniKillCamInfo = 79;
     */
    public static final int DOTA_UM_MiniKillCamInfo_VALUE = 79;
    /**
     * DOTA_UM_MinimapDebugPoint = 80;
     */
    public static final int DOTA_UM_MinimapDebugPoint_VALUE = 80;
    /**
     * DOTA_UM_MinimapEvent = 81;
     */
    public static final int DOTA_UM_MinimapEvent_VALUE = 81;
    /**
     * DOTA_UM_NevermoreRequiem = 82;
     */
    public static final int DOTA_UM_NevermoreRequiem_VALUE = 82;
    /**
     * DOTA_UM_OverheadEvent = 83;
     */
    public static final int DOTA_UM_OverheadEvent_VALUE = 83;
    /**
     * DOTA_UM_SetNextAutobuyItem = 84;
     */
    public static final int DOTA_UM_SetNextAutobuyItem_VALUE = 84;
    /**
     * DOTA_UM_SharedCooldown = 85;
     */
    public static final int DOTA_UM_SharedCooldown_VALUE = 85;
    /**
     * DOTA_UM_SpectatorPlayerClick = 86;
     */
    public static final int DOTA_UM_SpectatorPlayerClick_VALUE = 86;
    /**
     * DOTA_UM_TutorialTipInfo = 87;
     */
    public static final int DOTA_UM_TutorialTipInfo_VALUE = 87;
    /**
     * DOTA_UM_UnitEvent = 88;
     */
    public static final int DOTA_UM_UnitEvent_VALUE = 88;
    /**
     * DOTA_UM_ParticleManager = 89;
     */
    public static final int DOTA_UM_ParticleManager_VALUE = 89;
    /**
     * DOTA_UM_BotChat = 90;
     */
    public static final int DOTA_UM_BotChat_VALUE = 90;
    /**
     * DOTA_UM_HudError = 91;
     */
    public static final int DOTA_UM_HudError_VALUE = 91;
    /**
     * DOTA_UM_ItemPurchased = 92;
     */
    public static final int DOTA_UM_ItemPurchased_VALUE = 92;
    /**
     * DOTA_UM_Ping = 93;
     */
    public static final int DOTA_UM_Ping_VALUE = 93;
    /**
     * DOTA_UM_ItemFound = 94;
     */
    public static final int DOTA_UM_ItemFound_VALUE = 94;
    /**
     * DOTA_UM_CharacterSpeakConcept = 95;
     */
    public static final int DOTA_UM_CharacterSpeakConcept_VALUE = 95;
    /**
     * DOTA_UM_SwapVerify = 96;
     */
    public static final int DOTA_UM_SwapVerify_VALUE = 96;
    /**
     * DOTA_UM_WorldLine = 97;
     */
    public static final int DOTA_UM_WorldLine_VALUE = 97;
    /**
     * DOTA_UM_TournamentDrop = 98;
     */
    public static final int DOTA_UM_TournamentDrop_VALUE = 98;
    /**
     * DOTA_UM_ItemAlert = 99;
     */
    public static final int DOTA_UM_ItemAlert_VALUE = 99;
    /**
     * DOTA_UM_HalloweenDrops = 100;
     */
    public static final int DOTA_UM_HalloweenDrops_VALUE = 100;
    /**
     * DOTA_UM_ChatWheel = 101;
     */
    public static final int DOTA_UM_ChatWheel_VALUE = 101;
    /**
     * DOTA_UM_ReceivedXmasGift = 102;
     */
    public static final int DOTA_UM_ReceivedXmasGift_VALUE = 102;
    /**
     * DOTA_UM_UpdateSharedContent = 103;
     */
    public static final int DOTA_UM_UpdateSharedContent_VALUE = 103;
    /**
     * DOTA_UM_TutorialRequestExp = 104;
     */
    public static final int DOTA_UM_TutorialRequestExp_VALUE = 104;
    /**
     * DOTA_UM_TutorialPingMinimap = 105;
     */
    public static final int DOTA_UM_TutorialPingMinimap_VALUE = 105;
    /**
     * DOTA_UM_GamerulesStateChanged = 106;
     */
    public static final int DOTA_UM_GamerulesStateChanged_VALUE = 106;
    /**
     * DOTA_UM_ShowSurvey = 107;
     */
    public static final int DOTA_UM_ShowSurvey_VALUE = 107;
    /**
     * DOTA_UM_TutorialFade = 108;
     */
    public static final int DOTA_UM_TutorialFade_VALUE = 108;
    /**
     * DOTA_UM_AddQuestLogEntry = 109;
     */
    public static final int DOTA_UM_AddQuestLogEntry_VALUE = 109;
    /**
     * DOTA_UM_SendStatPopup = 110;
     */
    public static final int DOTA_UM_SendStatPopup_VALUE = 110;
    /**
     * DOTA_UM_TutorialFinish = 111;
     */
    public static final int DOTA_UM_TutorialFinish_VALUE = 111;
    /**
     * DOTA_UM_SendRoshanPopup = 112;
     */
    public static final int DOTA_UM_SendRoshanPopup_VALUE = 112;
    /**
     * DOTA_UM_SendGenericToolTip = 113;
     */
    public static final int DOTA_UM_SendGenericToolTip_VALUE = 113;
    /**
     * DOTA_UM_SendFinalGold = 114;
     */
    public static final int DOTA_UM_SendFinalGold_VALUE = 114;
    /**
     * DOTA_UM_CustomMsg = 115;
     */
    public static final int DOTA_UM_CustomMsg_VALUE = 115;
    /**
     * DOTA_UM_CoachHUDPing = 116;
     */
    public static final int DOTA_UM_CoachHUDPing_VALUE = 116;
    /**
     * DOTA_UM_ClientLoadGridNav = 117;
     */
    public static final int DOTA_UM_ClientLoadGridNav_VALUE = 117;
    /**
     * DOTA_UM_AbilityPing = 118;
     */
    public static final int DOTA_UM_AbilityPing_VALUE = 118;
    /**
     * DOTA_UM_ShowGenericPopup = 119;
     */
    public static final int DOTA_UM_ShowGenericPopup_VALUE = 119;
    /**
     * DOTA_UM_VoteStart = 120;
     */
    public static final int DOTA_UM_VoteStart_VALUE = 120;
    /**
     * DOTA_UM_VoteUpdate = 121;
     */
    public static final int DOTA_UM_VoteUpdate_VALUE = 121;
    /**
     * DOTA_UM_VoteEnd = 122;
     */
    public static final int DOTA_UM_VoteEnd_VALUE = 122;
    /**
     * DOTA_UM_BoosterState = 123;
     */
    public static final int DOTA_UM_BoosterState_VALUE = 123;
    /**
     * DOTA_UM_WillPurchaseAlert = 124;
     */
    public static final int DOTA_UM_WillPurchaseAlert_VALUE = 124;
    /**
     * DOTA_UM_TutorialMinimapPosition = 125;
     */
    public static final int DOTA_UM_TutorialMinimapPosition_VALUE = 125;
    /**
     * DOTA_UM_PlayerMMR = 126;
     */
    public static final int DOTA_UM_PlayerMMR_VALUE = 126;
    /**
     * DOTA_UM_AbilitySteal = 127;
     */
    public static final int DOTA_UM_AbilitySteal_VALUE = 127;
    /**
     * DOTA_UM_CourierKilledAlert = 128;
     */
    public static final int DOTA_UM_CourierKilledAlert_VALUE = 128;
    /**
     * DOTA_UM_EnemyItemAlert = 129;
     */
    public static final int DOTA_UM_EnemyItemAlert_VALUE = 129;
    /**
     * DOTA_UM_StatsMatchDetails = 130;
     */
    public static final int DOTA_UM_StatsMatchDetails_VALUE = 130;
    /**
     * DOTA_UM_MiniTaunt = 131;
     */
    public static final int DOTA_UM_MiniTaunt_VALUE = 131;
    /**
     * DOTA_UM_BuyBackStateAlert = 132;
     */
    public static final int DOTA_UM_BuyBackStateAlert_VALUE = 132;
    /**
     * DOTA_UM_QuickBuyAlert = 133;
     */
    public static final int DOTA_UM_QuickBuyAlert_VALUE = 133;
    /**
     * DOTA_UM_StatsHeroDetails = 134;
     */
    public static final int DOTA_UM_StatsHeroDetails_VALUE = 134;


    public final int getNumber() { return value; }

    public static EDotaUserMessages valueOf(int value) {
      switch (value) {
        case 64: return DOTA_UM_AddUnitToSelection;
        case 65: return DOTA_UM_AIDebugLine;
        case 66: return DOTA_UM_ChatEvent;
        case 67: return DOTA_UM_CombatHeroPositions;
        case 68: return DOTA_UM_CombatLogData;
        case 70: return DOTA_UM_CombatLogShowDeath;
        case 71: return DOTA_UM_CreateLinearProjectile;
        case 72: return DOTA_UM_DestroyLinearProjectile;
        case 73: return DOTA_UM_DodgeTrackingProjectiles;
        case 74: return DOTA_UM_GlobalLightColor;
        case 75: return DOTA_UM_GlobalLightDirection;
        case 76: return DOTA_UM_InvalidCommand;
        case 77: return DOTA_UM_LocationPing;
        case 78: return DOTA_UM_MapLine;
        case 79: return DOTA_UM_MiniKillCamInfo;
        case 80: return DOTA_UM_MinimapDebugPoint;
        case 81: return DOTA_UM_MinimapEvent;
        case 82: return DOTA_UM_NevermoreRequiem;
        case 83: return DOTA_UM_OverheadEvent;
        case 84: return DOTA_UM_SetNextAutobuyItem;
        case 85: return DOTA_UM_SharedCooldown;
        case 86: return DOTA_UM_SpectatorPlayerClick;
        case 87: return DOTA_UM_TutorialTipInfo;
        case 88: return DOTA_UM_UnitEvent;
        case 89: return DOTA_UM_ParticleManager;
        case 90: return DOTA_UM_BotChat;
        case 91: return DOTA_UM_HudError;
        case 92: return DOTA_UM_ItemPurchased;
        case 93: return DOTA_UM_Ping;
        case 94: return DOTA_UM_ItemFound;
        case 95: return DOTA_UM_CharacterSpeakConcept;
        case 96: return DOTA_UM_SwapVerify;
        case 97: return DOTA_UM_WorldLine;
        case 98: return DOTA_UM_TournamentDrop;
        case 99: return DOTA_UM_ItemAlert;
        case 100: return DOTA_UM_HalloweenDrops;
        case 101: return DOTA_UM_ChatWheel;
        case 102: return DOTA_UM_ReceivedXmasGift;
        case 103: return DOTA_UM_UpdateSharedContent;
        case 104: return DOTA_UM_TutorialRequestExp;
        case 105: return DOTA_UM_TutorialPingMinimap;
        case 106: return DOTA_UM_GamerulesStateChanged;
        case 107: return DOTA_UM_ShowSurvey;
        case 108: return DOTA_UM_TutorialFade;
        case 109: return DOTA_UM_AddQuestLogEntry;
        case 110: return DOTA_UM_SendStatPopup;
        case 111: return DOTA_UM_TutorialFinish;
        case 112: return DOTA_UM_SendRoshanPopup;
        case 113: return DOTA_UM_SendGenericToolTip;
        case 114: return DOTA_UM_SendFinalGold;
        case 115: return DOTA_UM_CustomMsg;
        case 116: return DOTA_UM_CoachHUDPing;
        case 117: return DOTA_UM_ClientLoadGridNav;
        case 118: return DOTA_UM_AbilityPing;
        case 119: return DOTA_UM_ShowGenericPopup;
        case 120: return DOTA_UM_VoteStart;
        case 121: return DOTA_UM_VoteUpdate;
        case 122: return DOTA_UM_VoteEnd;
        case 123: return DOTA_UM_BoosterState;
        case 124: return DOTA_UM_WillPurchaseAlert;
        case 125: return DOTA_UM_TutorialMinimapPosition;
        case 126: return DOTA_UM_PlayerMMR;
        case 127: return DOTA_UM_AbilitySteal;
        case 128: return DOTA_UM_CourierKilledAlert;
        case 129: return DOTA_UM_EnemyItemAlert;
        case 130: return DOTA_UM_StatsMatchDetails;
        case 131: return DOTA_UM_MiniTaunt;
        case 132: return DOTA_UM_BuyBackStateAlert;
        case 133: return DOTA_UM_QuickBuyAlert;
        case 134: return DOTA_UM_StatsHeroDetails;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public EDotaUserMessages findValueByNumber(int number) {
              return EDotaUserMessages.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.getDescriptor().getEnumTypes().get(0);
    }

    private static final EDotaUserMessages[] VALUES = values();

    public static EDotaUserMessages valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private EDotaUserMessages(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:EDotaUserMessages)
  }

  /**
   * Protobuf enum {@code DOTA_CHAT_MESSAGE}
   */
  public enum DOTA_CHAT_MESSAGE
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * CHAT_MESSAGE_INVALID = -1;
     */
    CHAT_MESSAGE_INVALID(0, -1),
    /**
     * CHAT_MESSAGE_HERO_KILL = 0;
     */
    CHAT_MESSAGE_HERO_KILL(1, 0),
    /**
     * CHAT_MESSAGE_HERO_DENY = 1;
     */
    CHAT_MESSAGE_HERO_DENY(2, 1),
    /**
     * CHAT_MESSAGE_BARRACKS_KILL = 2;
     */
    CHAT_MESSAGE_BARRACKS_KILL(3, 2),
    /**
     * CHAT_MESSAGE_TOWER_KILL = 3;
     */
    CHAT_MESSAGE_TOWER_KILL(4, 3),
    /**
     * CHAT_MESSAGE_TOWER_DENY = 4;
     */
    CHAT_MESSAGE_TOWER_DENY(5, 4),
    /**
     * CHAT_MESSAGE_FIRSTBLOOD = 5;
     */
    CHAT_MESSAGE_FIRSTBLOOD(6, 5),
    /**
     * CHAT_MESSAGE_STREAK_KILL = 6;
     */
    CHAT_MESSAGE_STREAK_KILL(7, 6),
    /**
     * CHAT_MESSAGE_BUYBACK = 7;
     */
    CHAT_MESSAGE_BUYBACK(8, 7),
    /**
     * CHAT_MESSAGE_AEGIS = 8;
     */
    CHAT_MESSAGE_AEGIS(9, 8),
    /**
     * CHAT_MESSAGE_ROSHAN_KILL = 9;
     */
    CHAT_MESSAGE_ROSHAN_KILL(10, 9),
    /**
     * CHAT_MESSAGE_COURIER_LOST = 10;
     */
    CHAT_MESSAGE_COURIER_LOST(11, 10),
    /**
     * CHAT_MESSAGE_COURIER_RESPAWNED = 11;
     */
    CHAT_MESSAGE_COURIER_RESPAWNED(12, 11),
    /**
     * CHAT_MESSAGE_GLYPH_USED = 12;
     */
    CHAT_MESSAGE_GLYPH_USED(13, 12),
    /**
     * CHAT_MESSAGE_ITEM_PURCHASE = 13;
     */
    CHAT_MESSAGE_ITEM_PURCHASE(14, 13),
    /**
     * CHAT_MESSAGE_CONNECT = 14;
     */
    CHAT_MESSAGE_CONNECT(15, 14),
    /**
     * CHAT_MESSAGE_DISCONNECT = 15;
     */
    CHAT_MESSAGE_DISCONNECT(16, 15),
    /**
     * CHAT_MESSAGE_DISCONNECT_WAIT_FOR_RECONNECT = 16;
     */
    CHAT_MESSAGE_DISCONNECT_WAIT_FOR_RECONNECT(17, 16),
    /**
     * CHAT_MESSAGE_DISCONNECT_TIME_REMAINING = 17;
     */
    CHAT_MESSAGE_DISCONNECT_TIME_REMAINING(18, 17),
    /**
     * CHAT_MESSAGE_DISCONNECT_TIME_REMAINING_PLURAL = 18;
     */
    CHAT_MESSAGE_DISCONNECT_TIME_REMAINING_PLURAL(19, 18),
    /**
     * CHAT_MESSAGE_RECONNECT = 19;
     */
    CHAT_MESSAGE_RECONNECT(20, 19),
    /**
     * CHAT_MESSAGE_PLAYER_LEFT = 20;
     */
    CHAT_MESSAGE_PLAYER_LEFT(21, 20),
    /**
     * CHAT_MESSAGE_SAFE_TO_LEAVE = 21;
     */
    CHAT_MESSAGE_SAFE_TO_LEAVE(22, 21),
    /**
     * CHAT_MESSAGE_RUNE_PICKUP = 22;
     */
    CHAT_MESSAGE_RUNE_PICKUP(23, 22),
    /**
     * CHAT_MESSAGE_RUNE_BOTTLE = 23;
     */
    CHAT_MESSAGE_RUNE_BOTTLE(24, 23),
    /**
     * CHAT_MESSAGE_INTHEBAG = 24;
     */
    CHAT_MESSAGE_INTHEBAG(25, 24),
    /**
     * CHAT_MESSAGE_SECRETSHOP = 25;
     */
    CHAT_MESSAGE_SECRETSHOP(26, 25),
    /**
     * CHAT_MESSAGE_ITEM_AUTOPURCHASED = 26;
     */
    CHAT_MESSAGE_ITEM_AUTOPURCHASED(27, 26),
    /**
     * CHAT_MESSAGE_ITEMS_COMBINED = 27;
     */
    CHAT_MESSAGE_ITEMS_COMBINED(28, 27),
    /**
     * CHAT_MESSAGE_SUPER_CREEPS = 28;
     */
    CHAT_MESSAGE_SUPER_CREEPS(29, 28),
    /**
     * CHAT_MESSAGE_CANT_USE_ACTION_ITEM = 29;
     */
    CHAT_MESSAGE_CANT_USE_ACTION_ITEM(30, 29),
    /**
     * CHAT_MESSAGE_CHARGES_EXHAUSTED = 30;
     */
    CHAT_MESSAGE_CHARGES_EXHAUSTED(31, 30),
    /**
     * CHAT_MESSAGE_CANTPAUSE = 31;
     */
    CHAT_MESSAGE_CANTPAUSE(32, 31),
    /**
     * CHAT_MESSAGE_NOPAUSESLEFT = 32;
     */
    CHAT_MESSAGE_NOPAUSESLEFT(33, 32),
    /**
     * CHAT_MESSAGE_CANTPAUSEYET = 33;
     */
    CHAT_MESSAGE_CANTPAUSEYET(34, 33),
    /**
     * CHAT_MESSAGE_PAUSED = 34;
     */
    CHAT_MESSAGE_PAUSED(35, 34),
    /**
     * CHAT_MESSAGE_UNPAUSE_COUNTDOWN = 35;
     */
    CHAT_MESSAGE_UNPAUSE_COUNTDOWN(36, 35),
    /**
     * CHAT_MESSAGE_UNPAUSED = 36;
     */
    CHAT_MESSAGE_UNPAUSED(37, 36),
    /**
     * CHAT_MESSAGE_AUTO_UNPAUSED = 37;
     */
    CHAT_MESSAGE_AUTO_UNPAUSED(38, 37),
    /**
     * CHAT_MESSAGE_YOUPAUSED = 38;
     */
    CHAT_MESSAGE_YOUPAUSED(39, 38),
    /**
     * CHAT_MESSAGE_CANTUNPAUSETEAM = 39;
     */
    CHAT_MESSAGE_CANTUNPAUSETEAM(40, 39),
    /**
     * CHAT_MESSAGE_VOICE_TEXT_BANNED = 41;
     */
    CHAT_MESSAGE_VOICE_TEXT_BANNED(41, 41),
    /**
     * CHAT_MESSAGE_SPECTATORS_WATCHING_THIS_GAME = 42;
     */
    CHAT_MESSAGE_SPECTATORS_WATCHING_THIS_GAME(42, 42),
    /**
     * CHAT_MESSAGE_REPORT_REMINDER = 43;
     */
    CHAT_MESSAGE_REPORT_REMINDER(43, 43),
    /**
     * CHAT_MESSAGE_ECON_ITEM = 44;
     */
    CHAT_MESSAGE_ECON_ITEM(44, 44),
    /**
     * CHAT_MESSAGE_TAUNT = 45;
     */
    CHAT_MESSAGE_TAUNT(45, 45),
    /**
     * CHAT_MESSAGE_RANDOM = 46;
     */
    CHAT_MESSAGE_RANDOM(46, 46),
    /**
     * CHAT_MESSAGE_RD_TURN = 47;
     */
    CHAT_MESSAGE_RD_TURN(47, 47),
    /**
     * CHAT_MESSAGE_DROP_RATE_BONUS = 49;
     */
    CHAT_MESSAGE_DROP_RATE_BONUS(48, 49),
    /**
     * CHAT_MESSAGE_NO_BATTLE_POINTS = 50;
     */
    CHAT_MESSAGE_NO_BATTLE_POINTS(49, 50),
    /**
     * CHAT_MESSAGE_DENIED_AEGIS = 51;
     */
    CHAT_MESSAGE_DENIED_AEGIS(50, 51),
    /**
     * CHAT_MESSAGE_INFORMATIONAL = 52;
     */
    CHAT_MESSAGE_INFORMATIONAL(51, 52),
    /**
     * CHAT_MESSAGE_AEGIS_STOLEN = 53;
     */
    CHAT_MESSAGE_AEGIS_STOLEN(52, 53),
    /**
     * CHAT_MESSAGE_ROSHAN_CANDY = 54;
     */
    CHAT_MESSAGE_ROSHAN_CANDY(53, 54),
    /**
     * CHAT_MESSAGE_ITEM_GIFTED = 55;
     */
    CHAT_MESSAGE_ITEM_GIFTED(54, 55),
    /**
     * CHAT_MESSAGE_HERO_KILL_WITH_GREEVIL = 56;
     */
    CHAT_MESSAGE_HERO_KILL_WITH_GREEVIL(55, 56),
    /**
     * CHAT_MESSAGE_HOLDOUT_TOWER_DESTROYED = 57;
     */
    CHAT_MESSAGE_HOLDOUT_TOWER_DESTROYED(56, 57),
    /**
     * CHAT_MESSAGE_HOLDOUT_WALL_DESTROYED = 58;
     */
    CHAT_MESSAGE_HOLDOUT_WALL_DESTROYED(57, 58),
    /**
     * CHAT_MESSAGE_HOLDOUT_WALL_FINISHED = 59;
     */
    CHAT_MESSAGE_HOLDOUT_WALL_FINISHED(58, 59),
    /**
     * CHAT_MESSAGE_PLAYER_LEFT_LIMITED_HERO = 62;
     */
    CHAT_MESSAGE_PLAYER_LEFT_LIMITED_HERO(59, 62),
    /**
     * CHAT_MESSAGE_ABANDON_LIMITED_HERO_EXPLANATION = 63;
     */
    CHAT_MESSAGE_ABANDON_LIMITED_HERO_EXPLANATION(60, 63),
    /**
     * CHAT_MESSAGE_DISCONNECT_LIMITED_HERO = 64;
     */
    CHAT_MESSAGE_DISCONNECT_LIMITED_HERO(61, 64),
    /**
     * CHAT_MESSAGE_LOW_PRIORITY_COMPLETED_EXPLANATION = 65;
     */
    CHAT_MESSAGE_LOW_PRIORITY_COMPLETED_EXPLANATION(62, 65),
    /**
     * CHAT_MESSAGE_RECRUITMENT_DROP_RATE_BONUS = 66;
     */
    CHAT_MESSAGE_RECRUITMENT_DROP_RATE_BONUS(63, 66),
    /**
     * CHAT_MESSAGE_FROSTIVUS_SHINING_BOOSTER_ACTIVE = 67;
     */
    CHAT_MESSAGE_FROSTIVUS_SHINING_BOOSTER_ACTIVE(64, 67),
    /**
     * CHAT_MESSAGE_PLAYER_LEFT_AFK = 73;
     */
    CHAT_MESSAGE_PLAYER_LEFT_AFK(65, 73),
    /**
     * CHAT_MESSAGE_PLAYER_LEFT_DISCONNECTED_TOO_LONG = 74;
     */
    CHAT_MESSAGE_PLAYER_LEFT_DISCONNECTED_TOO_LONG(66, 74),
    /**
     * CHAT_MESSAGE_PLAYER_ABANDONED = 75;
     */
    CHAT_MESSAGE_PLAYER_ABANDONED(67, 75),
    /**
     * CHAT_MESSAGE_PLAYER_ABANDONED_AFK = 76;
     */
    CHAT_MESSAGE_PLAYER_ABANDONED_AFK(68, 76),
    /**
     * CHAT_MESSAGE_PLAYER_ABANDONED_DISCONNECTED_TOO_LONG = 77;
     */
    CHAT_MESSAGE_PLAYER_ABANDONED_DISCONNECTED_TOO_LONG(69, 77),
    /**
     * CHAT_MESSAGE_WILL_NOT_BE_SCORED = 78;
     */
    CHAT_MESSAGE_WILL_NOT_BE_SCORED(70, 78),
    /**
     * CHAT_MESSAGE_WILL_NOT_BE_SCORED_RANKED = 79;
     */
    CHAT_MESSAGE_WILL_NOT_BE_SCORED_RANKED(71, 79),
    /**
     * CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK = 80;
     */
    CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK(72, 80),
    /**
     * CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK_RANKED = 81;
     */
    CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK_RANKED(73, 81),
    /**
     * CHAT_MESSAGE_CAN_QUIT_WITHOUT_ABANDON = 82;
     */
    CHAT_MESSAGE_CAN_QUIT_WITHOUT_ABANDON(74, 82),
    /**
     * CHAT_MESSAGE_RANKED_GAME_STILL_SCORED_LEAVERS_GET_LOSS = 83;
     */
    CHAT_MESSAGE_RANKED_GAME_STILL_SCORED_LEAVERS_GET_LOSS(75, 83),
    /**
     * CHAT_MESSAGE_ABANDON_RANKED_BEFORE_FIRST_BLOOD_PARTY = 84;
     */
    CHAT_MESSAGE_ABANDON_RANKED_BEFORE_FIRST_BLOOD_PARTY(76, 84),
    /**
     * CHAT_MESSAGE_COMPENDIUM_LEVEL = 85;
     */
    CHAT_MESSAGE_COMPENDIUM_LEVEL(77, 85),
    /**
     * CHAT_MESSAGE_VICTORY_PREDICTION_STREAK = 86;
     */
    CHAT_MESSAGE_VICTORY_PREDICTION_STREAK(78, 86),
    ;

    /**
     * CHAT_MESSAGE_INVALID = -1;
     */
    public static final int CHAT_MESSAGE_INVALID_VALUE = -1;
    /**
     * CHAT_MESSAGE_HERO_KILL = 0;
     */
    public static final int CHAT_MESSAGE_HERO_KILL_VALUE = 0;
    /**
     * CHAT_MESSAGE_HERO_DENY = 1;
     */
    public static final int CHAT_MESSAGE_HERO_DENY_VALUE = 1;
    /**
     * CHAT_MESSAGE_BARRACKS_KILL = 2;
     */
    public static final int CHAT_MESSAGE_BARRACKS_KILL_VALUE = 2;
    /**
     * CHAT_MESSAGE_TOWER_KILL = 3;
     */
    public static final int CHAT_MESSAGE_TOWER_KILL_VALUE = 3;
    /**
     * CHAT_MESSAGE_TOWER_DENY = 4;
     */
    public static final int CHAT_MESSAGE_TOWER_DENY_VALUE = 4;
    /**
     * CHAT_MESSAGE_FIRSTBLOOD = 5;
     */
    public static final int CHAT_MESSAGE_FIRSTBLOOD_VALUE = 5;
    /**
     * CHAT_MESSAGE_STREAK_KILL = 6;
     */
    public static final int CHAT_MESSAGE_STREAK_KILL_VALUE = 6;
    /**
     * CHAT_MESSAGE_BUYBACK = 7;
     */
    public static final int CHAT_MESSAGE_BUYBACK_VALUE = 7;
    /**
     * CHAT_MESSAGE_AEGIS = 8;
     */
    public static final int CHAT_MESSAGE_AEGIS_VALUE = 8;
    /**
     * CHAT_MESSAGE_ROSHAN_KILL = 9;
     */
    public static final int CHAT_MESSAGE_ROSHAN_KILL_VALUE = 9;
    /**
     * CHAT_MESSAGE_COURIER_LOST = 10;
     */
    public static final int CHAT_MESSAGE_COURIER_LOST_VALUE = 10;
    /**
     * CHAT_MESSAGE_COURIER_RESPAWNED = 11;
     */
    public static final int CHAT_MESSAGE_COURIER_RESPAWNED_VALUE = 11;
    /**
     * CHAT_MESSAGE_GLYPH_USED = 12;
     */
    public static final int CHAT_MESSAGE_GLYPH_USED_VALUE = 12;
    /**
     * CHAT_MESSAGE_ITEM_PURCHASE = 13;
     */
    public static final int CHAT_MESSAGE_ITEM_PURCHASE_VALUE = 13;
    /**
     * CHAT_MESSAGE_CONNECT = 14;
     */
    public static final int CHAT_MESSAGE_CONNECT_VALUE = 14;
    /**
     * CHAT_MESSAGE_DISCONNECT = 15;
     */
    public static final int CHAT_MESSAGE_DISCONNECT_VALUE = 15;
    /**
     * CHAT_MESSAGE_DISCONNECT_WAIT_FOR_RECONNECT = 16;
     */
    public static final int CHAT_MESSAGE_DISCONNECT_WAIT_FOR_RECONNECT_VALUE = 16;
    /**
     * CHAT_MESSAGE_DISCONNECT_TIME_REMAINING = 17;
     */
    public static final int CHAT_MESSAGE_DISCONNECT_TIME_REMAINING_VALUE = 17;
    /**
     * CHAT_MESSAGE_DISCONNECT_TIME_REMAINING_PLURAL = 18;
     */
    public static final int CHAT_MESSAGE_DISCONNECT_TIME_REMAINING_PLURAL_VALUE = 18;
    /**
     * CHAT_MESSAGE_RECONNECT = 19;
     */
    public static final int CHAT_MESSAGE_RECONNECT_VALUE = 19;
    /**
     * CHAT_MESSAGE_PLAYER_LEFT = 20;
     */
    public static final int CHAT_MESSAGE_PLAYER_LEFT_VALUE = 20;
    /**
     * CHAT_MESSAGE_SAFE_TO_LEAVE = 21;
     */
    public static final int CHAT_MESSAGE_SAFE_TO_LEAVE_VALUE = 21;
    /**
     * CHAT_MESSAGE_RUNE_PICKUP = 22;
     */
    public static final int CHAT_MESSAGE_RUNE_PICKUP_VALUE = 22;
    /**
     * CHAT_MESSAGE_RUNE_BOTTLE = 23;
     */
    public static final int CHAT_MESSAGE_RUNE_BOTTLE_VALUE = 23;
    /**
     * CHAT_MESSAGE_INTHEBAG = 24;
     */
    public static final int CHAT_MESSAGE_INTHEBAG_VALUE = 24;
    /**
     * CHAT_MESSAGE_SECRETSHOP = 25;
     */
    public static final int CHAT_MESSAGE_SECRETSHOP_VALUE = 25;
    /**
     * CHAT_MESSAGE_ITEM_AUTOPURCHASED = 26;
     */
    public static final int CHAT_MESSAGE_ITEM_AUTOPURCHASED_VALUE = 26;
    /**
     * CHAT_MESSAGE_ITEMS_COMBINED = 27;
     */
    public static final int CHAT_MESSAGE_ITEMS_COMBINED_VALUE = 27;
    /**
     * CHAT_MESSAGE_SUPER_CREEPS = 28;
     */
    public static final int CHAT_MESSAGE_SUPER_CREEPS_VALUE = 28;
    /**
     * CHAT_MESSAGE_CANT_USE_ACTION_ITEM = 29;
     */
    public static final int CHAT_MESSAGE_CANT_USE_ACTION_ITEM_VALUE = 29;
    /**
     * CHAT_MESSAGE_CHARGES_EXHAUSTED = 30;
     */
    public static final int CHAT_MESSAGE_CHARGES_EXHAUSTED_VALUE = 30;
    /**
     * CHAT_MESSAGE_CANTPAUSE = 31;
     */
    public static final int CHAT_MESSAGE_CANTPAUSE_VALUE = 31;
    /**
     * CHAT_MESSAGE_NOPAUSESLEFT = 32;
     */
    public static final int CHAT_MESSAGE_NOPAUSESLEFT_VALUE = 32;
    /**
     * CHAT_MESSAGE_CANTPAUSEYET = 33;
     */
    public static final int CHAT_MESSAGE_CANTPAUSEYET_VALUE = 33;
    /**
     * CHAT_MESSAGE_PAUSED = 34;
     */
    public static final int CHAT_MESSAGE_PAUSED_VALUE = 34;
    /**
     * CHAT_MESSAGE_UNPAUSE_COUNTDOWN = 35;
     */
    public static final int CHAT_MESSAGE_UNPAUSE_COUNTDOWN_VALUE = 35;
    /**
     * CHAT_MESSAGE_UNPAUSED = 36;
     */
    public static final int CHAT_MESSAGE_UNPAUSED_VALUE = 36;
    /**
     * CHAT_MESSAGE_AUTO_UNPAUSED = 37;
     */
    public static final int CHAT_MESSAGE_AUTO_UNPAUSED_VALUE = 37;
    /**
     * CHAT_MESSAGE_YOUPAUSED = 38;
     */
    public static final int CHAT_MESSAGE_YOUPAUSED_VALUE = 38;
    /**
     * CHAT_MESSAGE_CANTUNPAUSETEAM = 39;
     */
    public static final int CHAT_MESSAGE_CANTUNPAUSETEAM_VALUE = 39;
    /**
     * CHAT_MESSAGE_VOICE_TEXT_BANNED = 41;
     */
    public static final int CHAT_MESSAGE_VOICE_TEXT_BANNED_VALUE = 41;
    /**
     * CHAT_MESSAGE_SPECTATORS_WATCHING_THIS_GAME = 42;
     */
    public static final int CHAT_MESSAGE_SPECTATORS_WATCHING_THIS_GAME_VALUE = 42;
    /**
     * CHAT_MESSAGE_REPORT_REMINDER = 43;
     */
    public static final int CHAT_MESSAGE_REPORT_REMINDER_VALUE = 43;
    /**
     * CHAT_MESSAGE_ECON_ITEM = 44;
     */
    public static final int CHAT_MESSAGE_ECON_ITEM_VALUE = 44;
    /**
     * CHAT_MESSAGE_TAUNT = 45;
     */
    public static final int CHAT_MESSAGE_TAUNT_VALUE = 45;
    /**
     * CHAT_MESSAGE_RANDOM = 46;
     */
    public static final int CHAT_MESSAGE_RANDOM_VALUE = 46;
    /**
     * CHAT_MESSAGE_RD_TURN = 47;
     */
    public static final int CHAT_MESSAGE_RD_TURN_VALUE = 47;
    /**
     * CHAT_MESSAGE_DROP_RATE_BONUS = 49;
     */
    public static final int CHAT_MESSAGE_DROP_RATE_BONUS_VALUE = 49;
    /**
     * CHAT_MESSAGE_NO_BATTLE_POINTS = 50;
     */
    public static final int CHAT_MESSAGE_NO_BATTLE_POINTS_VALUE = 50;
    /**
     * CHAT_MESSAGE_DENIED_AEGIS = 51;
     */
    public static final int CHAT_MESSAGE_DENIED_AEGIS_VALUE = 51;
    /**
     * CHAT_MESSAGE_INFORMATIONAL = 52;
     */
    public static final int CHAT_MESSAGE_INFORMATIONAL_VALUE = 52;
    /**
     * CHAT_MESSAGE_AEGIS_STOLEN = 53;
     */
    public static final int CHAT_MESSAGE_AEGIS_STOLEN_VALUE = 53;
    /**
     * CHAT_MESSAGE_ROSHAN_CANDY = 54;
     */
    public static final int CHAT_MESSAGE_ROSHAN_CANDY_VALUE = 54;
    /**
     * CHAT_MESSAGE_ITEM_GIFTED = 55;
     */
    public static final int CHAT_MESSAGE_ITEM_GIFTED_VALUE = 55;
    /**
     * CHAT_MESSAGE_HERO_KILL_WITH_GREEVIL = 56;
     */
    public static final int CHAT_MESSAGE_HERO_KILL_WITH_GREEVIL_VALUE = 56;
    /**
     * CHAT_MESSAGE_HOLDOUT_TOWER_DESTROYED = 57;
     */
    public static final int CHAT_MESSAGE_HOLDOUT_TOWER_DESTROYED_VALUE = 57;
    /**
     * CHAT_MESSAGE_HOLDOUT_WALL_DESTROYED = 58;
     */
    public static final int CHAT_MESSAGE_HOLDOUT_WALL_DESTROYED_VALUE = 58;
    /**
     * CHAT_MESSAGE_HOLDOUT_WALL_FINISHED = 59;
     */
    public static final int CHAT_MESSAGE_HOLDOUT_WALL_FINISHED_VALUE = 59;
    /**
     * CHAT_MESSAGE_PLAYER_LEFT_LIMITED_HERO = 62;
     */
    public static final int CHAT_MESSAGE_PLAYER_LEFT_LIMITED_HERO_VALUE = 62;
    /**
     * CHAT_MESSAGE_ABANDON_LIMITED_HERO_EXPLANATION = 63;
     */
    public static final int CHAT_MESSAGE_ABANDON_LIMITED_HERO_EXPLANATION_VALUE = 63;
    /**
     * CHAT_MESSAGE_DISCONNECT_LIMITED_HERO = 64;
     */
    public static final int CHAT_MESSAGE_DISCONNECT_LIMITED_HERO_VALUE = 64;
    /**
     * CHAT_MESSAGE_LOW_PRIORITY_COMPLETED_EXPLANATION = 65;
     */
    public static final int CHAT_MESSAGE_LOW_PRIORITY_COMPLETED_EXPLANATION_VALUE = 65;
    /**
     * CHAT_MESSAGE_RECRUITMENT_DROP_RATE_BONUS = 66;
     */
    public static final int CHAT_MESSAGE_RECRUITMENT_DROP_RATE_BONUS_VALUE = 66;
    /**
     * CHAT_MESSAGE_FROSTIVUS_SHINING_BOOSTER_ACTIVE = 67;
     */
    public static final int CHAT_MESSAGE_FROSTIVUS_SHINING_BOOSTER_ACTIVE_VALUE = 67;
    /**
     * CHAT_MESSAGE_PLAYER_LEFT_AFK = 73;
     */
    public static final int CHAT_MESSAGE_PLAYER_LEFT_AFK_VALUE = 73;
    /**
     * CHAT_MESSAGE_PLAYER_LEFT_DISCONNECTED_TOO_LONG = 74;
     */
    public static final int CHAT_MESSAGE_PLAYER_LEFT_DISCONNECTED_TOO_LONG_VALUE = 74;
    /**
     * CHAT_MESSAGE_PLAYER_ABANDONED = 75;
     */
    public static final int CHAT_MESSAGE_PLAYER_ABANDONED_VALUE = 75;
    /**
     * CHAT_MESSAGE_PLAYER_ABANDONED_AFK = 76;
     */
    public static final int CHAT_MESSAGE_PLAYER_ABANDONED_AFK_VALUE = 76;
    /**
     * CHAT_MESSAGE_PLAYER_ABANDONED_DISCONNECTED_TOO_LONG = 77;
     */
    public static final int CHAT_MESSAGE_PLAYER_ABANDONED_DISCONNECTED_TOO_LONG_VALUE = 77;
    /**
     * CHAT_MESSAGE_WILL_NOT_BE_SCORED = 78;
     */
    public static final int CHAT_MESSAGE_WILL_NOT_BE_SCORED_VALUE = 78;
    /**
     * CHAT_MESSAGE_WILL_NOT_BE_SCORED_RANKED = 79;
     */
    public static final int CHAT_MESSAGE_WILL_NOT_BE_SCORED_RANKED_VALUE = 79;
    /**
     * CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK = 80;
     */
    public static final int CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK_VALUE = 80;
    /**
     * CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK_RANKED = 81;
     */
    public static final int CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK_RANKED_VALUE = 81;
    /**
     * CHAT_MESSAGE_CAN_QUIT_WITHOUT_ABANDON = 82;
     */
    public static final int CHAT_MESSAGE_CAN_QUIT_WITHOUT_ABANDON_VALUE = 82;
    /**
     * CHAT_MESSAGE_RANKED_GAME_STILL_SCORED_LEAVERS_GET_LOSS = 83;
     */
    public static final int CHAT_MESSAGE_RANKED_GAME_STILL_SCORED_LEAVERS_GET_LOSS_VALUE = 83;
    /**
     * CHAT_MESSAGE_ABANDON_RANKED_BEFORE_FIRST_BLOOD_PARTY = 84;
     */
    public static final int CHAT_MESSAGE_ABANDON_RANKED_BEFORE_FIRST_BLOOD_PARTY_VALUE = 84;
    /**
     * CHAT_MESSAGE_COMPENDIUM_LEVEL = 85;
     */
    public static final int CHAT_MESSAGE_COMPENDIUM_LEVEL_VALUE = 85;
    /**
     * CHAT_MESSAGE_VICTORY_PREDICTION_STREAK = 86;
     */
    public static final int CHAT_MESSAGE_VICTORY_PREDICTION_STREAK_VALUE = 86;


    public final int getNumber() { return value; }

    public static DOTA_CHAT_MESSAGE valueOf(int value) {
      switch (value) {
        case -1: return CHAT_MESSAGE_INVALID;
        case 0: return CHAT_MESSAGE_HERO_KILL;
        case 1: return CHAT_MESSAGE_HERO_DENY;
        case 2: return CHAT_MESSAGE_BARRACKS_KILL;
        case 3: return CHAT_MESSAGE_TOWER_KILL;
        case 4: return CHAT_MESSAGE_TOWER_DENY;
        case 5: return CHAT_MESSAGE_FIRSTBLOOD;
        case 6: return CHAT_MESSAGE_STREAK_KILL;
        case 7: return CHAT_MESSAGE_BUYBACK;
        case 8: return CHAT_MESSAGE_AEGIS;
        case 9: return CHAT_MESSAGE_ROSHAN_KILL;
        case 10: return CHAT_MESSAGE_COURIER_LOST;
        case 11: return CHAT_MESSAGE_COURIER_RESPAWNED;
        case 12: return CHAT_MESSAGE_GLYPH_USED;
        case 13: return CHAT_MESSAGE_ITEM_PURCHASE;
        case 14: return CHAT_MESSAGE_CONNECT;
        case 15: return CHAT_MESSAGE_DISCONNECT;
        case 16: return CHAT_MESSAGE_DISCONNECT_WAIT_FOR_RECONNECT;
        case 17: return CHAT_MESSAGE_DISCONNECT_TIME_REMAINING;
        case 18: return CHAT_MESSAGE_DISCONNECT_TIME_REMAINING_PLURAL;
        case 19: return CHAT_MESSAGE_RECONNECT;
        case 20: return CHAT_MESSAGE_PLAYER_LEFT;
        case 21: return CHAT_MESSAGE_SAFE_TO_LEAVE;
        case 22: return CHAT_MESSAGE_RUNE_PICKUP;
        case 23: return CHAT_MESSAGE_RUNE_BOTTLE;
        case 24: return CHAT_MESSAGE_INTHEBAG;
        case 25: return CHAT_MESSAGE_SECRETSHOP;
        case 26: return CHAT_MESSAGE_ITEM_AUTOPURCHASED;
        case 27: return CHAT_MESSAGE_ITEMS_COMBINED;
        case 28: return CHAT_MESSAGE_SUPER_CREEPS;
        case 29: return CHAT_MESSAGE_CANT_USE_ACTION_ITEM;
        case 30: return CHAT_MESSAGE_CHARGES_EXHAUSTED;
        case 31: return CHAT_MESSAGE_CANTPAUSE;
        case 32: return CHAT_MESSAGE_NOPAUSESLEFT;
        case 33: return CHAT_MESSAGE_CANTPAUSEYET;
        case 34: return CHAT_MESSAGE_PAUSED;
        case 35: return CHAT_MESSAGE_UNPAUSE_COUNTDOWN;
        case 36: return CHAT_MESSAGE_UNPAUSED;
        case 37: return CHAT_MESSAGE_AUTO_UNPAUSED;
        case 38: return CHAT_MESSAGE_YOUPAUSED;
        case 39: return CHAT_MESSAGE_CANTUNPAUSETEAM;
        case 41: return CHAT_MESSAGE_VOICE_TEXT_BANNED;
        case 42: return CHAT_MESSAGE_SPECTATORS_WATCHING_THIS_GAME;
        case 43: return CHAT_MESSAGE_REPORT_REMINDER;
        case 44: return CHAT_MESSAGE_ECON_ITEM;
        case 45: return CHAT_MESSAGE_TAUNT;
        case 46: return CHAT_MESSAGE_RANDOM;
        case 47: return CHAT_MESSAGE_RD_TURN;
        case 49: return CHAT_MESSAGE_DROP_RATE_BONUS;
        case 50: return CHAT_MESSAGE_NO_BATTLE_POINTS;
        case 51: return CHAT_MESSAGE_DENIED_AEGIS;
        case 52: return CHAT_MESSAGE_INFORMATIONAL;
        case 53: return CHAT_MESSAGE_AEGIS_STOLEN;
        case 54: return CHAT_MESSAGE_ROSHAN_CANDY;
        case 55: return CHAT_MESSAGE_ITEM_GIFTED;
        case 56: return CHAT_MESSAGE_HERO_KILL_WITH_GREEVIL;
        case 57: return CHAT_MESSAGE_HOLDOUT_TOWER_DESTROYED;
        case 58: return CHAT_MESSAGE_HOLDOUT_WALL_DESTROYED;
        case 59: return CHAT_MESSAGE_HOLDOUT_WALL_FINISHED;
        case 62: return CHAT_MESSAGE_PLAYER_LEFT_LIMITED_HERO;
        case 63: return CHAT_MESSAGE_ABANDON_LIMITED_HERO_EXPLANATION;
        case 64: return CHAT_MESSAGE_DISCONNECT_LIMITED_HERO;
        case 65: return CHAT_MESSAGE_LOW_PRIORITY_COMPLETED_EXPLANATION;
        case 66: return CHAT_MESSAGE_RECRUITMENT_DROP_RATE_BONUS;
        case 67: return CHAT_MESSAGE_FROSTIVUS_SHINING_BOOSTER_ACTIVE;
        case 73: return CHAT_MESSAGE_PLAYER_LEFT_AFK;
        case 74: return CHAT_MESSAGE_PLAYER_LEFT_DISCONNECTED_TOO_LONG;
        case 75: return CHAT_MESSAGE_PLAYER_ABANDONED;
        case 76: return CHAT_MESSAGE_PLAYER_ABANDONED_AFK;
        case 77: return CHAT_MESSAGE_PLAYER_ABANDONED_DISCONNECTED_TOO_LONG;
        case 78: return CHAT_MESSAGE_WILL_NOT_BE_SCORED;
        case 79: return CHAT_MESSAGE_WILL_NOT_BE_SCORED_RANKED;
        case 80: return CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK;
        case 81: return CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK_RANKED;
        case 82: return CHAT_MESSAGE_CAN_QUIT_WITHOUT_ABANDON;
        case 83: return CHAT_MESSAGE_RANKED_GAME_STILL_SCORED_LEAVERS_GET_LOSS;
        case 84: return CHAT_MESSAGE_ABANDON_RANKED_BEFORE_FIRST_BLOOD_PARTY;
        case 85: return CHAT_MESSAGE_COMPENDIUM_LEVEL;
        case 86: return CHAT_MESSAGE_VICTORY_PREDICTION_STREAK;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public DOTA_CHAT_MESSAGE findValueByNumber(int number) {
              return DOTA_CHAT_MESSAGE.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.getDescriptor().getEnumTypes().get(1);
    }

    private static final DOTA_CHAT_MESSAGE[] VALUES = values();

    public static DOTA_CHAT_MESSAGE valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private DOTA_CHAT_MESSAGE(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:DOTA_CHAT_MESSAGE)
  }

  /**
   * Protobuf enum {@code DOTA_NO_BATTLE_POINTS_REASONS}
   */
  public enum DOTA_NO_BATTLE_POINTS_REASONS
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * NO_BATTLE_POINTS_WRONG_LOBBY_TYPE = 1;
     */
    NO_BATTLE_POINTS_WRONG_LOBBY_TYPE(0, 1),
    /**
     * NO_BATTLE_POINTS_PRACTICE_BOTS = 2;
     */
    NO_BATTLE_POINTS_PRACTICE_BOTS(1, 2),
    /**
     * NO_BATTLE_POINTS_CHEATS_ENABLED = 3;
     */
    NO_BATTLE_POINTS_CHEATS_ENABLED(2, 3),
    /**
     * NO_BATTLE_POINTS_LOW_PRIORITY = 4;
     */
    NO_BATTLE_POINTS_LOW_PRIORITY(3, 4),
    ;

    /**
     * NO_BATTLE_POINTS_WRONG_LOBBY_TYPE = 1;
     */
    public static final int NO_BATTLE_POINTS_WRONG_LOBBY_TYPE_VALUE = 1;
    /**
     * NO_BATTLE_POINTS_PRACTICE_BOTS = 2;
     */
    public static final int NO_BATTLE_POINTS_PRACTICE_BOTS_VALUE = 2;
    /**
     * NO_BATTLE_POINTS_CHEATS_ENABLED = 3;
     */
    public static final int NO_BATTLE_POINTS_CHEATS_ENABLED_VALUE = 3;
    /**
     * NO_BATTLE_POINTS_LOW_PRIORITY = 4;
     */
    public static final int NO_BATTLE_POINTS_LOW_PRIORITY_VALUE = 4;


    public final int getNumber() { return value; }

    public static DOTA_NO_BATTLE_POINTS_REASONS valueOf(int value) {
      switch (value) {
        case 1: return NO_BATTLE_POINTS_WRONG_LOBBY_TYPE;
        case 2: return NO_BATTLE_POINTS_PRACTICE_BOTS;
        case 3: return NO_BATTLE_POINTS_CHEATS_ENABLED;
        case 4: return NO_BATTLE_POINTS_LOW_PRIORITY;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public DOTA_NO_BATTLE_POINTS_REASONS findValueByNumber(int number) {
              return DOTA_NO_BATTLE_POINTS_REASONS.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.getDescriptor().getEnumTypes().get(2);
    }

    private static final DOTA_NO_BATTLE_POINTS_REASONS[] VALUES = values();

    public static DOTA_NO_BATTLE_POINTS_REASONS valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private DOTA_NO_BATTLE_POINTS_REASONS(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:DOTA_NO_BATTLE_POINTS_REASONS)
  }

  /**
   * Protobuf enum {@code DOTA_CHAT_INFORMATIONAL}
   */
  public enum DOTA_CHAT_INFORMATIONAL
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * INFO_COOP_BATTLE_POINTS_RULES = 1;
     */
    INFO_COOP_BATTLE_POINTS_RULES(0, 1),
    /**
     * INFO_FROSTIVUS_ABANDON_REMINDER = 2;
     */
    INFO_FROSTIVUS_ABANDON_REMINDER(1, 2),
    /**
     * INFO_RANKED_REMINDER = 3;
     */
    INFO_RANKED_REMINDER(2, 3),
    /**
     * INFO_COOP_LOW_PRIORITY_PASSIVE_REMINDER = 4;
     */
    INFO_COOP_LOW_PRIORITY_PASSIVE_REMINDER(3, 4),
    ;

    /**
     * INFO_COOP_BATTLE_POINTS_RULES = 1;
     */
    public static final int INFO_COOP_BATTLE_POINTS_RULES_VALUE = 1;
    /**
     * INFO_FROSTIVUS_ABANDON_REMINDER = 2;
     */
    public static final int INFO_FROSTIVUS_ABANDON_REMINDER_VALUE = 2;
    /**
     * INFO_RANKED_REMINDER = 3;
     */
    public static final int INFO_RANKED_REMINDER_VALUE = 3;
    /**
     * INFO_COOP_LOW_PRIORITY_PASSIVE_REMINDER = 4;
     */
    public static final int INFO_COOP_LOW_PRIORITY_PASSIVE_REMINDER_VALUE = 4;


    public final int getNumber() { return value; }

    public static DOTA_CHAT_INFORMATIONAL valueOf(int value) {
      switch (value) {
        case 1: return INFO_COOP_BATTLE_POINTS_RULES;
        case 2: return INFO_FROSTIVUS_ABANDON_REMINDER;
        case 3: return INFO_RANKED_REMINDER;
        case 4: return INFO_COOP_LOW_PRIORITY_PASSIVE_REMINDER;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public DOTA_CHAT_INFORMATIONAL findValueByNumber(int number) {
              return DOTA_CHAT_INFORMATIONAL.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.getDescriptor().getEnumTypes().get(3);
    }

    private static final DOTA_CHAT_INFORMATIONAL[] VALUES = values();

    public static DOTA_CHAT_INFORMATIONAL valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private DOTA_CHAT_INFORMATIONAL(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:DOTA_CHAT_INFORMATIONAL)
  }

  /**
   * Protobuf enum {@code DOTA_ABILITY_PING_TYPE}
   */
  public enum DOTA_ABILITY_PING_TYPE
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * ABILITY_PING_READY = 1;
     */
    ABILITY_PING_READY(0, 1),
    /**
     * ABILITY_PING_MANA = 2;
     */
    ABILITY_PING_MANA(1, 2),
    /**
     * ABILITY_PING_COOLDOWN = 3;
     */
    ABILITY_PING_COOLDOWN(2, 3),
    /**
     * ABILITY_PING_ENEMY = 4;
     */
    ABILITY_PING_ENEMY(3, 4),
    ;

    /**
     * ABILITY_PING_READY = 1;
     */
    public static final int ABILITY_PING_READY_VALUE = 1;
    /**
     * ABILITY_PING_MANA = 2;
     */
    public static final int ABILITY_PING_MANA_VALUE = 2;
    /**
     * ABILITY_PING_COOLDOWN = 3;
     */
    public static final int ABILITY_PING_COOLDOWN_VALUE = 3;
    /**
     * ABILITY_PING_ENEMY = 4;
     */
    public static final int ABILITY_PING_ENEMY_VALUE = 4;


    public final int getNumber() { return value; }

    public static DOTA_ABILITY_PING_TYPE valueOf(int value) {
      switch (value) {
        case 1: return ABILITY_PING_READY;
        case 2: return ABILITY_PING_MANA;
        case 3: return ABILITY_PING_COOLDOWN;
        case 4: return ABILITY_PING_ENEMY;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public DOTA_ABILITY_PING_TYPE findValueByNumber(int number) {
              return DOTA_ABILITY_PING_TYPE.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.getDescriptor().getEnumTypes().get(4);
    }

    private static final DOTA_ABILITY_PING_TYPE[] VALUES = values();

    public static DOTA_ABILITY_PING_TYPE valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private DOTA_ABILITY_PING_TYPE(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:DOTA_ABILITY_PING_TYPE)
  }

  /**
   * Protobuf enum {@code DOTA_COMBATLOG_TYPES}
   */
  public enum DOTA_COMBATLOG_TYPES
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * DOTA_COMBATLOG_DAMAGE = 0;
     */
    DOTA_COMBATLOG_DAMAGE(0, 0),
    /**
     * DOTA_COMBATLOG_HEAL = 1;
     */
    DOTA_COMBATLOG_HEAL(1, 1),
    /**
     * DOTA_COMBATLOG_MODIFIER_ADD = 2;
     */
    DOTA_COMBATLOG_MODIFIER_ADD(2, 2),
    /**
     * DOTA_COMBATLOG_MODIFIER_REMOVE = 3;
     */
    DOTA_COMBATLOG_MODIFIER_REMOVE(3, 3),
    /**
     * DOTA_COMBATLOG_DEATH = 4;
     */
    DOTA_COMBATLOG_DEATH(4, 4),
    /**
     * DOTA_COMBATLOG_ABILITY = 5;
     */
    DOTA_COMBATLOG_ABILITY(5, 5),
    /**
     * DOTA_COMBATLOG_ITEM = 6;
     */
    DOTA_COMBATLOG_ITEM(6, 6),
    /**
     * DOTA_COMBATLOG_LOCATION = 7;
     */
    DOTA_COMBATLOG_LOCATION(7, 7),
    /**
     * DOTA_COMBATLOG_GOLD = 8;
     */
    DOTA_COMBATLOG_GOLD(8, 8),
    /**
     * DOTA_COMBATLOG_GAME_STATE = 9;
     */
    DOTA_COMBATLOG_GAME_STATE(9, 9),
    /**
     * DOTA_COMBATLOG_XP = 10;
     */
    DOTA_COMBATLOG_XP(10, 10),
    /**
     * DOTA_COMBATLOG_PURCHASE = 11;
     */
    DOTA_COMBATLOG_PURCHASE(11, 11),
    /**
     * DOTA_COMBATLOG_BUYBACK = 12;
     */
    DOTA_COMBATLOG_BUYBACK(12, 12),
    /**
     * DOTA_COMBATLOG_ABILITY_TRIGGER = 13;
     */
    DOTA_COMBATLOG_ABILITY_TRIGGER(13, 13),
    ;

    /**
     * DOTA_COMBATLOG_DAMAGE = 0;
     */
    public static final int DOTA_COMBATLOG_DAMAGE_VALUE = 0;
    /**
     * DOTA_COMBATLOG_HEAL = 1;
     */
    public static final int DOTA_COMBATLOG_HEAL_VALUE = 1;
    /**
     * DOTA_COMBATLOG_MODIFIER_ADD = 2;
     */
    public static final int DOTA_COMBATLOG_MODIFIER_ADD_VALUE = 2;
    /**
     * DOTA_COMBATLOG_MODIFIER_REMOVE = 3;
     */
    public static final int DOTA_COMBATLOG_MODIFIER_REMOVE_VALUE = 3;
    /**
     * DOTA_COMBATLOG_DEATH = 4;
     */
    public static final int DOTA_COMBATLOG_DEATH_VALUE = 4;
    /**
     * DOTA_COMBATLOG_ABILITY = 5;
     */
    public static final int DOTA_COMBATLOG_ABILITY_VALUE = 5;
    /**
     * DOTA_COMBATLOG_ITEM = 6;
     */
    public static final int DOTA_COMBATLOG_ITEM_VALUE = 6;
    /**
     * DOTA_COMBATLOG_LOCATION = 7;
     */
    public static final int DOTA_COMBATLOG_LOCATION_VALUE = 7;
    /**
     * DOTA_COMBATLOG_GOLD = 8;
     */
    public static final int DOTA_COMBATLOG_GOLD_VALUE = 8;
    /**
     * DOTA_COMBATLOG_GAME_STATE = 9;
     */
    public static final int DOTA_COMBATLOG_GAME_STATE_VALUE = 9;
    /**
     * DOTA_COMBATLOG_XP = 10;
     */
    public static final int DOTA_COMBATLOG_XP_VALUE = 10;
    /**
     * DOTA_COMBATLOG_PURCHASE = 11;
     */
    public static final int DOTA_COMBATLOG_PURCHASE_VALUE = 11;
    /**
     * DOTA_COMBATLOG_BUYBACK = 12;
     */
    public static final int DOTA_COMBATLOG_BUYBACK_VALUE = 12;
    /**
     * DOTA_COMBATLOG_ABILITY_TRIGGER = 13;
     */
    public static final int DOTA_COMBATLOG_ABILITY_TRIGGER_VALUE = 13;


    public final int getNumber() { return value; }

    public static DOTA_COMBATLOG_TYPES valueOf(int value) {
      switch (value) {
        case 0: return DOTA_COMBATLOG_DAMAGE;
        case 1: return DOTA_COMBATLOG_HEAL;
        case 2: return DOTA_COMBATLOG_MODIFIER_ADD;
        case 3: return DOTA_COMBATLOG_MODIFIER_REMOVE;
        case 4: return DOTA_COMBATLOG_DEATH;
        case 5: return DOTA_COMBATLOG_ABILITY;
        case 6: return DOTA_COMBATLOG_ITEM;
        case 7: return DOTA_COMBATLOG_LOCATION;
        case 8: return DOTA_COMBATLOG_GOLD;
        case 9: return DOTA_COMBATLOG_GAME_STATE;
        case 10: return DOTA_COMBATLOG_XP;
        case 11: return DOTA_COMBATLOG_PURCHASE;
        case 12: return DOTA_COMBATLOG_BUYBACK;
        case 13: return DOTA_COMBATLOG_ABILITY_TRIGGER;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public DOTA_COMBATLOG_TYPES findValueByNumber(int number) {
              return DOTA_COMBATLOG_TYPES.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.getDescriptor().getEnumTypes().get(5);
    }

    private static final DOTA_COMBATLOG_TYPES[] VALUES = values();

    public static DOTA_COMBATLOG_TYPES valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private DOTA_COMBATLOG_TYPES(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:DOTA_COMBATLOG_TYPES)
  }

  /**
   * Protobuf enum {@code EDotaEntityMessages}
   */
  public enum EDotaEntityMessages
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * DOTA_UNIT_SPEECH = 0;
     */
    DOTA_UNIT_SPEECH(0, 0),
    /**
     * DOTA_UNIT_SPEECH_MUTE = 1;
     */
    DOTA_UNIT_SPEECH_MUTE(1, 1),
    /**
     * DOTA_UNIT_ADD_GESTURE = 2;
     */
    DOTA_UNIT_ADD_GESTURE(2, 2),
    /**
     * DOTA_UNIT_REMOVE_GESTURE = 3;
     */
    DOTA_UNIT_REMOVE_GESTURE(3, 3),
    /**
     * DOTA_UNIT_REMOVE_ALL_GESTURES = 4;
     */
    DOTA_UNIT_REMOVE_ALL_GESTURES(4, 4),
    /**
     * DOTA_UNIT_FADE_GESTURE = 6;
     */
    DOTA_UNIT_FADE_GESTURE(5, 6),
    /**
     * DOTA_UNIT_SPEECH_CLIENTSIDE_RULES = 7;
     */
    DOTA_UNIT_SPEECH_CLIENTSIDE_RULES(6, 7),
    ;

    /**
     * DOTA_UNIT_SPEECH = 0;
     */
    public static final int DOTA_UNIT_SPEECH_VALUE = 0;
    /**
     * DOTA_UNIT_SPEECH_MUTE = 1;
     */
    public static final int DOTA_UNIT_SPEECH_MUTE_VALUE = 1;
    /**
     * DOTA_UNIT_ADD_GESTURE = 2;
     */
    public static final int DOTA_UNIT_ADD_GESTURE_VALUE = 2;
    /**
     * DOTA_UNIT_REMOVE_GESTURE = 3;
     */
    public static final int DOTA_UNIT_REMOVE_GESTURE_VALUE = 3;
    /**
     * DOTA_UNIT_REMOVE_ALL_GESTURES = 4;
     */
    public static final int DOTA_UNIT_REMOVE_ALL_GESTURES_VALUE = 4;
    /**
     * DOTA_UNIT_FADE_GESTURE = 6;
     */
    public static final int DOTA_UNIT_FADE_GESTURE_VALUE = 6;
    /**
     * DOTA_UNIT_SPEECH_CLIENTSIDE_RULES = 7;
     */
    public static final int DOTA_UNIT_SPEECH_CLIENTSIDE_RULES_VALUE = 7;


    public final int getNumber() { return value; }

    public static EDotaEntityMessages valueOf(int value) {
      switch (value) {
        case 0: return DOTA_UNIT_SPEECH;
        case 1: return DOTA_UNIT_SPEECH_MUTE;
        case 2: return DOTA_UNIT_ADD_GESTURE;
        case 3: return DOTA_UNIT_REMOVE_GESTURE;
        case 4: return DOTA_UNIT_REMOVE_ALL_GESTURES;
        case 6: return DOTA_UNIT_FADE_GESTURE;
        case 7: return DOTA_UNIT_SPEECH_CLIENTSIDE_RULES;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public EDotaEntityMessages findValueByNumber(int number) {
              return EDotaEntityMessages.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.getDescriptor().getEnumTypes().get(6);
    }

    private static final EDotaEntityMessages[] VALUES = values();

    public static EDotaEntityMessages valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private EDotaEntityMessages(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:EDotaEntityMessages)
  }

  /**
   * Protobuf enum {@code DOTA_PARTICLE_MESSAGE}
   */
  public enum DOTA_PARTICLE_MESSAGE
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_CREATE = 0;
     */
    DOTA_PARTICLE_MANAGER_EVENT_CREATE(0, 0),
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_UPDATE = 1;
     */
    DOTA_PARTICLE_MANAGER_EVENT_UPDATE(1, 1),
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_UPDATE_FORWARD = 2;
     */
    DOTA_PARTICLE_MANAGER_EVENT_UPDATE_FORWARD(2, 2),
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_UPDATE_ORIENTATION = 3;
     */
    DOTA_PARTICLE_MANAGER_EVENT_UPDATE_ORIENTATION(3, 3),
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_UPDATE_FALLBACK = 4;
     */
    DOTA_PARTICLE_MANAGER_EVENT_UPDATE_FALLBACK(4, 4),
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_UPDATE_ENT = 5;
     */
    DOTA_PARTICLE_MANAGER_EVENT_UPDATE_ENT(5, 5),
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_UPDATE_OFFSET = 6;
     */
    DOTA_PARTICLE_MANAGER_EVENT_UPDATE_OFFSET(6, 6),
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_DESTROY = 7;
     */
    DOTA_PARTICLE_MANAGER_EVENT_DESTROY(7, 7),
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_DESTROY_INVOLVING = 8;
     */
    DOTA_PARTICLE_MANAGER_EVENT_DESTROY_INVOLVING(8, 8),
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_RELEASE = 9;
     */
    DOTA_PARTICLE_MANAGER_EVENT_RELEASE(9, 9),
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_LATENCY = 10;
     */
    DOTA_PARTICLE_MANAGER_EVENT_LATENCY(10, 10),
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_SHOULD_DRAW = 11;
     */
    DOTA_PARTICLE_MANAGER_EVENT_SHOULD_DRAW(11, 11),
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_FROZEN = 12;
     */
    DOTA_PARTICLE_MANAGER_EVENT_FROZEN(12, 12),
    ;

    /**
     * DOTA_PARTICLE_MANAGER_EVENT_CREATE = 0;
     */
    public static final int DOTA_PARTICLE_MANAGER_EVENT_CREATE_VALUE = 0;
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_UPDATE = 1;
     */
    public static final int DOTA_PARTICLE_MANAGER_EVENT_UPDATE_VALUE = 1;
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_UPDATE_FORWARD = 2;
     */
    public static final int DOTA_PARTICLE_MANAGER_EVENT_UPDATE_FORWARD_VALUE = 2;
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_UPDATE_ORIENTATION = 3;
     */
    public static final int DOTA_PARTICLE_MANAGER_EVENT_UPDATE_ORIENTATION_VALUE = 3;
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_UPDATE_FALLBACK = 4;
     */
    public static final int DOTA_PARTICLE_MANAGER_EVENT_UPDATE_FALLBACK_VALUE = 4;
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_UPDATE_ENT = 5;
     */
    public static final int DOTA_PARTICLE_MANAGER_EVENT_UPDATE_ENT_VALUE = 5;
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_UPDATE_OFFSET = 6;
     */
    public static final int DOTA_PARTICLE_MANAGER_EVENT_UPDATE_OFFSET_VALUE = 6;
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_DESTROY = 7;
     */
    public static final int DOTA_PARTICLE_MANAGER_EVENT_DESTROY_VALUE = 7;
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_DESTROY_INVOLVING = 8;
     */
    public static final int DOTA_PARTICLE_MANAGER_EVENT_DESTROY_INVOLVING_VALUE = 8;
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_RELEASE = 9;
     */
    public static final int DOTA_PARTICLE_MANAGER_EVENT_RELEASE_VALUE = 9;
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_LATENCY = 10;
     */
    public static final int DOTA_PARTICLE_MANAGER_EVENT_LATENCY_VALUE = 10;
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_SHOULD_DRAW = 11;
     */
    public static final int DOTA_PARTICLE_MANAGER_EVENT_SHOULD_DRAW_VALUE = 11;
    /**
     * DOTA_PARTICLE_MANAGER_EVENT_FROZEN = 12;
     */
    public static final int DOTA_PARTICLE_MANAGER_EVENT_FROZEN_VALUE = 12;


    public final int getNumber() { return value; }

    public static DOTA_PARTICLE_MESSAGE valueOf(int value) {
      switch (value) {
        case 0: return DOTA_PARTICLE_MANAGER_EVENT_CREATE;
        case 1: return DOTA_PARTICLE_MANAGER_EVENT_UPDATE;
        case 2: return DOTA_PARTICLE_MANAGER_EVENT_UPDATE_FORWARD;
        case 3: return DOTA_PARTICLE_MANAGER_EVENT_UPDATE_ORIENTATION;
        case 4: return DOTA_PARTICLE_MANAGER_EVENT_UPDATE_FALLBACK;
        case 5: return DOTA_PARTICLE_MANAGER_EVENT_UPDATE_ENT;
        case 6: return DOTA_PARTICLE_MANAGER_EVENT_UPDATE_OFFSET;
        case 7: return DOTA_PARTICLE_MANAGER_EVENT_DESTROY;
        case 8: return DOTA_PARTICLE_MANAGER_EVENT_DESTROY_INVOLVING;
        case 9: return DOTA_PARTICLE_MANAGER_EVENT_RELEASE;
        case 10: return DOTA_PARTICLE_MANAGER_EVENT_LATENCY;
        case 11: return DOTA_PARTICLE_MANAGER_EVENT_SHOULD_DRAW;
        case 12: return DOTA_PARTICLE_MANAGER_EVENT_FROZEN;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public DOTA_PARTICLE_MESSAGE findValueByNumber(int number) {
              return DOTA_PARTICLE_MESSAGE.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.getDescriptor().getEnumTypes().get(7);
    }

    private static final DOTA_PARTICLE_MESSAGE[] VALUES = values();

    public static DOTA_PARTICLE_MESSAGE valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private DOTA_PARTICLE_MESSAGE(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:DOTA_PARTICLE_MESSAGE)
  }

  /**
   * Protobuf enum {@code DOTA_OVERHEAD_ALERT}
   */
  public enum DOTA_OVERHEAD_ALERT
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * OVERHEAD_ALERT_GOLD = 0;
     */
    OVERHEAD_ALERT_GOLD(0, 0),
    /**
     * OVERHEAD_ALERT_DENY = 1;
     */
    OVERHEAD_ALERT_DENY(1, 1),
    /**
     * OVERHEAD_ALERT_CRITICAL = 2;
     */
    OVERHEAD_ALERT_CRITICAL(2, 2),
    /**
     * OVERHEAD_ALERT_XP = 3;
     */
    OVERHEAD_ALERT_XP(3, 3),
    /**
     * OVERHEAD_ALERT_BONUS_SPELL_DAMAGE = 4;
     */
    OVERHEAD_ALERT_BONUS_SPELL_DAMAGE(4, 4),
    /**
     * OVERHEAD_ALERT_MISS = 5;
     */
    OVERHEAD_ALERT_MISS(5, 5),
    /**
     * OVERHEAD_ALERT_DAMAGE = 6;
     */
    OVERHEAD_ALERT_DAMAGE(6, 6),
    /**
     * OVERHEAD_ALERT_EVADE = 7;
     */
    OVERHEAD_ALERT_EVADE(7, 7),
    /**
     * OVERHEAD_ALERT_BLOCK = 8;
     */
    OVERHEAD_ALERT_BLOCK(8, 8),
    /**
     * OVERHEAD_ALERT_BONUS_POISON_DAMAGE = 9;
     */
    OVERHEAD_ALERT_BONUS_POISON_DAMAGE(9, 9),
    /**
     * OVERHEAD_ALERT_HEAL = 10;
     */
    OVERHEAD_ALERT_HEAL(10, 10),
    /**
     * OVERHEAD_ALERT_MANA_ADD = 11;
     */
    OVERHEAD_ALERT_MANA_ADD(11, 11),
    /**
     * OVERHEAD_ALERT_MANA_LOSS = 12;
     */
    OVERHEAD_ALERT_MANA_LOSS(12, 12),
    /**
     * OVERHEAD_ALERT_LAST_HIT_EARLY = 13;
     */
    OVERHEAD_ALERT_LAST_HIT_EARLY(13, 13),
    /**
     * OVERHEAD_ALERT_LAST_HIT_CLOSE = 14;
     */
    OVERHEAD_ALERT_LAST_HIT_CLOSE(14, 14),
    /**
     * OVERHEAD_ALERT_LAST_HIT_MISS = 15;
     */
    OVERHEAD_ALERT_LAST_HIT_MISS(15, 15),
    ;

    /**
     * OVERHEAD_ALERT_GOLD = 0;
     */
    public static final int OVERHEAD_ALERT_GOLD_VALUE = 0;
    /**
     * OVERHEAD_ALERT_DENY = 1;
     */
    public static final int OVERHEAD_ALERT_DENY_VALUE = 1;
    /**
     * OVERHEAD_ALERT_CRITICAL = 2;
     */
    public static final int OVERHEAD_ALERT_CRITICAL_VALUE = 2;
    /**
     * OVERHEAD_ALERT_XP = 3;
     */
    public static final int OVERHEAD_ALERT_XP_VALUE = 3;
    /**
     * OVERHEAD_ALERT_BONUS_SPELL_DAMAGE = 4;
     */
    public static final int OVERHEAD_ALERT_BONUS_SPELL_DAMAGE_VALUE = 4;
    /**
     * OVERHEAD_ALERT_MISS = 5;
     */
    public static final int OVERHEAD_ALERT_MISS_VALUE = 5;
    /**
     * OVERHEAD_ALERT_DAMAGE = 6;
     */
    public static final int OVERHEAD_ALERT_DAMAGE_VALUE = 6;
    /**
     * OVERHEAD_ALERT_EVADE = 7;
     */
    public static final int OVERHEAD_ALERT_EVADE_VALUE = 7;
    /**
     * OVERHEAD_ALERT_BLOCK = 8;
     */
    public static final int OVERHEAD_ALERT_BLOCK_VALUE = 8;
    /**
     * OVERHEAD_ALERT_BONUS_POISON_DAMAGE = 9;
     */
    public static final int OVERHEAD_ALERT_BONUS_POISON_DAMAGE_VALUE = 9;
    /**
     * OVERHEAD_ALERT_HEAL = 10;
     */
    public static final int OVERHEAD_ALERT_HEAL_VALUE = 10;
    /**
     * OVERHEAD_ALERT_MANA_ADD = 11;
     */
    public static final int OVERHEAD_ALERT_MANA_ADD_VALUE = 11;
    /**
     * OVERHEAD_ALERT_MANA_LOSS = 12;
     */
    public static final int OVERHEAD_ALERT_MANA_LOSS_VALUE = 12;
    /**
     * OVERHEAD_ALERT_LAST_HIT_EARLY = 13;
     */
    public static final int OVERHEAD_ALERT_LAST_HIT_EARLY_VALUE = 13;
    /**
     * OVERHEAD_ALERT_LAST_HIT_CLOSE = 14;
     */
    public static final int OVERHEAD_ALERT_LAST_HIT_CLOSE_VALUE = 14;
    /**
     * OVERHEAD_ALERT_LAST_HIT_MISS = 15;
     */
    public static final int OVERHEAD_ALERT_LAST_HIT_MISS_VALUE = 15;


    public final int getNumber() { return value; }

    public static DOTA_OVERHEAD_ALERT valueOf(int value) {
      switch (value) {
        case 0: return OVERHEAD_ALERT_GOLD;
        case 1: return OVERHEAD_ALERT_DENY;
        case 2: return OVERHEAD_ALERT_CRITICAL;
        case 3: return OVERHEAD_ALERT_XP;
        case 4: return OVERHEAD_ALERT_BONUS_SPELL_DAMAGE;
        case 5: return OVERHEAD_ALERT_MISS;
        case 6: return OVERHEAD_ALERT_DAMAGE;
        case 7: return OVERHEAD_ALERT_EVADE;
        case 8: return OVERHEAD_ALERT_BLOCK;
        case 9: return OVERHEAD_ALERT_BONUS_POISON_DAMAGE;
        case 10: return OVERHEAD_ALERT_HEAL;
        case 11: return OVERHEAD_ALERT_MANA_ADD;
        case 12: return OVERHEAD_ALERT_MANA_LOSS;
        case 13: return OVERHEAD_ALERT_LAST_HIT_EARLY;
        case 14: return OVERHEAD_ALERT_LAST_HIT_CLOSE;
        case 15: return OVERHEAD_ALERT_LAST_HIT_MISS;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public DOTA_OVERHEAD_ALERT findValueByNumber(int number) {
              return DOTA_OVERHEAD_ALERT.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.getDescriptor().getEnumTypes().get(8);
    }

    private static final DOTA_OVERHEAD_ALERT[] VALUES = values();

    public static DOTA_OVERHEAD_ALERT valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private DOTA_OVERHEAD_ALERT(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:DOTA_OVERHEAD_ALERT)
  }

  /**
   * Protobuf enum {@code EHeroStatType}
   */
  public enum EHeroStatType
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * k_EHeroStatType_None = 0;
     */
    k_EHeroStatType_None(0, 0),
    /**
     * k_EHeroStatType_AxeTotalDamage = 2000;
     */
    k_EHeroStatType_AxeTotalDamage(1, 2000),
    /**
     * k_EHeroStatType_BattleHungerDamage = 2001;
     */
    k_EHeroStatType_BattleHungerDamage(2, 2001),
    /**
     * k_EHeroStatType_CounterHelixDamage = 2002;
     */
    k_EHeroStatType_CounterHelixDamage(3, 2002),
    /**
     * k_EHeroStatType_CullingBladeDamage = 2003;
     */
    k_EHeroStatType_CullingBladeDamage(4, 2003),
    /**
     * k_EHeroStatType_BerserkersCallCastCount = 2004;
     */
    k_EHeroStatType_BerserkersCallCastCount(5, 2004),
    /**
     * k_EHeroStatType_BerserkersCallHeroesHitAverage = 2005;
     */
    k_EHeroStatType_BerserkersCallHeroesHitAverage(6, 2005),
    /**
     * k_EHeroStatType_BerserkersCallOtherUnitsHit = 2006;
     */
    k_EHeroStatType_BerserkersCallOtherUnitsHit(7, 2006),
    /**
     * k_EHeroStatType_BerserkersCallHeroAttacksTaken = 2007;
     */
    k_EHeroStatType_BerserkersCallHeroAttacksTaken(8, 2007),
    /**
     * k_EHeroStatType_BerserkersCallOtherAttacksTaken = 2008;
     */
    k_EHeroStatType_BerserkersCallOtherAttacksTaken(9, 2008),
    /**
     * k_EHeroStatType_BattleHungerCastCount = 2009;
     */
    k_EHeroStatType_BattleHungerCastCount(10, 2009),
    /**
     * k_EHeroStatType_BattleHungerPotentialDuration = 2010;
     */
    k_EHeroStatType_BattleHungerPotentialDuration(11, 2010),
    /**
     * k_EHeroStatType_BattleHungerAverageDuration = 2011;
     */
    k_EHeroStatType_BattleHungerAverageDuration(12, 2011),
    /**
     * k_EHeroStatType_CounterHelixProcCount = 2012;
     */
    k_EHeroStatType_CounterHelixProcCount(13, 2012),
    /**
     * k_EHeroStatType_CounterHelixHeroProcCount = 2013;
     */
    k_EHeroStatType_CounterHelixHeroProcCount(14, 2013),
    /**
     * k_EHeroStatType_CounterHelixHeroesHitAverage = 2014;
     */
    k_EHeroStatType_CounterHelixHeroesHitAverage(15, 2014),
    /**
     * k_EHeroStatType_CounterHelixOtherUnitsHitCount = 2015;
     */
    k_EHeroStatType_CounterHelixOtherUnitsHitCount(16, 2015),
    /**
     * k_EHeroStatType_CullingBladeCastCount = 2016;
     */
    k_EHeroStatType_CullingBladeCastCount(17, 2016),
    /**
     * k_EHeroStatType_CullingBladeKillCount = 2017;
     */
    k_EHeroStatType_CullingBladeKillCount(18, 2017),
    /**
     * k_EHeroStatType_CullingBladeAverageHealthCulled = 2018;
     */
    k_EHeroStatType_CullingBladeAverageHealthCulled(19, 2018),
    /**
     * k_EHeroStatType_CullingBladeAverageDamageAvailable = 2019;
     */
    k_EHeroStatType_CullingBladeAverageDamageAvailable(20, 2019),
    /**
     * k_EHeroStatType_CullingBladeHeroBuffAverage = 2020;
     */
    k_EHeroStatType_CullingBladeHeroBuffAverage(21, 2020),
    ;

    /**
     * k_EHeroStatType_None = 0;
     */
    public static final int k_EHeroStatType_None_VALUE = 0;
    /**
     * k_EHeroStatType_AxeTotalDamage = 2000;
     */
    public static final int k_EHeroStatType_AxeTotalDamage_VALUE = 2000;
    /**
     * k_EHeroStatType_BattleHungerDamage = 2001;
     */
    public static final int k_EHeroStatType_BattleHungerDamage_VALUE = 2001;
    /**
     * k_EHeroStatType_CounterHelixDamage = 2002;
     */
    public static final int k_EHeroStatType_CounterHelixDamage_VALUE = 2002;
    /**
     * k_EHeroStatType_CullingBladeDamage = 2003;
     */
    public static final int k_EHeroStatType_CullingBladeDamage_VALUE = 2003;
    /**
     * k_EHeroStatType_BerserkersCallCastCount = 2004;
     */
    public static final int k_EHeroStatType_BerserkersCallCastCount_VALUE = 2004;
    /**
     * k_EHeroStatType_BerserkersCallHeroesHitAverage = 2005;
     */
    public static final int k_EHeroStatType_BerserkersCallHeroesHitAverage_VALUE = 2005;
    /**
     * k_EHeroStatType_BerserkersCallOtherUnitsHit = 2006;
     */
    public static final int k_EHeroStatType_BerserkersCallOtherUnitsHit_VALUE = 2006;
    /**
     * k_EHeroStatType_BerserkersCallHeroAttacksTaken = 2007;
     */
    public static final int k_EHeroStatType_BerserkersCallHeroAttacksTaken_VALUE = 2007;
    /**
     * k_EHeroStatType_BerserkersCallOtherAttacksTaken = 2008;
     */
    public static final int k_EHeroStatType_BerserkersCallOtherAttacksTaken_VALUE = 2008;
    /**
     * k_EHeroStatType_BattleHungerCastCount = 2009;
     */
    public static final int k_EHeroStatType_BattleHungerCastCount_VALUE = 2009;
    /**
     * k_EHeroStatType_BattleHungerPotentialDuration = 2010;
     */
    public static final int k_EHeroStatType_BattleHungerPotentialDuration_VALUE = 2010;
    /**
     * k_EHeroStatType_BattleHungerAverageDuration = 2011;
     */
    public static final int k_EHeroStatType_BattleHungerAverageDuration_VALUE = 2011;
    /**
     * k_EHeroStatType_CounterHelixProcCount = 2012;
     */
    public static final int k_EHeroStatType_CounterHelixProcCount_VALUE = 2012;
    /**
     * k_EHeroStatType_CounterHelixHeroProcCount = 2013;
     */
    public static final int k_EHeroStatType_CounterHelixHeroProcCount_VALUE = 2013;
    /**
     * k_EHeroStatType_CounterHelixHeroesHitAverage = 2014;
     */
    public static final int k_EHeroStatType_CounterHelixHeroesHitAverage_VALUE = 2014;
    /**
     * k_EHeroStatType_CounterHelixOtherUnitsHitCount = 2015;
     */
    public static final int k_EHeroStatType_CounterHelixOtherUnitsHitCount_VALUE = 2015;
    /**
     * k_EHeroStatType_CullingBladeCastCount = 2016;
     */
    public static final int k_EHeroStatType_CullingBladeCastCount_VALUE = 2016;
    /**
     * k_EHeroStatType_CullingBladeKillCount = 2017;
     */
    public static final int k_EHeroStatType_CullingBladeKillCount_VALUE = 2017;
    /**
     * k_EHeroStatType_CullingBladeAverageHealthCulled = 2018;
     */
    public static final int k_EHeroStatType_CullingBladeAverageHealthCulled_VALUE = 2018;
    /**
     * k_EHeroStatType_CullingBladeAverageDamageAvailable = 2019;
     */
    public static final int k_EHeroStatType_CullingBladeAverageDamageAvailable_VALUE = 2019;
    /**
     * k_EHeroStatType_CullingBladeHeroBuffAverage = 2020;
     */
    public static final int k_EHeroStatType_CullingBladeHeroBuffAverage_VALUE = 2020;


    public final int getNumber() { return value; }

    public static EHeroStatType valueOf(int value) {
      switch (value) {
        case 0: return k_EHeroStatType_None;
        case 2000: return k_EHeroStatType_AxeTotalDamage;
        case 2001: return k_EHeroStatType_BattleHungerDamage;
        case 2002: return k_EHeroStatType_CounterHelixDamage;
        case 2003: return k_EHeroStatType_CullingBladeDamage;
        case 2004: return k_EHeroStatType_BerserkersCallCastCount;
        case 2005: return k_EHeroStatType_BerserkersCallHeroesHitAverage;
        case 2006: return k_EHeroStatType_BerserkersCallOtherUnitsHit;
        case 2007: return k_EHeroStatType_BerserkersCallHeroAttacksTaken;
        case 2008: return k_EHeroStatType_BerserkersCallOtherAttacksTaken;
        case 2009: return k_EHeroStatType_BattleHungerCastCount;
        case 2010: return k_EHeroStatType_BattleHungerPotentialDuration;
        case 2011: return k_EHeroStatType_BattleHungerAverageDuration;
        case 2012: return k_EHeroStatType_CounterHelixProcCount;
        case 2013: return k_EHeroStatType_CounterHelixHeroProcCount;
        case 2014: return k_EHeroStatType_CounterHelixHeroesHitAverage;
        case 2015: return k_EHeroStatType_CounterHelixOtherUnitsHitCount;
        case 2016: return k_EHeroStatType_CullingBladeCastCount;
        case 2017: return k_EHeroStatType_CullingBladeKillCount;
        case 2018: return k_EHeroStatType_CullingBladeAverageHealthCulled;
        case 2019: return k_EHeroStatType_CullingBladeAverageDamageAvailable;
        case 2020: return k_EHeroStatType_CullingBladeHeroBuffAverage;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public EHeroStatType findValueByNumber(int number) {
              return EHeroStatType.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.getDescriptor().getEnumTypes().get(9);
    }

    private static final EHeroStatType[] VALUES = values();

    public static EHeroStatType valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private EHeroStatType(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:EHeroStatType)
  }

  public interface CDOTAUserMsg_AIDebugLineOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional string message = 1;
    /**
     * optional string message = 1;
     */
    boolean hasMessage();
    /**
     * optional string message = 1;
     */
    java.lang.String getMessage();
    /**
     * optional string message = 1;
     */
    com.google.protobuf.ByteString
        getMessageBytes();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_AIDebugLine}
   */
  public static final class CDOTAUserMsg_AIDebugLine extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_AIDebugLineOrBuilder {
    // Use CDOTAUserMsg_AIDebugLine.newBuilder() to construct.
    private CDOTAUserMsg_AIDebugLine(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_AIDebugLine(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_AIDebugLine defaultInstance;
    public static CDOTAUserMsg_AIDebugLine getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_AIDebugLine getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_AIDebugLine(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              message_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_AIDebugLine_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_AIDebugLine_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AIDebugLine.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AIDebugLine.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_AIDebugLine parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_AIDebugLine(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional string message = 1;
    public static final int MESSAGE_FIELD_NUMBER = 1;
    private java.lang.Object message_;
    /**
     * optional string message = 1;
     */
    public boolean hasMessage() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional string message = 1;
     */
    public java.lang.String getMessage() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          message_ = s;
        }
        return s;
      }
    }
    /**
     * optional string message = 1;
     */
    public com.google.protobuf.ByteString
        getMessageBytes() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        message_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      message_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getMessageBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getMessageBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AIDebugLine parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AIDebugLine parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AIDebugLine parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AIDebugLine parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AIDebugLine parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AIDebugLine parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AIDebugLine parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AIDebugLine parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AIDebugLine parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AIDebugLine parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AIDebugLine prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_AIDebugLine}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AIDebugLineOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_AIDebugLine_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_AIDebugLine_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AIDebugLine.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AIDebugLine.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AIDebugLine.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        message_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_AIDebugLine_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AIDebugLine getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AIDebugLine.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AIDebugLine build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AIDebugLine result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AIDebugLine buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AIDebugLine result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AIDebugLine(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.message_ = message_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AIDebugLine) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AIDebugLine)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AIDebugLine other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AIDebugLine.getDefaultInstance()) return this;
        if (other.hasMessage()) {
          bitField0_ |= 0x00000001;
          message_ = other.message_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AIDebugLine parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AIDebugLine) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional string message = 1;
      private java.lang.Object message_ = "";
      /**
       * optional string message = 1;
       */
      public boolean hasMessage() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional string message = 1;
       */
      public java.lang.String getMessage() {
        java.lang.Object ref = message_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          message_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string message = 1;
       */
      public com.google.protobuf.ByteString
          getMessageBytes() {
        java.lang.Object ref = message_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          message_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string message = 1;
       */
      public Builder setMessage(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        message_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string message = 1;
       */
      public Builder clearMessage() {
        bitField0_ = (bitField0_ & ~0x00000001);
        message_ = getDefaultInstance().getMessage();
        onChanged();
        return this;
      }
      /**
       * optional string message = 1;
       */
      public Builder setMessageBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        message_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_AIDebugLine)
    }

    static {
      defaultInstance = new CDOTAUserMsg_AIDebugLine(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_AIDebugLine)
  }

  public interface CDOTAUserMsg_PingOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional string message = 1;
    /**
     * optional string message = 1;
     */
    boolean hasMessage();
    /**
     * optional string message = 1;
     */
    java.lang.String getMessage();
    /**
     * optional string message = 1;
     */
    com.google.protobuf.ByteString
        getMessageBytes();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_Ping}
   */
  public static final class CDOTAUserMsg_Ping extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_PingOrBuilder {
    // Use CDOTAUserMsg_Ping.newBuilder() to construct.
    private CDOTAUserMsg_Ping(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_Ping(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_Ping defaultInstance;
    public static CDOTAUserMsg_Ping getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_Ping getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_Ping(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              message_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_Ping_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_Ping_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_Ping.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_Ping.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_Ping parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_Ping(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional string message = 1;
    public static final int MESSAGE_FIELD_NUMBER = 1;
    private java.lang.Object message_;
    /**
     * optional string message = 1;
     */
    public boolean hasMessage() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional string message = 1;
     */
    public java.lang.String getMessage() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          message_ = s;
        }
        return s;
      }
    }
    /**
     * optional string message = 1;
     */
    public com.google.protobuf.ByteString
        getMessageBytes() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        message_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      message_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getMessageBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getMessageBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_Ping parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_Ping parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_Ping parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_Ping parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_Ping parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_Ping parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_Ping parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_Ping parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_Ping parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_Ping parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_Ping prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_Ping}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_PingOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_Ping_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_Ping_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_Ping.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_Ping.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_Ping.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        message_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_Ping_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_Ping getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_Ping.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_Ping build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_Ping result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_Ping buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_Ping result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_Ping(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.message_ = message_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_Ping) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_Ping)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_Ping other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_Ping.getDefaultInstance()) return this;
        if (other.hasMessage()) {
          bitField0_ |= 0x00000001;
          message_ = other.message_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_Ping parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_Ping) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional string message = 1;
      private java.lang.Object message_ = "";
      /**
       * optional string message = 1;
       */
      public boolean hasMessage() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional string message = 1;
       */
      public java.lang.String getMessage() {
        java.lang.Object ref = message_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          message_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string message = 1;
       */
      public com.google.protobuf.ByteString
          getMessageBytes() {
        java.lang.Object ref = message_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          message_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string message = 1;
       */
      public Builder setMessage(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        message_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string message = 1;
       */
      public Builder clearMessage() {
        bitField0_ = (bitField0_ & ~0x00000001);
        message_ = getDefaultInstance().getMessage();
        onChanged();
        return this;
      }
      /**
       * optional string message = 1;
       */
      public Builder setMessageBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        message_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_Ping)
    }

    static {
      defaultInstance = new CDOTAUserMsg_Ping(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_Ping)
  }

  public interface CDOTAUserMsg_SwapVerifyOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional uint32 player_id = 1;
    /**
     * optional uint32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional uint32 player_id = 1;
     */
    int getPlayerId();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_SwapVerify}
   */
  public static final class CDOTAUserMsg_SwapVerify extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_SwapVerifyOrBuilder {
    // Use CDOTAUserMsg_SwapVerify.newBuilder() to construct.
    private CDOTAUserMsg_SwapVerify(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_SwapVerify(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_SwapVerify defaultInstance;
    public static CDOTAUserMsg_SwapVerify getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_SwapVerify getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_SwapVerify(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SwapVerify_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SwapVerify_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SwapVerify.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SwapVerify.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_SwapVerify parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_SwapVerify(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional uint32 player_id = 1;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional uint32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    private void initFields() {
      playerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SwapVerify parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SwapVerify parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SwapVerify parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SwapVerify parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SwapVerify parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SwapVerify parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SwapVerify parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SwapVerify parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SwapVerify parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SwapVerify parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SwapVerify prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_SwapVerify}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SwapVerifyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SwapVerify_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SwapVerify_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SwapVerify.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SwapVerify.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SwapVerify.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SwapVerify_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SwapVerify getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SwapVerify.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SwapVerify build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SwapVerify result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SwapVerify buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SwapVerify result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SwapVerify(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SwapVerify) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SwapVerify)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SwapVerify other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SwapVerify.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SwapVerify parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SwapVerify) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional uint32 player_id = 1;
      private int playerId_ ;
      /**
       * optional uint32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_SwapVerify)
    }

    static {
      defaultInstance = new CDOTAUserMsg_SwapVerify(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_SwapVerify)
  }

  public interface CDOTAUserMsg_ChatEventOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional .DOTA_CHAT_MESSAGE type = 1 [default = CHAT_MESSAGE_INVALID];
    /**
     * optional .DOTA_CHAT_MESSAGE type = 1 [default = CHAT_MESSAGE_INVALID];
     */
    boolean hasType();
    /**
     * optional .DOTA_CHAT_MESSAGE type = 1 [default = CHAT_MESSAGE_INVALID];
     */
    com.dota2.proto.DotaUsermessages.DOTA_CHAT_MESSAGE getType();

    // optional uint32 value = 2;
    /**
     * optional uint32 value = 2;
     */
    boolean hasValue();
    /**
     * optional uint32 value = 2;
     */
    int getValue();

    // optional sint32 playerid_1 = 3 [default = -1];
    /**
     * optional sint32 playerid_1 = 3 [default = -1];
     */
    boolean hasPlayerid1();
    /**
     * optional sint32 playerid_1 = 3 [default = -1];
     */
    int getPlayerid1();

    // optional sint32 playerid_2 = 4 [default = -1];
    /**
     * optional sint32 playerid_2 = 4 [default = -1];
     */
    boolean hasPlayerid2();
    /**
     * optional sint32 playerid_2 = 4 [default = -1];
     */
    int getPlayerid2();

    // optional sint32 playerid_3 = 5 [default = -1];
    /**
     * optional sint32 playerid_3 = 5 [default = -1];
     */
    boolean hasPlayerid3();
    /**
     * optional sint32 playerid_3 = 5 [default = -1];
     */
    int getPlayerid3();

    // optional sint32 playerid_4 = 6 [default = -1];
    /**
     * optional sint32 playerid_4 = 6 [default = -1];
     */
    boolean hasPlayerid4();
    /**
     * optional sint32 playerid_4 = 6 [default = -1];
     */
    int getPlayerid4();

    // optional sint32 playerid_5 = 7 [default = -1];
    /**
     * optional sint32 playerid_5 = 7 [default = -1];
     */
    boolean hasPlayerid5();
    /**
     * optional sint32 playerid_5 = 7 [default = -1];
     */
    int getPlayerid5();

    // optional sint32 playerid_6 = 8 [default = -1];
    /**
     * optional sint32 playerid_6 = 8 [default = -1];
     */
    boolean hasPlayerid6();
    /**
     * optional sint32 playerid_6 = 8 [default = -1];
     */
    int getPlayerid6();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ChatEvent}
   */
  public static final class CDOTAUserMsg_ChatEvent extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_ChatEventOrBuilder {
    // Use CDOTAUserMsg_ChatEvent.newBuilder() to construct.
    private CDOTAUserMsg_ChatEvent(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ChatEvent(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ChatEvent defaultInstance;
    public static CDOTAUserMsg_ChatEvent getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ChatEvent getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ChatEvent(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              com.dota2.proto.DotaUsermessages.DOTA_CHAT_MESSAGE value = com.dota2.proto.DotaUsermessages.DOTA_CHAT_MESSAGE.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                type_ = value;
              }
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              value_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              playerid1_ = input.readSInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              playerid2_ = input.readSInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              playerid3_ = input.readSInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              playerid4_ = input.readSInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              playerid5_ = input.readSInt32();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              playerid6_ = input.readSInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ChatEvent_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ChatEvent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatEvent.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatEvent.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ChatEvent parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ChatEvent(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional .DOTA_CHAT_MESSAGE type = 1 [default = CHAT_MESSAGE_INVALID];
    public static final int TYPE_FIELD_NUMBER = 1;
    private com.dota2.proto.DotaUsermessages.DOTA_CHAT_MESSAGE type_;
    /**
     * optional .DOTA_CHAT_MESSAGE type = 1 [default = CHAT_MESSAGE_INVALID];
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional .DOTA_CHAT_MESSAGE type = 1 [default = CHAT_MESSAGE_INVALID];
     */
    public com.dota2.proto.DotaUsermessages.DOTA_CHAT_MESSAGE getType() {
      return type_;
    }

    // optional uint32 value = 2;
    public static final int VALUE_FIELD_NUMBER = 2;
    private int value_;
    /**
     * optional uint32 value = 2;
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 value = 2;
     */
    public int getValue() {
      return value_;
    }

    // optional sint32 playerid_1 = 3 [default = -1];
    public static final int PLAYERID_1_FIELD_NUMBER = 3;
    private int playerid1_;
    /**
     * optional sint32 playerid_1 = 3 [default = -1];
     */
    public boolean hasPlayerid1() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional sint32 playerid_1 = 3 [default = -1];
     */
    public int getPlayerid1() {
      return playerid1_;
    }

    // optional sint32 playerid_2 = 4 [default = -1];
    public static final int PLAYERID_2_FIELD_NUMBER = 4;
    private int playerid2_;
    /**
     * optional sint32 playerid_2 = 4 [default = -1];
     */
    public boolean hasPlayerid2() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional sint32 playerid_2 = 4 [default = -1];
     */
    public int getPlayerid2() {
      return playerid2_;
    }

    // optional sint32 playerid_3 = 5 [default = -1];
    public static final int PLAYERID_3_FIELD_NUMBER = 5;
    private int playerid3_;
    /**
     * optional sint32 playerid_3 = 5 [default = -1];
     */
    public boolean hasPlayerid3() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional sint32 playerid_3 = 5 [default = -1];
     */
    public int getPlayerid3() {
      return playerid3_;
    }

    // optional sint32 playerid_4 = 6 [default = -1];
    public static final int PLAYERID_4_FIELD_NUMBER = 6;
    private int playerid4_;
    /**
     * optional sint32 playerid_4 = 6 [default = -1];
     */
    public boolean hasPlayerid4() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional sint32 playerid_4 = 6 [default = -1];
     */
    public int getPlayerid4() {
      return playerid4_;
    }

    // optional sint32 playerid_5 = 7 [default = -1];
    public static final int PLAYERID_5_FIELD_NUMBER = 7;
    private int playerid5_;
    /**
     * optional sint32 playerid_5 = 7 [default = -1];
     */
    public boolean hasPlayerid5() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional sint32 playerid_5 = 7 [default = -1];
     */
    public int getPlayerid5() {
      return playerid5_;
    }

    // optional sint32 playerid_6 = 8 [default = -1];
    public static final int PLAYERID_6_FIELD_NUMBER = 8;
    private int playerid6_;
    /**
     * optional sint32 playerid_6 = 8 [default = -1];
     */
    public boolean hasPlayerid6() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional sint32 playerid_6 = 8 [default = -1];
     */
    public int getPlayerid6() {
      return playerid6_;
    }

    private void initFields() {
      type_ = com.dota2.proto.DotaUsermessages.DOTA_CHAT_MESSAGE.CHAT_MESSAGE_INVALID;
      value_ = 0;
      playerid1_ = -1;
      playerid2_ = -1;
      playerid3_ = -1;
      playerid4_ = -1;
      playerid5_ = -1;
      playerid6_ = -1;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, type_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, value_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeSInt32(3, playerid1_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeSInt32(4, playerid2_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeSInt32(5, playerid3_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeSInt32(6, playerid4_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeSInt32(7, playerid5_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeSInt32(8, playerid6_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, type_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, value_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSInt32Size(3, playerid1_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSInt32Size(4, playerid2_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSInt32Size(5, playerid3_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSInt32Size(6, playerid4_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSInt32Size(7, playerid5_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSInt32Size(8, playerid6_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatEvent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatEvent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatEvent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatEvent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatEvent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatEvent parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatEvent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatEvent parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatEvent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatEvent parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatEvent prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ChatEvent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatEventOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ChatEvent_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ChatEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatEvent.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatEvent.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatEvent.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        type_ = com.dota2.proto.DotaUsermessages.DOTA_CHAT_MESSAGE.CHAT_MESSAGE_INVALID;
        bitField0_ = (bitField0_ & ~0x00000001);
        value_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        playerid1_ = -1;
        bitField0_ = (bitField0_ & ~0x00000004);
        playerid2_ = -1;
        bitField0_ = (bitField0_ & ~0x00000008);
        playerid3_ = -1;
        bitField0_ = (bitField0_ & ~0x00000010);
        playerid4_ = -1;
        bitField0_ = (bitField0_ & ~0x00000020);
        playerid5_ = -1;
        bitField0_ = (bitField0_ & ~0x00000040);
        playerid6_ = -1;
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ChatEvent_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatEvent getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatEvent.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatEvent build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatEvent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatEvent buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatEvent result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatEvent(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.value_ = value_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.playerid1_ = playerid1_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.playerid2_ = playerid2_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.playerid3_ = playerid3_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.playerid4_ = playerid4_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.playerid5_ = playerid5_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.playerid6_ = playerid6_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatEvent) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatEvent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatEvent other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatEvent.getDefaultInstance()) return this;
        if (other.hasType()) {
          setType(other.getType());
        }
        if (other.hasValue()) {
          setValue(other.getValue());
        }
        if (other.hasPlayerid1()) {
          setPlayerid1(other.getPlayerid1());
        }
        if (other.hasPlayerid2()) {
          setPlayerid2(other.getPlayerid2());
        }
        if (other.hasPlayerid3()) {
          setPlayerid3(other.getPlayerid3());
        }
        if (other.hasPlayerid4()) {
          setPlayerid4(other.getPlayerid4());
        }
        if (other.hasPlayerid5()) {
          setPlayerid5(other.getPlayerid5());
        }
        if (other.hasPlayerid6()) {
          setPlayerid6(other.getPlayerid6());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatEvent parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatEvent) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional .DOTA_CHAT_MESSAGE type = 1 [default = CHAT_MESSAGE_INVALID];
      private com.dota2.proto.DotaUsermessages.DOTA_CHAT_MESSAGE type_ = com.dota2.proto.DotaUsermessages.DOTA_CHAT_MESSAGE.CHAT_MESSAGE_INVALID;
      /**
       * optional .DOTA_CHAT_MESSAGE type = 1 [default = CHAT_MESSAGE_INVALID];
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .DOTA_CHAT_MESSAGE type = 1 [default = CHAT_MESSAGE_INVALID];
       */
      public com.dota2.proto.DotaUsermessages.DOTA_CHAT_MESSAGE getType() {
        return type_;
      }
      /**
       * optional .DOTA_CHAT_MESSAGE type = 1 [default = CHAT_MESSAGE_INVALID];
       */
      public Builder setType(com.dota2.proto.DotaUsermessages.DOTA_CHAT_MESSAGE value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * optional .DOTA_CHAT_MESSAGE type = 1 [default = CHAT_MESSAGE_INVALID];
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = com.dota2.proto.DotaUsermessages.DOTA_CHAT_MESSAGE.CHAT_MESSAGE_INVALID;
        onChanged();
        return this;
      }

      // optional uint32 value = 2;
      private int value_ ;
      /**
       * optional uint32 value = 2;
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 value = 2;
       */
      public int getValue() {
        return value_;
      }
      /**
       * optional uint32 value = 2;
       */
      public Builder setValue(int value) {
        bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 value = 2;
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        value_ = 0;
        onChanged();
        return this;
      }

      // optional sint32 playerid_1 = 3 [default = -1];
      private int playerid1_ = -1;
      /**
       * optional sint32 playerid_1 = 3 [default = -1];
       */
      public boolean hasPlayerid1() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional sint32 playerid_1 = 3 [default = -1];
       */
      public int getPlayerid1() {
        return playerid1_;
      }
      /**
       * optional sint32 playerid_1 = 3 [default = -1];
       */
      public Builder setPlayerid1(int value) {
        bitField0_ |= 0x00000004;
        playerid1_ = value;
        onChanged();
        return this;
      }
      /**
       * optional sint32 playerid_1 = 3 [default = -1];
       */
      public Builder clearPlayerid1() {
        bitField0_ = (bitField0_ & ~0x00000004);
        playerid1_ = -1;
        onChanged();
        return this;
      }

      // optional sint32 playerid_2 = 4 [default = -1];
      private int playerid2_ = -1;
      /**
       * optional sint32 playerid_2 = 4 [default = -1];
       */
      public boolean hasPlayerid2() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional sint32 playerid_2 = 4 [default = -1];
       */
      public int getPlayerid2() {
        return playerid2_;
      }
      /**
       * optional sint32 playerid_2 = 4 [default = -1];
       */
      public Builder setPlayerid2(int value) {
        bitField0_ |= 0x00000008;
        playerid2_ = value;
        onChanged();
        return this;
      }
      /**
       * optional sint32 playerid_2 = 4 [default = -1];
       */
      public Builder clearPlayerid2() {
        bitField0_ = (bitField0_ & ~0x00000008);
        playerid2_ = -1;
        onChanged();
        return this;
      }

      // optional sint32 playerid_3 = 5 [default = -1];
      private int playerid3_ = -1;
      /**
       * optional sint32 playerid_3 = 5 [default = -1];
       */
      public boolean hasPlayerid3() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional sint32 playerid_3 = 5 [default = -1];
       */
      public int getPlayerid3() {
        return playerid3_;
      }
      /**
       * optional sint32 playerid_3 = 5 [default = -1];
       */
      public Builder setPlayerid3(int value) {
        bitField0_ |= 0x00000010;
        playerid3_ = value;
        onChanged();
        return this;
      }
      /**
       * optional sint32 playerid_3 = 5 [default = -1];
       */
      public Builder clearPlayerid3() {
        bitField0_ = (bitField0_ & ~0x00000010);
        playerid3_ = -1;
        onChanged();
        return this;
      }

      // optional sint32 playerid_4 = 6 [default = -1];
      private int playerid4_ = -1;
      /**
       * optional sint32 playerid_4 = 6 [default = -1];
       */
      public boolean hasPlayerid4() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional sint32 playerid_4 = 6 [default = -1];
       */
      public int getPlayerid4() {
        return playerid4_;
      }
      /**
       * optional sint32 playerid_4 = 6 [default = -1];
       */
      public Builder setPlayerid4(int value) {
        bitField0_ |= 0x00000020;
        playerid4_ = value;
        onChanged();
        return this;
      }
      /**
       * optional sint32 playerid_4 = 6 [default = -1];
       */
      public Builder clearPlayerid4() {
        bitField0_ = (bitField0_ & ~0x00000020);
        playerid4_ = -1;
        onChanged();
        return this;
      }

      // optional sint32 playerid_5 = 7 [default = -1];
      private int playerid5_ = -1;
      /**
       * optional sint32 playerid_5 = 7 [default = -1];
       */
      public boolean hasPlayerid5() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional sint32 playerid_5 = 7 [default = -1];
       */
      public int getPlayerid5() {
        return playerid5_;
      }
      /**
       * optional sint32 playerid_5 = 7 [default = -1];
       */
      public Builder setPlayerid5(int value) {
        bitField0_ |= 0x00000040;
        playerid5_ = value;
        onChanged();
        return this;
      }
      /**
       * optional sint32 playerid_5 = 7 [default = -1];
       */
      public Builder clearPlayerid5() {
        bitField0_ = (bitField0_ & ~0x00000040);
        playerid5_ = -1;
        onChanged();
        return this;
      }

      // optional sint32 playerid_6 = 8 [default = -1];
      private int playerid6_ = -1;
      /**
       * optional sint32 playerid_6 = 8 [default = -1];
       */
      public boolean hasPlayerid6() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional sint32 playerid_6 = 8 [default = -1];
       */
      public int getPlayerid6() {
        return playerid6_;
      }
      /**
       * optional sint32 playerid_6 = 8 [default = -1];
       */
      public Builder setPlayerid6(int value) {
        bitField0_ |= 0x00000080;
        playerid6_ = value;
        onChanged();
        return this;
      }
      /**
       * optional sint32 playerid_6 = 8 [default = -1];
       */
      public Builder clearPlayerid6() {
        bitField0_ = (bitField0_ & ~0x00000080);
        playerid6_ = -1;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ChatEvent)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ChatEvent(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ChatEvent)
  }

  public interface CDOTAUserMsg_CombatLogShowDeathOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_CombatLogShowDeath}
   */
  public static final class CDOTAUserMsg_CombatLogShowDeath extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_CombatLogShowDeathOrBuilder {
    // Use CDOTAUserMsg_CombatLogShowDeath.newBuilder() to construct.
    private CDOTAUserMsg_CombatLogShowDeath(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_CombatLogShowDeath(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_CombatLogShowDeath defaultInstance;
    public static CDOTAUserMsg_CombatLogShowDeath getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_CombatLogShowDeath getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_CombatLogShowDeath(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_CombatLogShowDeath_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_CombatLogShowDeath_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogShowDeath.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogShowDeath.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_CombatLogShowDeath parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_CombatLogShowDeath(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private void initFields() {
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogShowDeath parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogShowDeath parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogShowDeath parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogShowDeath parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogShowDeath parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogShowDeath parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogShowDeath parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogShowDeath parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogShowDeath parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogShowDeath parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogShowDeath prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_CombatLogShowDeath}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogShowDeathOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_CombatLogShowDeath_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_CombatLogShowDeath_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogShowDeath.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogShowDeath.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogShowDeath.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_CombatLogShowDeath_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogShowDeath getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogShowDeath.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogShowDeath build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogShowDeath result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogShowDeath buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogShowDeath result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogShowDeath(this);
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogShowDeath) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogShowDeath)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogShowDeath other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogShowDeath.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogShowDeath parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogShowDeath) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_CombatLogShowDeath)
    }

    static {
      defaultInstance = new CDOTAUserMsg_CombatLogShowDeath(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_CombatLogShowDeath)
  }

  public interface CDOTAUserMsg_BotChatOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional uint32 player_id = 1;
    /**
     * optional uint32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional uint32 player_id = 1;
     */
    int getPlayerId();

    // optional string format = 2;
    /**
     * optional string format = 2;
     */
    boolean hasFormat();
    /**
     * optional string format = 2;
     */
    java.lang.String getFormat();
    /**
     * optional string format = 2;
     */
    com.google.protobuf.ByteString
        getFormatBytes();

    // optional string message = 3;
    /**
     * optional string message = 3;
     */
    boolean hasMessage();
    /**
     * optional string message = 3;
     */
    java.lang.String getMessage();
    /**
     * optional string message = 3;
     */
    com.google.protobuf.ByteString
        getMessageBytes();

    // optional string target = 4;
    /**
     * optional string target = 4;
     */
    boolean hasTarget();
    /**
     * optional string target = 4;
     */
    java.lang.String getTarget();
    /**
     * optional string target = 4;
     */
    com.google.protobuf.ByteString
        getTargetBytes();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_BotChat}
   */
  public static final class CDOTAUserMsg_BotChat extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_BotChatOrBuilder {
    // Use CDOTAUserMsg_BotChat.newBuilder() to construct.
    private CDOTAUserMsg_BotChat(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_BotChat(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_BotChat defaultInstance;
    public static CDOTAUserMsg_BotChat getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_BotChat getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_BotChat(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              format_ = input.readBytes();
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              message_ = input.readBytes();
              break;
            }
            case 34: {
              bitField0_ |= 0x00000008;
              target_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_BotChat_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_BotChat_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BotChat.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BotChat.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_BotChat parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_BotChat(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional uint32 player_id = 1;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional uint32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    // optional string format = 2;
    public static final int FORMAT_FIELD_NUMBER = 2;
    private java.lang.Object format_;
    /**
     * optional string format = 2;
     */
    public boolean hasFormat() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional string format = 2;
     */
    public java.lang.String getFormat() {
      java.lang.Object ref = format_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          format_ = s;
        }
        return s;
      }
    }
    /**
     * optional string format = 2;
     */
    public com.google.protobuf.ByteString
        getFormatBytes() {
      java.lang.Object ref = format_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        format_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional string message = 3;
    public static final int MESSAGE_FIELD_NUMBER = 3;
    private java.lang.Object message_;
    /**
     * optional string message = 3;
     */
    public boolean hasMessage() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional string message = 3;
     */
    public java.lang.String getMessage() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          message_ = s;
        }
        return s;
      }
    }
    /**
     * optional string message = 3;
     */
    public com.google.protobuf.ByteString
        getMessageBytes() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        message_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional string target = 4;
    public static final int TARGET_FIELD_NUMBER = 4;
    private java.lang.Object target_;
    /**
     * optional string target = 4;
     */
    public boolean hasTarget() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional string target = 4;
     */
    public java.lang.String getTarget() {
      java.lang.Object ref = target_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          target_ = s;
        }
        return s;
      }
    }
    /**
     * optional string target = 4;
     */
    public com.google.protobuf.ByteString
        getTargetBytes() {
      java.lang.Object ref = target_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        target_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      playerId_ = 0;
      format_ = "";
      message_ = "";
      target_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getFormatBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getMessageBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBytes(4, getTargetBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getFormatBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getMessageBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, getTargetBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BotChat parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BotChat parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BotChat parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BotChat parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BotChat parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BotChat parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BotChat parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BotChat parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BotChat parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BotChat parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BotChat prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_BotChat}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BotChatOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_BotChat_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_BotChat_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BotChat.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BotChat.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BotChat.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        format_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        message_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        target_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_BotChat_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BotChat getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BotChat.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BotChat build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BotChat result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BotChat buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BotChat result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BotChat(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.format_ = format_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.message_ = message_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.target_ = target_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BotChat) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BotChat)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BotChat other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BotChat.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasFormat()) {
          bitField0_ |= 0x00000002;
          format_ = other.format_;
          onChanged();
        }
        if (other.hasMessage()) {
          bitField0_ |= 0x00000004;
          message_ = other.message_;
          onChanged();
        }
        if (other.hasTarget()) {
          bitField0_ |= 0x00000008;
          target_ = other.target_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BotChat parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BotChat) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional uint32 player_id = 1;
      private int playerId_ ;
      /**
       * optional uint32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      // optional string format = 2;
      private java.lang.Object format_ = "";
      /**
       * optional string format = 2;
       */
      public boolean hasFormat() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional string format = 2;
       */
      public java.lang.String getFormat() {
        java.lang.Object ref = format_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          format_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string format = 2;
       */
      public com.google.protobuf.ByteString
          getFormatBytes() {
        java.lang.Object ref = format_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          format_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string format = 2;
       */
      public Builder setFormat(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        format_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string format = 2;
       */
      public Builder clearFormat() {
        bitField0_ = (bitField0_ & ~0x00000002);
        format_ = getDefaultInstance().getFormat();
        onChanged();
        return this;
      }
      /**
       * optional string format = 2;
       */
      public Builder setFormatBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        format_ = value;
        onChanged();
        return this;
      }

      // optional string message = 3;
      private java.lang.Object message_ = "";
      /**
       * optional string message = 3;
       */
      public boolean hasMessage() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional string message = 3;
       */
      public java.lang.String getMessage() {
        java.lang.Object ref = message_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          message_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string message = 3;
       */
      public com.google.protobuf.ByteString
          getMessageBytes() {
        java.lang.Object ref = message_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          message_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string message = 3;
       */
      public Builder setMessage(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        message_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string message = 3;
       */
      public Builder clearMessage() {
        bitField0_ = (bitField0_ & ~0x00000004);
        message_ = getDefaultInstance().getMessage();
        onChanged();
        return this;
      }
      /**
       * optional string message = 3;
       */
      public Builder setMessageBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        message_ = value;
        onChanged();
        return this;
      }

      // optional string target = 4;
      private java.lang.Object target_ = "";
      /**
       * optional string target = 4;
       */
      public boolean hasTarget() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional string target = 4;
       */
      public java.lang.String getTarget() {
        java.lang.Object ref = target_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          target_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string target = 4;
       */
      public com.google.protobuf.ByteString
          getTargetBytes() {
        java.lang.Object ref = target_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          target_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string target = 4;
       */
      public Builder setTarget(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        target_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string target = 4;
       */
      public Builder clearTarget() {
        bitField0_ = (bitField0_ & ~0x00000008);
        target_ = getDefaultInstance().getTarget();
        onChanged();
        return this;
      }
      /**
       * optional string target = 4;
       */
      public Builder setTargetBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        target_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_BotChat)
    }

    static {
      defaultInstance = new CDOTAUserMsg_BotChat(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_BotChat)
  }

  public interface CDOTAUserMsg_CombatHeroPositionsOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional uint32 index = 1;
    /**
     * optional uint32 index = 1;
     */
    boolean hasIndex();
    /**
     * optional uint32 index = 1;
     */
    int getIndex();

    // optional int32 time = 2;
    /**
     * optional int32 time = 2;
     */
    boolean hasTime();
    /**
     * optional int32 time = 2;
     */
    int getTime();

    // optional .CMsgVector2D world_pos = 3;
    /**
     * optional .CMsgVector2D world_pos = 3;
     */
    boolean hasWorldPos();
    /**
     * optional .CMsgVector2D world_pos = 3;
     */
    com.dota2.proto.Networkbasetypes.CMsgVector2D getWorldPos();
    /**
     * optional .CMsgVector2D world_pos = 3;
     */
    com.dota2.proto.Networkbasetypes.CMsgVector2DOrBuilder getWorldPosOrBuilder();

    // optional int32 health = 4;
    /**
     * optional int32 health = 4;
     */
    boolean hasHealth();
    /**
     * optional int32 health = 4;
     */
    int getHealth();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_CombatHeroPositions}
   */
  public static final class CDOTAUserMsg_CombatHeroPositions extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_CombatHeroPositionsOrBuilder {
    // Use CDOTAUserMsg_CombatHeroPositions.newBuilder() to construct.
    private CDOTAUserMsg_CombatHeroPositions(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_CombatHeroPositions(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_CombatHeroPositions defaultInstance;
    public static CDOTAUserMsg_CombatHeroPositions getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_CombatHeroPositions getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_CombatHeroPositions(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              index_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              time_ = input.readInt32();
              break;
            }
            case 26: {
              com.dota2.proto.Networkbasetypes.CMsgVector2D.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                subBuilder = worldPos_.toBuilder();
              }
              worldPos_ = input.readMessage(com.dota2.proto.Networkbasetypes.CMsgVector2D.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(worldPos_);
                worldPos_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              health_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_CombatHeroPositions_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_CombatHeroPositions_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatHeroPositions.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatHeroPositions.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_CombatHeroPositions parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_CombatHeroPositions(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional uint32 index = 1;
    public static final int INDEX_FIELD_NUMBER = 1;
    private int index_;
    /**
     * optional uint32 index = 1;
     */
    public boolean hasIndex() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 index = 1;
     */
    public int getIndex() {
      return index_;
    }

    // optional int32 time = 2;
    public static final int TIME_FIELD_NUMBER = 2;
    private int time_;
    /**
     * optional int32 time = 2;
     */
    public boolean hasTime() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 time = 2;
     */
    public int getTime() {
      return time_;
    }

    // optional .CMsgVector2D world_pos = 3;
    public static final int WORLD_POS_FIELD_NUMBER = 3;
    private com.dota2.proto.Networkbasetypes.CMsgVector2D worldPos_;
    /**
     * optional .CMsgVector2D world_pos = 3;
     */
    public boolean hasWorldPos() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional .CMsgVector2D world_pos = 3;
     */
    public com.dota2.proto.Networkbasetypes.CMsgVector2D getWorldPos() {
      return worldPos_;
    }
    /**
     * optional .CMsgVector2D world_pos = 3;
     */
    public com.dota2.proto.Networkbasetypes.CMsgVector2DOrBuilder getWorldPosOrBuilder() {
      return worldPos_;
    }

    // optional int32 health = 4;
    public static final int HEALTH_FIELD_NUMBER = 4;
    private int health_;
    /**
     * optional int32 health = 4;
     */
    public boolean hasHealth() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 health = 4;
     */
    public int getHealth() {
      return health_;
    }

    private void initFields() {
      index_ = 0;
      time_ = 0;
      worldPos_ = com.dota2.proto.Networkbasetypes.CMsgVector2D.getDefaultInstance();
      health_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, index_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, time_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, worldPos_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, health_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, index_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, time_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, worldPos_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, health_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatHeroPositions parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatHeroPositions parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatHeroPositions parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatHeroPositions parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatHeroPositions parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatHeroPositions parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatHeroPositions parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatHeroPositions parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatHeroPositions parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatHeroPositions parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatHeroPositions prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_CombatHeroPositions}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatHeroPositionsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_CombatHeroPositions_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_CombatHeroPositions_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatHeroPositions.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatHeroPositions.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatHeroPositions.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getWorldPosFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        index_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        time_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (worldPosBuilder_ == null) {
          worldPos_ = com.dota2.proto.Networkbasetypes.CMsgVector2D.getDefaultInstance();
        } else {
          worldPosBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        health_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_CombatHeroPositions_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatHeroPositions getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatHeroPositions.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatHeroPositions build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatHeroPositions result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatHeroPositions buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatHeroPositions result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatHeroPositions(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.index_ = index_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.time_ = time_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (worldPosBuilder_ == null) {
          result.worldPos_ = worldPos_;
        } else {
          result.worldPos_ = worldPosBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.health_ = health_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatHeroPositions) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatHeroPositions)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatHeroPositions other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatHeroPositions.getDefaultInstance()) return this;
        if (other.hasIndex()) {
          setIndex(other.getIndex());
        }
        if (other.hasTime()) {
          setTime(other.getTime());
        }
        if (other.hasWorldPos()) {
          mergeWorldPos(other.getWorldPos());
        }
        if (other.hasHealth()) {
          setHealth(other.getHealth());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatHeroPositions parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatHeroPositions) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional uint32 index = 1;
      private int index_ ;
      /**
       * optional uint32 index = 1;
       */
      public boolean hasIndex() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 index = 1;
       */
      public int getIndex() {
        return index_;
      }
      /**
       * optional uint32 index = 1;
       */
      public Builder setIndex(int value) {
        bitField0_ |= 0x00000001;
        index_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 index = 1;
       */
      public Builder clearIndex() {
        bitField0_ = (bitField0_ & ~0x00000001);
        index_ = 0;
        onChanged();
        return this;
      }

      // optional int32 time = 2;
      private int time_ ;
      /**
       * optional int32 time = 2;
       */
      public boolean hasTime() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 time = 2;
       */
      public int getTime() {
        return time_;
      }
      /**
       * optional int32 time = 2;
       */
      public Builder setTime(int value) {
        bitField0_ |= 0x00000002;
        time_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 time = 2;
       */
      public Builder clearTime() {
        bitField0_ = (bitField0_ & ~0x00000002);
        time_ = 0;
        onChanged();
        return this;
      }

      // optional .CMsgVector2D world_pos = 3;
      private com.dota2.proto.Networkbasetypes.CMsgVector2D worldPos_ = com.dota2.proto.Networkbasetypes.CMsgVector2D.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.Networkbasetypes.CMsgVector2D, com.dota2.proto.Networkbasetypes.CMsgVector2D.Builder, com.dota2.proto.Networkbasetypes.CMsgVector2DOrBuilder> worldPosBuilder_;
      /**
       * optional .CMsgVector2D world_pos = 3;
       */
      public boolean hasWorldPos() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional .CMsgVector2D world_pos = 3;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVector2D getWorldPos() {
        if (worldPosBuilder_ == null) {
          return worldPos_;
        } else {
          return worldPosBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgVector2D world_pos = 3;
       */
      public Builder setWorldPos(com.dota2.proto.Networkbasetypes.CMsgVector2D value) {
        if (worldPosBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          worldPos_ = value;
          onChanged();
        } else {
          worldPosBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .CMsgVector2D world_pos = 3;
       */
      public Builder setWorldPos(
          com.dota2.proto.Networkbasetypes.CMsgVector2D.Builder builderForValue) {
        if (worldPosBuilder_ == null) {
          worldPos_ = builderForValue.build();
          onChanged();
        } else {
          worldPosBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .CMsgVector2D world_pos = 3;
       */
      public Builder mergeWorldPos(com.dota2.proto.Networkbasetypes.CMsgVector2D value) {
        if (worldPosBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004) &&
              worldPos_ != com.dota2.proto.Networkbasetypes.CMsgVector2D.getDefaultInstance()) {
            worldPos_ =
              com.dota2.proto.Networkbasetypes.CMsgVector2D.newBuilder(worldPos_).mergeFrom(value).buildPartial();
          } else {
            worldPos_ = value;
          }
          onChanged();
        } else {
          worldPosBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .CMsgVector2D world_pos = 3;
       */
      public Builder clearWorldPos() {
        if (worldPosBuilder_ == null) {
          worldPos_ = com.dota2.proto.Networkbasetypes.CMsgVector2D.getDefaultInstance();
          onChanged();
        } else {
          worldPosBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       * optional .CMsgVector2D world_pos = 3;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVector2D.Builder getWorldPosBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getWorldPosFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgVector2D world_pos = 3;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVector2DOrBuilder getWorldPosOrBuilder() {
        if (worldPosBuilder_ != null) {
          return worldPosBuilder_.getMessageOrBuilder();
        } else {
          return worldPos_;
        }
      }
      /**
       * optional .CMsgVector2D world_pos = 3;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.Networkbasetypes.CMsgVector2D, com.dota2.proto.Networkbasetypes.CMsgVector2D.Builder, com.dota2.proto.Networkbasetypes.CMsgVector2DOrBuilder> 
          getWorldPosFieldBuilder() {
        if (worldPosBuilder_ == null) {
          worldPosBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.dota2.proto.Networkbasetypes.CMsgVector2D, com.dota2.proto.Networkbasetypes.CMsgVector2D.Builder, com.dota2.proto.Networkbasetypes.CMsgVector2DOrBuilder>(
                  worldPos_,
                  getParentForChildren(),
                  isClean());
          worldPos_ = null;
        }
        return worldPosBuilder_;
      }

      // optional int32 health = 4;
      private int health_ ;
      /**
       * optional int32 health = 4;
       */
      public boolean hasHealth() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 health = 4;
       */
      public int getHealth() {
        return health_;
      }
      /**
       * optional int32 health = 4;
       */
      public Builder setHealth(int value) {
        bitField0_ |= 0x00000008;
        health_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 health = 4;
       */
      public Builder clearHealth() {
        bitField0_ = (bitField0_ & ~0x00000008);
        health_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_CombatHeroPositions)
    }

    static {
      defaultInstance = new CDOTAUserMsg_CombatHeroPositions(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_CombatHeroPositions)
  }

  public interface CDOTAUserMsg_MiniKillCamInfoOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
    /**
     * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
     */
    java.util.List 
        getAttackersList();
    /**
     * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker getAttackers(int index);
    /**
     * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
     */
    int getAttackersCount();
    /**
     * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
     */
    java.util.List 
        getAttackersOrBuilderList();
    /**
     * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.AttackerOrBuilder getAttackersOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_MiniKillCamInfo}
   */
  public static final class CDOTAUserMsg_MiniKillCamInfo extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_MiniKillCamInfoOrBuilder {
    // Use CDOTAUserMsg_MiniKillCamInfo.newBuilder() to construct.
    private CDOTAUserMsg_MiniKillCamInfo(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_MiniKillCamInfo(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_MiniKillCamInfo defaultInstance;
    public static CDOTAUserMsg_MiniKillCamInfo getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_MiniKillCamInfo getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_MiniKillCamInfo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                attackers_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              attackers_.add(input.readMessage(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          attackers_ = java.util.Collections.unmodifiableList(attackers_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_MiniKillCamInfo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_MiniKillCamInfo(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public interface AttackerOrBuilder
        extends com.google.protobuf.MessageOrBuilder {

      // optional uint32 attacker = 1;
      /**
       * optional uint32 attacker = 1;
       */
      boolean hasAttacker();
      /**
       * optional uint32 attacker = 1;
       */
      int getAttacker();

      // optional int32 total_damage = 2;
      /**
       * optional int32 total_damage = 2;
       */
      boolean hasTotalDamage();
      /**
       * optional int32 total_damage = 2;
       */
      int getTotalDamage();

      // repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
       */
      java.util.List 
          getAbilitiesList();
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
       */
      com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability getAbilities(int index);
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
       */
      int getAbilitiesCount();
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
       */
      java.util.List 
          getAbilitiesOrBuilderList();
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
       */
      com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.AbilityOrBuilder getAbilitiesOrBuilder(
          int index);
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_MiniKillCamInfo.Attacker}
     */
    public static final class Attacker extends
        com.google.protobuf.GeneratedMessage
        implements AttackerOrBuilder {
      // Use Attacker.newBuilder() to construct.
      private Attacker(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private Attacker(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final Attacker defaultInstance;
      public static Attacker getDefaultInstance() {
        return defaultInstance;
      }

      public Attacker getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private Attacker(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                attacker_ = input.readUInt32();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                totalDamage_ = input.readInt32();
                break;
              }
              case 26: {
                if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                  abilities_ = new java.util.ArrayList();
                  mutable_bitField0_ |= 0x00000004;
                }
                abilities_.add(input.readMessage(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.PARSER, extensionRegistry));
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
            abilities_ = java.util.Collections.unmodifiableList(abilities_);
          }
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public Attacker parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new Attacker(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      public interface AbilityOrBuilder
          extends com.google.protobuf.MessageOrBuilder {

        // optional uint32 ability = 1;
        /**
         * optional uint32 ability = 1;
         */
        boolean hasAbility();
        /**
         * optional uint32 ability = 1;
         */
        int getAbility();

        // optional int32 damage = 2;
        /**
         * optional int32 damage = 2;
         */
        boolean hasDamage();
        /**
         * optional int32 damage = 2;
         */
        int getDamage();
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability}
       */
      public static final class Ability extends
          com.google.protobuf.GeneratedMessage
          implements AbilityOrBuilder {
        // Use Ability.newBuilder() to construct.
        private Ability(com.google.protobuf.GeneratedMessage.Builder builder) {
          super(builder);
          this.unknownFields = builder.getUnknownFields();
        }
        private Ability(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

        private static final Ability defaultInstance;
        public static Ability getDefaultInstance() {
          return defaultInstance;
        }

        public Ability getDefaultInstanceForType() {
          return defaultInstance;
        }

        private final com.google.protobuf.UnknownFieldSet unknownFields;
        @java.lang.Override
        public final com.google.protobuf.UnknownFieldSet
            getUnknownFields() {
          return this.unknownFields;
        }
        private Ability(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          initFields();
          int mutable_bitField0_ = 0;
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(input, unknownFields,
                                         extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
                case 8: {
                  bitField0_ |= 0x00000001;
                  ability_ = input.readUInt32();
                  break;
                }
                case 16: {
                  bitField0_ |= 0x00000002;
                  damage_ = input.readInt32();
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(this);
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(
                e.getMessage()).setUnfinishedMessage(this);
          } finally {
            this.unknownFields = unknownFields.build();
            makeExtensionsImmutable();
          }
        }
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.Builder.class);
        }

        public static com.google.protobuf.Parser PARSER =
            new com.google.protobuf.AbstractParser() {
          public Ability parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new Ability(input, extensionRegistry);
          }
        };

        @java.lang.Override
        public com.google.protobuf.Parser getParserForType() {
          return PARSER;
        }

        private int bitField0_;
        // optional uint32 ability = 1;
        public static final int ABILITY_FIELD_NUMBER = 1;
        private int ability_;
        /**
         * optional uint32 ability = 1;
         */
        public boolean hasAbility() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional uint32 ability = 1;
         */
        public int getAbility() {
          return ability_;
        }

        // optional int32 damage = 2;
        public static final int DAMAGE_FIELD_NUMBER = 2;
        private int damage_;
        /**
         * optional int32 damage = 2;
         */
        public boolean hasDamage() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional int32 damage = 2;
         */
        public int getDamage() {
          return damage_;
        }

        private void initFields() {
          ability_ = 0;
          damage_ = 0;
        }
        private byte memoizedIsInitialized = -1;
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized != -1) return isInitialized == 1;

          memoizedIsInitialized = 1;
          return true;
        }

        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          getSerializedSize();
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            output.writeUInt32(1, ability_);
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            output.writeInt32(2, damage_);
          }
          getUnknownFields().writeTo(output);
        }

        private int memoizedSerializedSize = -1;
        public int getSerializedSize() {
          int size = memoizedSerializedSize;
          if (size != -1) return size;

          size = 0;
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            size += com.google.protobuf.CodedOutputStream
              .computeUInt32Size(1, ability_);
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            size += com.google.protobuf.CodedOutputStream
              .computeInt32Size(2, damage_);
          }
          size += getUnknownFields().getSerializedSize();
          memoizedSerializedSize = size;
          return size;
        }

        private static final long serialVersionUID = 0L;
        @java.lang.Override
        protected java.lang.Object writeReplace()
            throws java.io.ObjectStreamException {
          return super.writeReplace();
        }

        public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return PARSER.parseFrom(input);
        }
        public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return PARSER.parseFrom(input, extensionRegistry);
        }
        public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return PARSER.parseDelimitedFrom(input);
        }
        public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return PARSER.parseDelimitedFrom(input, extensionRegistry);
        }
        public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return PARSER.parseFrom(input);
        }
        public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return PARSER.parseFrom(input, extensionRegistry);
        }

        public static Builder newBuilder() { return Builder.create(); }
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability prototype) {
          return newBuilder().mergeFrom(prototype);
        }
        public Builder toBuilder() { return newBuilder(this); }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        /**
         * Protobuf type {@code CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessage.Builder
           implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.AbilityOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability_descriptor;
          }

          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.Builder.class);
          }

          // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }

          private Builder(
              com.google.protobuf.GeneratedMessage.BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            }
          }
          private static Builder create() {
            return new Builder();
          }

          public Builder clear() {
            super.clear();
            ability_ = 0;
            bitField0_ = (bitField0_ & ~0x00000001);
            damage_ = 0;
            bitField0_ = (bitField0_ & ~0x00000002);
            return this;
          }

          public Builder clone() {
            return create().mergeFrom(buildPartial());
          }

          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability_descriptor;
          }

          public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability getDefaultInstanceForType() {
            return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.getDefaultInstance();
          }

          public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability build() {
            com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }

          public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability buildPartial() {
            com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability(this);
            int from_bitField0_ = bitField0_;
            int to_bitField0_ = 0;
            if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
              to_bitField0_ |= 0x00000001;
            }
            result.ability_ = ability_;
            if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
              to_bitField0_ |= 0x00000002;
            }
            result.damage_ = damage_;
            result.bitField0_ = to_bitField0_;
            onBuilt();
            return result;
          }

          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability) {
              return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }

          public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability other) {
            if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.getDefaultInstance()) return this;
            if (other.hasAbility()) {
              setAbility(other.getAbility());
            }
            if (other.hasDamage()) {
              setDamage(other.getDamage());
            }
            this.mergeUnknownFields(other.getUnknownFields());
            return this;
          }

          public final boolean isInitialized() {
            return true;
          }

          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability parsedMessage = null;
            try {
              parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability) e.getUnfinishedMessage();
              throw e;
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
          private int bitField0_;

          // optional uint32 ability = 1;
          private int ability_ ;
          /**
           * optional uint32 ability = 1;
           */
          public boolean hasAbility() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
          }
          /**
           * optional uint32 ability = 1;
           */
          public int getAbility() {
            return ability_;
          }
          /**
           * optional uint32 ability = 1;
           */
          public Builder setAbility(int value) {
            bitField0_ |= 0x00000001;
            ability_ = value;
            onChanged();
            return this;
          }
          /**
           * optional uint32 ability = 1;
           */
          public Builder clearAbility() {
            bitField0_ = (bitField0_ & ~0x00000001);
            ability_ = 0;
            onChanged();
            return this;
          }

          // optional int32 damage = 2;
          private int damage_ ;
          /**
           * optional int32 damage = 2;
           */
          public boolean hasDamage() {
            return ((bitField0_ & 0x00000002) == 0x00000002);
          }
          /**
           * optional int32 damage = 2;
           */
          public int getDamage() {
            return damage_;
          }
          /**
           * optional int32 damage = 2;
           */
          public Builder setDamage(int value) {
            bitField0_ |= 0x00000002;
            damage_ = value;
            onChanged();
            return this;
          }
          /**
           * optional int32 damage = 2;
           */
          public Builder clearDamage() {
            bitField0_ = (bitField0_ & ~0x00000002);
            damage_ = 0;
            onChanged();
            return this;
          }

          // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability)
        }

        static {
          defaultInstance = new Ability(true);
          defaultInstance.initFields();
        }

        // @@protoc_insertion_point(class_scope:CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability)
      }

      private int bitField0_;
      // optional uint32 attacker = 1;
      public static final int ATTACKER_FIELD_NUMBER = 1;
      private int attacker_;
      /**
       * optional uint32 attacker = 1;
       */
      public boolean hasAttacker() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 attacker = 1;
       */
      public int getAttacker() {
        return attacker_;
      }

      // optional int32 total_damage = 2;
      public static final int TOTAL_DAMAGE_FIELD_NUMBER = 2;
      private int totalDamage_;
      /**
       * optional int32 total_damage = 2;
       */
      public boolean hasTotalDamage() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 total_damage = 2;
       */
      public int getTotalDamage() {
        return totalDamage_;
      }

      // repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
      public static final int ABILITIES_FIELD_NUMBER = 3;
      private java.util.List abilities_;
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
       */
      public java.util.List getAbilitiesList() {
        return abilities_;
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
       */
      public java.util.List 
          getAbilitiesOrBuilderList() {
        return abilities_;
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
       */
      public int getAbilitiesCount() {
        return abilities_.size();
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability getAbilities(int index) {
        return abilities_.get(index);
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.AbilityOrBuilder getAbilitiesOrBuilder(
          int index) {
        return abilities_.get(index);
      }

      private void initFields() {
        attacker_ = 0;
        totalDamage_ = 0;
        abilities_ = java.util.Collections.emptyList();
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeUInt32(1, attacker_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeInt32(2, totalDamage_);
        }
        for (int i = 0; i < abilities_.size(); i++) {
          output.writeMessage(3, abilities_.get(i));
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(1, attacker_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(2, totalDamage_);
        }
        for (int i = 0; i < abilities_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, abilities_.get(i));
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_MiniKillCamInfo.Attacker}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder
         implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.AttackerOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Builder.class);
        }

        // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getAbilitiesFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          attacker_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          totalDamage_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          if (abilitiesBuilder_ == null) {
            abilities_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            abilitiesBuilder_.clear();
          }
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_descriptor;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker getDefaultInstanceForType() {
          return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.getDefaultInstance();
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker build() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker buildPartial() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.attacker_ = attacker_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.totalDamage_ = totalDamage_;
          if (abilitiesBuilder_ == null) {
            if (((bitField0_ & 0x00000004) == 0x00000004)) {
              abilities_ = java.util.Collections.unmodifiableList(abilities_);
              bitField0_ = (bitField0_ & ~0x00000004);
            }
            result.abilities_ = abilities_;
          } else {
            result.abilities_ = abilitiesBuilder_.build();
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker) {
            return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker other) {
          if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.getDefaultInstance()) return this;
          if (other.hasAttacker()) {
            setAttacker(other.getAttacker());
          }
          if (other.hasTotalDamage()) {
            setTotalDamage(other.getTotalDamage());
          }
          if (abilitiesBuilder_ == null) {
            if (!other.abilities_.isEmpty()) {
              if (abilities_.isEmpty()) {
                abilities_ = other.abilities_;
                bitField0_ = (bitField0_ & ~0x00000004);
              } else {
                ensureAbilitiesIsMutable();
                abilities_.addAll(other.abilities_);
              }
              onChanged();
            }
          } else {
            if (!other.abilities_.isEmpty()) {
              if (abilitiesBuilder_.isEmpty()) {
                abilitiesBuilder_.dispose();
                abilitiesBuilder_ = null;
                abilities_ = other.abilities_;
                bitField0_ = (bitField0_ & ~0x00000004);
                abilitiesBuilder_ = 
                  com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                     getAbilitiesFieldBuilder() : null;
              } else {
                abilitiesBuilder_.addAllMessages(other.abilities_);
              }
            }
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        // optional uint32 attacker = 1;
        private int attacker_ ;
        /**
         * optional uint32 attacker = 1;
         */
        public boolean hasAttacker() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional uint32 attacker = 1;
         */
        public int getAttacker() {
          return attacker_;
        }
        /**
         * optional uint32 attacker = 1;
         */
        public Builder setAttacker(int value) {
          bitField0_ |= 0x00000001;
          attacker_ = value;
          onChanged();
          return this;
        }
        /**
         * optional uint32 attacker = 1;
         */
        public Builder clearAttacker() {
          bitField0_ = (bitField0_ & ~0x00000001);
          attacker_ = 0;
          onChanged();
          return this;
        }

        // optional int32 total_damage = 2;
        private int totalDamage_ ;
        /**
         * optional int32 total_damage = 2;
         */
        public boolean hasTotalDamage() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional int32 total_damage = 2;
         */
        public int getTotalDamage() {
          return totalDamage_;
        }
        /**
         * optional int32 total_damage = 2;
         */
        public Builder setTotalDamage(int value) {
          bitField0_ |= 0x00000002;
          totalDamage_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 total_damage = 2;
         */
        public Builder clearTotalDamage() {
          bitField0_ = (bitField0_ & ~0x00000002);
          totalDamage_ = 0;
          onChanged();
          return this;
        }

        // repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
        private java.util.List abilities_ =
          java.util.Collections.emptyList();
        private void ensureAbilitiesIsMutable() {
          if (!((bitField0_ & 0x00000004) == 0x00000004)) {
            abilities_ = new java.util.ArrayList(abilities_);
            bitField0_ |= 0x00000004;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilder<
            com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.AbilityOrBuilder> abilitiesBuilder_;

        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public java.util.List getAbilitiesList() {
          if (abilitiesBuilder_ == null) {
            return java.util.Collections.unmodifiableList(abilities_);
          } else {
            return abilitiesBuilder_.getMessageList();
          }
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public int getAbilitiesCount() {
          if (abilitiesBuilder_ == null) {
            return abilities_.size();
          } else {
            return abilitiesBuilder_.getCount();
          }
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability getAbilities(int index) {
          if (abilitiesBuilder_ == null) {
            return abilities_.get(index);
          } else {
            return abilitiesBuilder_.getMessage(index);
          }
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public Builder setAbilities(
            int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability value) {
          if (abilitiesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureAbilitiesIsMutable();
            abilities_.set(index, value);
            onChanged();
          } else {
            abilitiesBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public Builder setAbilities(
            int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.Builder builderForValue) {
          if (abilitiesBuilder_ == null) {
            ensureAbilitiesIsMutable();
            abilities_.set(index, builderForValue.build());
            onChanged();
          } else {
            abilitiesBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public Builder addAbilities(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability value) {
          if (abilitiesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureAbilitiesIsMutable();
            abilities_.add(value);
            onChanged();
          } else {
            abilitiesBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public Builder addAbilities(
            int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability value) {
          if (abilitiesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureAbilitiesIsMutable();
            abilities_.add(index, value);
            onChanged();
          } else {
            abilitiesBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public Builder addAbilities(
            com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.Builder builderForValue) {
          if (abilitiesBuilder_ == null) {
            ensureAbilitiesIsMutable();
            abilities_.add(builderForValue.build());
            onChanged();
          } else {
            abilitiesBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public Builder addAbilities(
            int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.Builder builderForValue) {
          if (abilitiesBuilder_ == null) {
            ensureAbilitiesIsMutable();
            abilities_.add(index, builderForValue.build());
            onChanged();
          } else {
            abilitiesBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public Builder addAllAbilities(
            java.lang.Iterable values) {
          if (abilitiesBuilder_ == null) {
            ensureAbilitiesIsMutable();
            super.addAll(values, abilities_);
            onChanged();
          } else {
            abilitiesBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public Builder clearAbilities() {
          if (abilitiesBuilder_ == null) {
            abilities_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000004);
            onChanged();
          } else {
            abilitiesBuilder_.clear();
          }
          return this;
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public Builder removeAbilities(int index) {
          if (abilitiesBuilder_ == null) {
            ensureAbilitiesIsMutable();
            abilities_.remove(index);
            onChanged();
          } else {
            abilitiesBuilder_.remove(index);
          }
          return this;
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.Builder getAbilitiesBuilder(
            int index) {
          return getAbilitiesFieldBuilder().getBuilder(index);
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.AbilityOrBuilder getAbilitiesOrBuilder(
            int index) {
          if (abilitiesBuilder_ == null) {
            return abilities_.get(index);  } else {
            return abilitiesBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public java.util.List 
             getAbilitiesOrBuilderList() {
          if (abilitiesBuilder_ != null) {
            return abilitiesBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(abilities_);
          }
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.Builder addAbilitiesBuilder() {
          return getAbilitiesFieldBuilder().addBuilder(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.getDefaultInstance());
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.Builder addAbilitiesBuilder(
            int index) {
          return getAbilitiesFieldBuilder().addBuilder(
              index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.getDefaultInstance());
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public java.util.List 
             getAbilitiesBuilderList() {
          return getAbilitiesFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilder<
            com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.AbilityOrBuilder> 
            getAbilitiesFieldBuilder() {
          if (abilitiesBuilder_ == null) {
            abilitiesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.AbilityOrBuilder>(
                    abilities_,
                    ((bitField0_ & 0x00000004) == 0x00000004),
                    getParentForChildren(),
                    isClean());
            abilities_ = null;
          }
          return abilitiesBuilder_;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_MiniKillCamInfo.Attacker)
      }

      static {
        defaultInstance = new Attacker(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_MiniKillCamInfo.Attacker)
    }

    // repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
    public static final int ATTACKERS_FIELD_NUMBER = 1;
    private java.util.List attackers_;
    /**
     * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
     */
    public java.util.List getAttackersList() {
      return attackers_;
    }
    /**
     * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
     */
    public java.util.List 
        getAttackersOrBuilderList() {
      return attackers_;
    }
    /**
     * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
     */
    public int getAttackersCount() {
      return attackers_.size();
    }
    /**
     * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker getAttackers(int index) {
      return attackers_.get(index);
    }
    /**
     * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.AttackerOrBuilder getAttackersOrBuilder(
        int index) {
      return attackers_.get(index);
    }

    private void initFields() {
      attackers_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < attackers_.size(); i++) {
        output.writeMessage(1, attackers_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < attackers_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, attackers_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_MiniKillCamInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getAttackersFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (attackersBuilder_ == null) {
          attackers_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          attackersBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo(this);
        int from_bitField0_ = bitField0_;
        if (attackersBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            attackers_ = java.util.Collections.unmodifiableList(attackers_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.attackers_ = attackers_;
        } else {
          result.attackers_ = attackersBuilder_.build();
        }
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.getDefaultInstance()) return this;
        if (attackersBuilder_ == null) {
          if (!other.attackers_.isEmpty()) {
            if (attackers_.isEmpty()) {
              attackers_ = other.attackers_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureAttackersIsMutable();
              attackers_.addAll(other.attackers_);
            }
            onChanged();
          }
        } else {
          if (!other.attackers_.isEmpty()) {
            if (attackersBuilder_.isEmpty()) {
              attackersBuilder_.dispose();
              attackersBuilder_ = null;
              attackers_ = other.attackers_;
              bitField0_ = (bitField0_ & ~0x00000001);
              attackersBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getAttackersFieldBuilder() : null;
            } else {
              attackersBuilder_.addAllMessages(other.attackers_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
      private java.util.List attackers_ =
        java.util.Collections.emptyList();
      private void ensureAttackersIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          attackers_ = new java.util.ArrayList(attackers_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.AttackerOrBuilder> attackersBuilder_;

      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public java.util.List getAttackersList() {
        if (attackersBuilder_ == null) {
          return java.util.Collections.unmodifiableList(attackers_);
        } else {
          return attackersBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public int getAttackersCount() {
        if (attackersBuilder_ == null) {
          return attackers_.size();
        } else {
          return attackersBuilder_.getCount();
        }
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker getAttackers(int index) {
        if (attackersBuilder_ == null) {
          return attackers_.get(index);
        } else {
          return attackersBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public Builder setAttackers(
          int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker value) {
        if (attackersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAttackersIsMutable();
          attackers_.set(index, value);
          onChanged();
        } else {
          attackersBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public Builder setAttackers(
          int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Builder builderForValue) {
        if (attackersBuilder_ == null) {
          ensureAttackersIsMutable();
          attackers_.set(index, builderForValue.build());
          onChanged();
        } else {
          attackersBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public Builder addAttackers(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker value) {
        if (attackersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAttackersIsMutable();
          attackers_.add(value);
          onChanged();
        } else {
          attackersBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public Builder addAttackers(
          int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker value) {
        if (attackersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAttackersIsMutable();
          attackers_.add(index, value);
          onChanged();
        } else {
          attackersBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public Builder addAttackers(
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Builder builderForValue) {
        if (attackersBuilder_ == null) {
          ensureAttackersIsMutable();
          attackers_.add(builderForValue.build());
          onChanged();
        } else {
          attackersBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public Builder addAttackers(
          int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Builder builderForValue) {
        if (attackersBuilder_ == null) {
          ensureAttackersIsMutable();
          attackers_.add(index, builderForValue.build());
          onChanged();
        } else {
          attackersBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public Builder addAllAttackers(
          java.lang.Iterable values) {
        if (attackersBuilder_ == null) {
          ensureAttackersIsMutable();
          super.addAll(values, attackers_);
          onChanged();
        } else {
          attackersBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public Builder clearAttackers() {
        if (attackersBuilder_ == null) {
          attackers_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          attackersBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public Builder removeAttackers(int index) {
        if (attackersBuilder_ == null) {
          ensureAttackersIsMutable();
          attackers_.remove(index);
          onChanged();
        } else {
          attackersBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Builder getAttackersBuilder(
          int index) {
        return getAttackersFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.AttackerOrBuilder getAttackersOrBuilder(
          int index) {
        if (attackersBuilder_ == null) {
          return attackers_.get(index);  } else {
          return attackersBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public java.util.List 
           getAttackersOrBuilderList() {
        if (attackersBuilder_ != null) {
          return attackersBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(attackers_);
        }
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Builder addAttackersBuilder() {
        return getAttackersFieldBuilder().addBuilder(
            com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Builder addAttackersBuilder(
          int index) {
        return getAttackersFieldBuilder().addBuilder(
            index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public java.util.List 
           getAttackersBuilderList() {
        return getAttackersFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.AttackerOrBuilder> 
          getAttackersFieldBuilder() {
        if (attackersBuilder_ == null) {
          attackersBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniKillCamInfo.AttackerOrBuilder>(
                  attackers_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          attackers_ = null;
        }
        return attackersBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_MiniKillCamInfo)
    }

    static {
      defaultInstance = new CDOTAUserMsg_MiniKillCamInfo(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_MiniKillCamInfo)
  }

  public interface CDOTAUserMsg_GlobalLightColorOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional uint32 color = 1;
    /**
     * optional uint32 color = 1;
     */
    boolean hasColor();
    /**
     * optional uint32 color = 1;
     */
    int getColor();

    // optional float duration = 2;
    /**
     * optional float duration = 2;
     */
    boolean hasDuration();
    /**
     * optional float duration = 2;
     */
    float getDuration();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_GlobalLightColor}
   */
  public static final class CDOTAUserMsg_GlobalLightColor extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_GlobalLightColorOrBuilder {
    // Use CDOTAUserMsg_GlobalLightColor.newBuilder() to construct.
    private CDOTAUserMsg_GlobalLightColor(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_GlobalLightColor(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_GlobalLightColor defaultInstance;
    public static CDOTAUserMsg_GlobalLightColor getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_GlobalLightColor getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_GlobalLightColor(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              color_ = input.readUInt32();
              break;
            }
            case 21: {
              bitField0_ |= 0x00000002;
              duration_ = input.readFloat();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_GlobalLightColor_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_GlobalLightColor_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightColor.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightColor.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_GlobalLightColor parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_GlobalLightColor(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional uint32 color = 1;
    public static final int COLOR_FIELD_NUMBER = 1;
    private int color_;
    /**
     * optional uint32 color = 1;
     */
    public boolean hasColor() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 color = 1;
     */
    public int getColor() {
      return color_;
    }

    // optional float duration = 2;
    public static final int DURATION_FIELD_NUMBER = 2;
    private float duration_;
    /**
     * optional float duration = 2;
     */
    public boolean hasDuration() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional float duration = 2;
     */
    public float getDuration() {
      return duration_;
    }

    private void initFields() {
      color_ = 0;
      duration_ = 0F;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, color_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeFloat(2, duration_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, color_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(2, duration_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightColor parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightColor parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightColor parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightColor parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightColor parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightColor parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightColor parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightColor parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightColor parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightColor parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightColor prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_GlobalLightColor}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightColorOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_GlobalLightColor_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_GlobalLightColor_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightColor.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightColor.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightColor.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        color_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        duration_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_GlobalLightColor_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightColor getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightColor.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightColor build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightColor result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightColor buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightColor result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightColor(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.color_ = color_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.duration_ = duration_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightColor) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightColor)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightColor other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightColor.getDefaultInstance()) return this;
        if (other.hasColor()) {
          setColor(other.getColor());
        }
        if (other.hasDuration()) {
          setDuration(other.getDuration());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightColor parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightColor) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional uint32 color = 1;
      private int color_ ;
      /**
       * optional uint32 color = 1;
       */
      public boolean hasColor() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 color = 1;
       */
      public int getColor() {
        return color_;
      }
      /**
       * optional uint32 color = 1;
       */
      public Builder setColor(int value) {
        bitField0_ |= 0x00000001;
        color_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 color = 1;
       */
      public Builder clearColor() {
        bitField0_ = (bitField0_ & ~0x00000001);
        color_ = 0;
        onChanged();
        return this;
      }

      // optional float duration = 2;
      private float duration_ ;
      /**
       * optional float duration = 2;
       */
      public boolean hasDuration() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional float duration = 2;
       */
      public float getDuration() {
        return duration_;
      }
      /**
       * optional float duration = 2;
       */
      public Builder setDuration(float value) {
        bitField0_ |= 0x00000002;
        duration_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float duration = 2;
       */
      public Builder clearDuration() {
        bitField0_ = (bitField0_ & ~0x00000002);
        duration_ = 0F;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_GlobalLightColor)
    }

    static {
      defaultInstance = new CDOTAUserMsg_GlobalLightColor(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_GlobalLightColor)
  }

  public interface CDOTAUserMsg_GlobalLightDirectionOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional .CMsgVector direction = 1;
    /**
     * optional .CMsgVector direction = 1;
     */
    boolean hasDirection();
    /**
     * optional .CMsgVector direction = 1;
     */
    com.dota2.proto.Networkbasetypes.CMsgVector getDirection();
    /**
     * optional .CMsgVector direction = 1;
     */
    com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder getDirectionOrBuilder();

    // optional float duration = 2;
    /**
     * optional float duration = 2;
     */
    boolean hasDuration();
    /**
     * optional float duration = 2;
     */
    float getDuration();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_GlobalLightDirection}
   */
  public static final class CDOTAUserMsg_GlobalLightDirection extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_GlobalLightDirectionOrBuilder {
    // Use CDOTAUserMsg_GlobalLightDirection.newBuilder() to construct.
    private CDOTAUserMsg_GlobalLightDirection(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_GlobalLightDirection(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_GlobalLightDirection defaultInstance;
    public static CDOTAUserMsg_GlobalLightDirection getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_GlobalLightDirection getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_GlobalLightDirection(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.dota2.proto.Networkbasetypes.CMsgVector.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = direction_.toBuilder();
              }
              direction_ = input.readMessage(com.dota2.proto.Networkbasetypes.CMsgVector.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(direction_);
                direction_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 21: {
              bitField0_ |= 0x00000002;
              duration_ = input.readFloat();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_GlobalLightDirection_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_GlobalLightDirection_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightDirection.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightDirection.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_GlobalLightDirection parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_GlobalLightDirection(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional .CMsgVector direction = 1;
    public static final int DIRECTION_FIELD_NUMBER = 1;
    private com.dota2.proto.Networkbasetypes.CMsgVector direction_;
    /**
     * optional .CMsgVector direction = 1;
     */
    public boolean hasDirection() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional .CMsgVector direction = 1;
     */
    public com.dota2.proto.Networkbasetypes.CMsgVector getDirection() {
      return direction_;
    }
    /**
     * optional .CMsgVector direction = 1;
     */
    public com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder getDirectionOrBuilder() {
      return direction_;
    }

    // optional float duration = 2;
    public static final int DURATION_FIELD_NUMBER = 2;
    private float duration_;
    /**
     * optional float duration = 2;
     */
    public boolean hasDuration() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional float duration = 2;
     */
    public float getDuration() {
      return duration_;
    }

    private void initFields() {
      direction_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
      duration_ = 0F;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, direction_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeFloat(2, duration_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, direction_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(2, duration_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightDirection parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightDirection parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightDirection parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightDirection parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightDirection parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightDirection parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightDirection parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightDirection parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightDirection parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightDirection parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightDirection prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_GlobalLightDirection}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightDirectionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_GlobalLightDirection_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_GlobalLightDirection_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightDirection.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightDirection.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightDirection.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getDirectionFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (directionBuilder_ == null) {
          direction_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
        } else {
          directionBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        duration_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_GlobalLightDirection_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightDirection getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightDirection.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightDirection build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightDirection result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightDirection buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightDirection result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightDirection(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (directionBuilder_ == null) {
          result.direction_ = direction_;
        } else {
          result.direction_ = directionBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.duration_ = duration_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightDirection) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightDirection)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightDirection other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightDirection.getDefaultInstance()) return this;
        if (other.hasDirection()) {
          mergeDirection(other.getDirection());
        }
        if (other.hasDuration()) {
          setDuration(other.getDuration());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightDirection parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_GlobalLightDirection) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional .CMsgVector direction = 1;
      private com.dota2.proto.Networkbasetypes.CMsgVector direction_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.Networkbasetypes.CMsgVector, com.dota2.proto.Networkbasetypes.CMsgVector.Builder, com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder> directionBuilder_;
      /**
       * optional .CMsgVector direction = 1;
       */
      public boolean hasDirection() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .CMsgVector direction = 1;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVector getDirection() {
        if (directionBuilder_ == null) {
          return direction_;
        } else {
          return directionBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgVector direction = 1;
       */
      public Builder setDirection(com.dota2.proto.Networkbasetypes.CMsgVector value) {
        if (directionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          direction_ = value;
          onChanged();
        } else {
          directionBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CMsgVector direction = 1;
       */
      public Builder setDirection(
          com.dota2.proto.Networkbasetypes.CMsgVector.Builder builderForValue) {
        if (directionBuilder_ == null) {
          direction_ = builderForValue.build();
          onChanged();
        } else {
          directionBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CMsgVector direction = 1;
       */
      public Builder mergeDirection(com.dota2.proto.Networkbasetypes.CMsgVector value) {
        if (directionBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              direction_ != com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance()) {
            direction_ =
              com.dota2.proto.Networkbasetypes.CMsgVector.newBuilder(direction_).mergeFrom(value).buildPartial();
          } else {
            direction_ = value;
          }
          onChanged();
        } else {
          directionBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CMsgVector direction = 1;
       */
      public Builder clearDirection() {
        if (directionBuilder_ == null) {
          direction_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
          onChanged();
        } else {
          directionBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * optional .CMsgVector direction = 1;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVector.Builder getDirectionBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getDirectionFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgVector direction = 1;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder getDirectionOrBuilder() {
        if (directionBuilder_ != null) {
          return directionBuilder_.getMessageOrBuilder();
        } else {
          return direction_;
        }
      }
      /**
       * optional .CMsgVector direction = 1;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.Networkbasetypes.CMsgVector, com.dota2.proto.Networkbasetypes.CMsgVector.Builder, com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder> 
          getDirectionFieldBuilder() {
        if (directionBuilder_ == null) {
          directionBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.dota2.proto.Networkbasetypes.CMsgVector, com.dota2.proto.Networkbasetypes.CMsgVector.Builder, com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder>(
                  direction_,
                  getParentForChildren(),
                  isClean());
          direction_ = null;
        }
        return directionBuilder_;
      }

      // optional float duration = 2;
      private float duration_ ;
      /**
       * optional float duration = 2;
       */
      public boolean hasDuration() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional float duration = 2;
       */
      public float getDuration() {
        return duration_;
      }
      /**
       * optional float duration = 2;
       */
      public Builder setDuration(float value) {
        bitField0_ |= 0x00000002;
        duration_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float duration = 2;
       */
      public Builder clearDuration() {
        bitField0_ = (bitField0_ & ~0x00000002);
        duration_ = 0F;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_GlobalLightDirection)
    }

    static {
      defaultInstance = new CDOTAUserMsg_GlobalLightDirection(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_GlobalLightDirection)
  }

  public interface CDOTAUserMsg_LocationPingOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional uint32 player_id = 1;
    /**
     * optional uint32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional uint32 player_id = 1;
     */
    int getPlayerId();

    // optional .CDOTAMsg_LocationPing location_ping = 2;
    /**
     * optional .CDOTAMsg_LocationPing location_ping = 2;
     */
    boolean hasLocationPing();
    /**
     * optional .CDOTAMsg_LocationPing location_ping = 2;
     */
    com.dota2.proto.DotaCommonmessages.CDOTAMsg_LocationPing getLocationPing();
    /**
     * optional .CDOTAMsg_LocationPing location_ping = 2;
     */
    com.dota2.proto.DotaCommonmessages.CDOTAMsg_LocationPingOrBuilder getLocationPingOrBuilder();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_LocationPing}
   */
  public static final class CDOTAUserMsg_LocationPing extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_LocationPingOrBuilder {
    // Use CDOTAUserMsg_LocationPing.newBuilder() to construct.
    private CDOTAUserMsg_LocationPing(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_LocationPing(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_LocationPing defaultInstance;
    public static CDOTAUserMsg_LocationPing getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_LocationPing getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_LocationPing(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
            case 18: {
              com.dota2.proto.DotaCommonmessages.CDOTAMsg_LocationPing.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = locationPing_.toBuilder();
              }
              locationPing_ = input.readMessage(com.dota2.proto.DotaCommonmessages.CDOTAMsg_LocationPing.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(locationPing_);
                locationPing_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_LocationPing_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_LocationPing_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_LocationPing.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_LocationPing.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_LocationPing parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_LocationPing(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional uint32 player_id = 1;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional uint32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    // optional .CDOTAMsg_LocationPing location_ping = 2;
    public static final int LOCATION_PING_FIELD_NUMBER = 2;
    private com.dota2.proto.DotaCommonmessages.CDOTAMsg_LocationPing locationPing_;
    /**
     * optional .CDOTAMsg_LocationPing location_ping = 2;
     */
    public boolean hasLocationPing() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional .CDOTAMsg_LocationPing location_ping = 2;
     */
    public com.dota2.proto.DotaCommonmessages.CDOTAMsg_LocationPing getLocationPing() {
      return locationPing_;
    }
    /**
     * optional .CDOTAMsg_LocationPing location_ping = 2;
     */
    public com.dota2.proto.DotaCommonmessages.CDOTAMsg_LocationPingOrBuilder getLocationPingOrBuilder() {
      return locationPing_;
    }

    private void initFields() {
      playerId_ = 0;
      locationPing_ = com.dota2.proto.DotaCommonmessages.CDOTAMsg_LocationPing.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, locationPing_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, locationPing_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_LocationPing parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_LocationPing parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_LocationPing parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_LocationPing parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_LocationPing parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_LocationPing parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_LocationPing parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_LocationPing parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_LocationPing parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_LocationPing parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_LocationPing prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_LocationPing}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_LocationPingOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_LocationPing_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_LocationPing_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_LocationPing.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_LocationPing.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_LocationPing.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getLocationPingFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (locationPingBuilder_ == null) {
          locationPing_ = com.dota2.proto.DotaCommonmessages.CDOTAMsg_LocationPing.getDefaultInstance();
        } else {
          locationPingBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_LocationPing_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_LocationPing getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_LocationPing.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_LocationPing build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_LocationPing result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_LocationPing buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_LocationPing result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_LocationPing(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (locationPingBuilder_ == null) {
          result.locationPing_ = locationPing_;
        } else {
          result.locationPing_ = locationPingBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_LocationPing) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_LocationPing)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_LocationPing other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_LocationPing.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasLocationPing()) {
          mergeLocationPing(other.getLocationPing());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_LocationPing parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_LocationPing) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional uint32 player_id = 1;
      private int playerId_ ;
      /**
       * optional uint32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      // optional .CDOTAMsg_LocationPing location_ping = 2;
      private com.dota2.proto.DotaCommonmessages.CDOTAMsg_LocationPing locationPing_ = com.dota2.proto.DotaCommonmessages.CDOTAMsg_LocationPing.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaCommonmessages.CDOTAMsg_LocationPing, com.dota2.proto.DotaCommonmessages.CDOTAMsg_LocationPing.Builder, com.dota2.proto.DotaCommonmessages.CDOTAMsg_LocationPingOrBuilder> locationPingBuilder_;
      /**
       * optional .CDOTAMsg_LocationPing location_ping = 2;
       */
      public boolean hasLocationPing() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .CDOTAMsg_LocationPing location_ping = 2;
       */
      public com.dota2.proto.DotaCommonmessages.CDOTAMsg_LocationPing getLocationPing() {
        if (locationPingBuilder_ == null) {
          return locationPing_;
        } else {
          return locationPingBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAMsg_LocationPing location_ping = 2;
       */
      public Builder setLocationPing(com.dota2.proto.DotaCommonmessages.CDOTAMsg_LocationPing value) {
        if (locationPingBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          locationPing_ = value;
          onChanged();
        } else {
          locationPingBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_LocationPing location_ping = 2;
       */
      public Builder setLocationPing(
          com.dota2.proto.DotaCommonmessages.CDOTAMsg_LocationPing.Builder builderForValue) {
        if (locationPingBuilder_ == null) {
          locationPing_ = builderForValue.build();
          onChanged();
        } else {
          locationPingBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_LocationPing location_ping = 2;
       */
      public Builder mergeLocationPing(com.dota2.proto.DotaCommonmessages.CDOTAMsg_LocationPing value) {
        if (locationPingBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              locationPing_ != com.dota2.proto.DotaCommonmessages.CDOTAMsg_LocationPing.getDefaultInstance()) {
            locationPing_ =
              com.dota2.proto.DotaCommonmessages.CDOTAMsg_LocationPing.newBuilder(locationPing_).mergeFrom(value).buildPartial();
          } else {
            locationPing_ = value;
          }
          onChanged();
        } else {
          locationPingBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_LocationPing location_ping = 2;
       */
      public Builder clearLocationPing() {
        if (locationPingBuilder_ == null) {
          locationPing_ = com.dota2.proto.DotaCommonmessages.CDOTAMsg_LocationPing.getDefaultInstance();
          onChanged();
        } else {
          locationPingBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * optional .CDOTAMsg_LocationPing location_ping = 2;
       */
      public com.dota2.proto.DotaCommonmessages.CDOTAMsg_LocationPing.Builder getLocationPingBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getLocationPingFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAMsg_LocationPing location_ping = 2;
       */
      public com.dota2.proto.DotaCommonmessages.CDOTAMsg_LocationPingOrBuilder getLocationPingOrBuilder() {
        if (locationPingBuilder_ != null) {
          return locationPingBuilder_.getMessageOrBuilder();
        } else {
          return locationPing_;
        }
      }
      /**
       * optional .CDOTAMsg_LocationPing location_ping = 2;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaCommonmessages.CDOTAMsg_LocationPing, com.dota2.proto.DotaCommonmessages.CDOTAMsg_LocationPing.Builder, com.dota2.proto.DotaCommonmessages.CDOTAMsg_LocationPingOrBuilder> 
          getLocationPingFieldBuilder() {
        if (locationPingBuilder_ == null) {
          locationPingBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.dota2.proto.DotaCommonmessages.CDOTAMsg_LocationPing, com.dota2.proto.DotaCommonmessages.CDOTAMsg_LocationPing.Builder, com.dota2.proto.DotaCommonmessages.CDOTAMsg_LocationPingOrBuilder>(
                  locationPing_,
                  getParentForChildren(),
                  isClean());
          locationPing_ = null;
        }
        return locationPingBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_LocationPing)
    }

    static {
      defaultInstance = new CDOTAUserMsg_LocationPing(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_LocationPing)
  }

  public interface CDOTAUserMsg_ItemAlertOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional uint32 player_id = 1;
    /**
     * optional uint32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional uint32 player_id = 1;
     */
    int getPlayerId();

    // optional .CDOTAMsg_ItemAlert item_alert = 2;
    /**
     * optional .CDOTAMsg_ItemAlert item_alert = 2;
     */
    boolean hasItemAlert();
    /**
     * optional .CDOTAMsg_ItemAlert item_alert = 2;
     */
    com.dota2.proto.DotaCommonmessages.CDOTAMsg_ItemAlert getItemAlert();
    /**
     * optional .CDOTAMsg_ItemAlert item_alert = 2;
     */
    com.dota2.proto.DotaCommonmessages.CDOTAMsg_ItemAlertOrBuilder getItemAlertOrBuilder();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ItemAlert}
   */
  public static final class CDOTAUserMsg_ItemAlert extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_ItemAlertOrBuilder {
    // Use CDOTAUserMsg_ItemAlert.newBuilder() to construct.
    private CDOTAUserMsg_ItemAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ItemAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ItemAlert defaultInstance;
    public static CDOTAUserMsg_ItemAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ItemAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ItemAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
            case 18: {
              com.dota2.proto.DotaCommonmessages.CDOTAMsg_ItemAlert.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = itemAlert_.toBuilder();
              }
              itemAlert_ = input.readMessage(com.dota2.proto.DotaCommonmessages.CDOTAMsg_ItemAlert.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(itemAlert_);
                itemAlert_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ItemAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ItemAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemAlert.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ItemAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ItemAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional uint32 player_id = 1;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional uint32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    // optional .CDOTAMsg_ItemAlert item_alert = 2;
    public static final int ITEM_ALERT_FIELD_NUMBER = 2;
    private com.dota2.proto.DotaCommonmessages.CDOTAMsg_ItemAlert itemAlert_;
    /**
     * optional .CDOTAMsg_ItemAlert item_alert = 2;
     */
    public boolean hasItemAlert() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional .CDOTAMsg_ItemAlert item_alert = 2;
     */
    public com.dota2.proto.DotaCommonmessages.CDOTAMsg_ItemAlert getItemAlert() {
      return itemAlert_;
    }
    /**
     * optional .CDOTAMsg_ItemAlert item_alert = 2;
     */
    public com.dota2.proto.DotaCommonmessages.CDOTAMsg_ItemAlertOrBuilder getItemAlertOrBuilder() {
      return itemAlert_;
    }

    private void initFields() {
      playerId_ = 0;
      itemAlert_ = com.dota2.proto.DotaCommonmessages.CDOTAMsg_ItemAlert.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, itemAlert_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, itemAlert_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ItemAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ItemAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ItemAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemAlert.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemAlert.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getItemAlertFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (itemAlertBuilder_ == null) {
          itemAlert_ = com.dota2.proto.DotaCommonmessages.CDOTAMsg_ItemAlert.getDefaultInstance();
        } else {
          itemAlertBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ItemAlert_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemAlert getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemAlert.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemAlert build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemAlert buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemAlert result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (itemAlertBuilder_ == null) {
          result.itemAlert_ = itemAlert_;
        } else {
          result.itemAlert_ = itemAlertBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemAlert) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemAlert other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemAlert.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasItemAlert()) {
          mergeItemAlert(other.getItemAlert());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional uint32 player_id = 1;
      private int playerId_ ;
      /**
       * optional uint32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      // optional .CDOTAMsg_ItemAlert item_alert = 2;
      private com.dota2.proto.DotaCommonmessages.CDOTAMsg_ItemAlert itemAlert_ = com.dota2.proto.DotaCommonmessages.CDOTAMsg_ItemAlert.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaCommonmessages.CDOTAMsg_ItemAlert, com.dota2.proto.DotaCommonmessages.CDOTAMsg_ItemAlert.Builder, com.dota2.proto.DotaCommonmessages.CDOTAMsg_ItemAlertOrBuilder> itemAlertBuilder_;
      /**
       * optional .CDOTAMsg_ItemAlert item_alert = 2;
       */
      public boolean hasItemAlert() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .CDOTAMsg_ItemAlert item_alert = 2;
       */
      public com.dota2.proto.DotaCommonmessages.CDOTAMsg_ItemAlert getItemAlert() {
        if (itemAlertBuilder_ == null) {
          return itemAlert_;
        } else {
          return itemAlertBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAMsg_ItemAlert item_alert = 2;
       */
      public Builder setItemAlert(com.dota2.proto.DotaCommonmessages.CDOTAMsg_ItemAlert value) {
        if (itemAlertBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          itemAlert_ = value;
          onChanged();
        } else {
          itemAlertBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_ItemAlert item_alert = 2;
       */
      public Builder setItemAlert(
          com.dota2.proto.DotaCommonmessages.CDOTAMsg_ItemAlert.Builder builderForValue) {
        if (itemAlertBuilder_ == null) {
          itemAlert_ = builderForValue.build();
          onChanged();
        } else {
          itemAlertBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_ItemAlert item_alert = 2;
       */
      public Builder mergeItemAlert(com.dota2.proto.DotaCommonmessages.CDOTAMsg_ItemAlert value) {
        if (itemAlertBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              itemAlert_ != com.dota2.proto.DotaCommonmessages.CDOTAMsg_ItemAlert.getDefaultInstance()) {
            itemAlert_ =
              com.dota2.proto.DotaCommonmessages.CDOTAMsg_ItemAlert.newBuilder(itemAlert_).mergeFrom(value).buildPartial();
          } else {
            itemAlert_ = value;
          }
          onChanged();
        } else {
          itemAlertBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_ItemAlert item_alert = 2;
       */
      public Builder clearItemAlert() {
        if (itemAlertBuilder_ == null) {
          itemAlert_ = com.dota2.proto.DotaCommonmessages.CDOTAMsg_ItemAlert.getDefaultInstance();
          onChanged();
        } else {
          itemAlertBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * optional .CDOTAMsg_ItemAlert item_alert = 2;
       */
      public com.dota2.proto.DotaCommonmessages.CDOTAMsg_ItemAlert.Builder getItemAlertBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getItemAlertFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAMsg_ItemAlert item_alert = 2;
       */
      public com.dota2.proto.DotaCommonmessages.CDOTAMsg_ItemAlertOrBuilder getItemAlertOrBuilder() {
        if (itemAlertBuilder_ != null) {
          return itemAlertBuilder_.getMessageOrBuilder();
        } else {
          return itemAlert_;
        }
      }
      /**
       * optional .CDOTAMsg_ItemAlert item_alert = 2;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaCommonmessages.CDOTAMsg_ItemAlert, com.dota2.proto.DotaCommonmessages.CDOTAMsg_ItemAlert.Builder, com.dota2.proto.DotaCommonmessages.CDOTAMsg_ItemAlertOrBuilder> 
          getItemAlertFieldBuilder() {
        if (itemAlertBuilder_ == null) {
          itemAlertBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.dota2.proto.DotaCommonmessages.CDOTAMsg_ItemAlert, com.dota2.proto.DotaCommonmessages.CDOTAMsg_ItemAlert.Builder, com.dota2.proto.DotaCommonmessages.CDOTAMsg_ItemAlertOrBuilder>(
                  itemAlert_,
                  getParentForChildren(),
                  isClean());
          itemAlert_ = null;
        }
        return itemAlertBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ItemAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ItemAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ItemAlert)
  }

  public interface CDOTAUserMsg_EnemyItemAlertOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional uint32 player_id = 1;
    /**
     * optional uint32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional uint32 player_id = 1;
     */
    int getPlayerId();

    // optional .CDOTAMsg_EnemyItemAlert enemy_item_alert = 2;
    /**
     * optional .CDOTAMsg_EnemyItemAlert enemy_item_alert = 2;
     */
    boolean hasEnemyItemAlert();
    /**
     * optional .CDOTAMsg_EnemyItemAlert enemy_item_alert = 2;
     */
    com.dota2.proto.DotaCommonmessages.CDOTAMsg_EnemyItemAlert getEnemyItemAlert();
    /**
     * optional .CDOTAMsg_EnemyItemAlert enemy_item_alert = 2;
     */
    com.dota2.proto.DotaCommonmessages.CDOTAMsg_EnemyItemAlertOrBuilder getEnemyItemAlertOrBuilder();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_EnemyItemAlert}
   */
  public static final class CDOTAUserMsg_EnemyItemAlert extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_EnemyItemAlertOrBuilder {
    // Use CDOTAUserMsg_EnemyItemAlert.newBuilder() to construct.
    private CDOTAUserMsg_EnemyItemAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_EnemyItemAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_EnemyItemAlert defaultInstance;
    public static CDOTAUserMsg_EnemyItemAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_EnemyItemAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_EnemyItemAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
            case 18: {
              com.dota2.proto.DotaCommonmessages.CDOTAMsg_EnemyItemAlert.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = enemyItemAlert_.toBuilder();
              }
              enemyItemAlert_ = input.readMessage(com.dota2.proto.DotaCommonmessages.CDOTAMsg_EnemyItemAlert.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(enemyItemAlert_);
                enemyItemAlert_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_EnemyItemAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_EnemyItemAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_EnemyItemAlert.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_EnemyItemAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_EnemyItemAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_EnemyItemAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional uint32 player_id = 1;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional uint32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    // optional .CDOTAMsg_EnemyItemAlert enemy_item_alert = 2;
    public static final int ENEMY_ITEM_ALERT_FIELD_NUMBER = 2;
    private com.dota2.proto.DotaCommonmessages.CDOTAMsg_EnemyItemAlert enemyItemAlert_;
    /**
     * optional .CDOTAMsg_EnemyItemAlert enemy_item_alert = 2;
     */
    public boolean hasEnemyItemAlert() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional .CDOTAMsg_EnemyItemAlert enemy_item_alert = 2;
     */
    public com.dota2.proto.DotaCommonmessages.CDOTAMsg_EnemyItemAlert getEnemyItemAlert() {
      return enemyItemAlert_;
    }
    /**
     * optional .CDOTAMsg_EnemyItemAlert enemy_item_alert = 2;
     */
    public com.dota2.proto.DotaCommonmessages.CDOTAMsg_EnemyItemAlertOrBuilder getEnemyItemAlertOrBuilder() {
      return enemyItemAlert_;
    }

    private void initFields() {
      playerId_ = 0;
      enemyItemAlert_ = com.dota2.proto.DotaCommonmessages.CDOTAMsg_EnemyItemAlert.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, enemyItemAlert_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, enemyItemAlert_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_EnemyItemAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_EnemyItemAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_EnemyItemAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_EnemyItemAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_EnemyItemAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_EnemyItemAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_EnemyItemAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_EnemyItemAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_EnemyItemAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_EnemyItemAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_EnemyItemAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_EnemyItemAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_EnemyItemAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_EnemyItemAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_EnemyItemAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_EnemyItemAlert.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_EnemyItemAlert.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_EnemyItemAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getEnemyItemAlertFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (enemyItemAlertBuilder_ == null) {
          enemyItemAlert_ = com.dota2.proto.DotaCommonmessages.CDOTAMsg_EnemyItemAlert.getDefaultInstance();
        } else {
          enemyItemAlertBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_EnemyItemAlert_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_EnemyItemAlert getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_EnemyItemAlert.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_EnemyItemAlert build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_EnemyItemAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_EnemyItemAlert buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_EnemyItemAlert result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_EnemyItemAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (enemyItemAlertBuilder_ == null) {
          result.enemyItemAlert_ = enemyItemAlert_;
        } else {
          result.enemyItemAlert_ = enemyItemAlertBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_EnemyItemAlert) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_EnemyItemAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_EnemyItemAlert other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_EnemyItemAlert.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasEnemyItemAlert()) {
          mergeEnemyItemAlert(other.getEnemyItemAlert());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_EnemyItemAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_EnemyItemAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional uint32 player_id = 1;
      private int playerId_ ;
      /**
       * optional uint32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      // optional .CDOTAMsg_EnemyItemAlert enemy_item_alert = 2;
      private com.dota2.proto.DotaCommonmessages.CDOTAMsg_EnemyItemAlert enemyItemAlert_ = com.dota2.proto.DotaCommonmessages.CDOTAMsg_EnemyItemAlert.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaCommonmessages.CDOTAMsg_EnemyItemAlert, com.dota2.proto.DotaCommonmessages.CDOTAMsg_EnemyItemAlert.Builder, com.dota2.proto.DotaCommonmessages.CDOTAMsg_EnemyItemAlertOrBuilder> enemyItemAlertBuilder_;
      /**
       * optional .CDOTAMsg_EnemyItemAlert enemy_item_alert = 2;
       */
      public boolean hasEnemyItemAlert() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .CDOTAMsg_EnemyItemAlert enemy_item_alert = 2;
       */
      public com.dota2.proto.DotaCommonmessages.CDOTAMsg_EnemyItemAlert getEnemyItemAlert() {
        if (enemyItemAlertBuilder_ == null) {
          return enemyItemAlert_;
        } else {
          return enemyItemAlertBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAMsg_EnemyItemAlert enemy_item_alert = 2;
       */
      public Builder setEnemyItemAlert(com.dota2.proto.DotaCommonmessages.CDOTAMsg_EnemyItemAlert value) {
        if (enemyItemAlertBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          enemyItemAlert_ = value;
          onChanged();
        } else {
          enemyItemAlertBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_EnemyItemAlert enemy_item_alert = 2;
       */
      public Builder setEnemyItemAlert(
          com.dota2.proto.DotaCommonmessages.CDOTAMsg_EnemyItemAlert.Builder builderForValue) {
        if (enemyItemAlertBuilder_ == null) {
          enemyItemAlert_ = builderForValue.build();
          onChanged();
        } else {
          enemyItemAlertBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_EnemyItemAlert enemy_item_alert = 2;
       */
      public Builder mergeEnemyItemAlert(com.dota2.proto.DotaCommonmessages.CDOTAMsg_EnemyItemAlert value) {
        if (enemyItemAlertBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              enemyItemAlert_ != com.dota2.proto.DotaCommonmessages.CDOTAMsg_EnemyItemAlert.getDefaultInstance()) {
            enemyItemAlert_ =
              com.dota2.proto.DotaCommonmessages.CDOTAMsg_EnemyItemAlert.newBuilder(enemyItemAlert_).mergeFrom(value).buildPartial();
          } else {
            enemyItemAlert_ = value;
          }
          onChanged();
        } else {
          enemyItemAlertBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_EnemyItemAlert enemy_item_alert = 2;
       */
      public Builder clearEnemyItemAlert() {
        if (enemyItemAlertBuilder_ == null) {
          enemyItemAlert_ = com.dota2.proto.DotaCommonmessages.CDOTAMsg_EnemyItemAlert.getDefaultInstance();
          onChanged();
        } else {
          enemyItemAlertBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * optional .CDOTAMsg_EnemyItemAlert enemy_item_alert = 2;
       */
      public com.dota2.proto.DotaCommonmessages.CDOTAMsg_EnemyItemAlert.Builder getEnemyItemAlertBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getEnemyItemAlertFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAMsg_EnemyItemAlert enemy_item_alert = 2;
       */
      public com.dota2.proto.DotaCommonmessages.CDOTAMsg_EnemyItemAlertOrBuilder getEnemyItemAlertOrBuilder() {
        if (enemyItemAlertBuilder_ != null) {
          return enemyItemAlertBuilder_.getMessageOrBuilder();
        } else {
          return enemyItemAlert_;
        }
      }
      /**
       * optional .CDOTAMsg_EnemyItemAlert enemy_item_alert = 2;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaCommonmessages.CDOTAMsg_EnemyItemAlert, com.dota2.proto.DotaCommonmessages.CDOTAMsg_EnemyItemAlert.Builder, com.dota2.proto.DotaCommonmessages.CDOTAMsg_EnemyItemAlertOrBuilder> 
          getEnemyItemAlertFieldBuilder() {
        if (enemyItemAlertBuilder_ == null) {
          enemyItemAlertBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.dota2.proto.DotaCommonmessages.CDOTAMsg_EnemyItemAlert, com.dota2.proto.DotaCommonmessages.CDOTAMsg_EnemyItemAlert.Builder, com.dota2.proto.DotaCommonmessages.CDOTAMsg_EnemyItemAlertOrBuilder>(
                  enemyItemAlert_,
                  getParentForChildren(),
                  isClean());
          enemyItemAlert_ = null;
        }
        return enemyItemAlertBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_EnemyItemAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_EnemyItemAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_EnemyItemAlert)
  }

  public interface CDOTAUserMsg_WillPurchaseAlertOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional int32 itemid = 1;
    /**
     * optional int32 itemid = 1;
     */
    boolean hasItemid();
    /**
     * optional int32 itemid = 1;
     */
    int getItemid();

    // optional int32 player_id = 2;
    /**
     * optional int32 player_id = 2;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 2;
     */
    int getPlayerId();

    // optional uint32 gold_remaining = 3;
    /**
     * optional uint32 gold_remaining = 3;
     */
    boolean hasGoldRemaining();
    /**
     * optional uint32 gold_remaining = 3;
     */
    int getGoldRemaining();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_WillPurchaseAlert}
   */
  public static final class CDOTAUserMsg_WillPurchaseAlert extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_WillPurchaseAlertOrBuilder {
    // Use CDOTAUserMsg_WillPurchaseAlert.newBuilder() to construct.
    private CDOTAUserMsg_WillPurchaseAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_WillPurchaseAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_WillPurchaseAlert defaultInstance;
    public static CDOTAUserMsg_WillPurchaseAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_WillPurchaseAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_WillPurchaseAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              itemid_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              goldRemaining_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_WillPurchaseAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_WillPurchaseAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WillPurchaseAlert.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WillPurchaseAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_WillPurchaseAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_WillPurchaseAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional int32 itemid = 1;
    public static final int ITEMID_FIELD_NUMBER = 1;
    private int itemid_;
    /**
     * optional int32 itemid = 1;
     */
    public boolean hasItemid() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 itemid = 1;
     */
    public int getItemid() {
      return itemid_;
    }

    // optional int32 player_id = 2;
    public static final int PLAYER_ID_FIELD_NUMBER = 2;
    private int playerId_;
    /**
     * optional int32 player_id = 2;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 player_id = 2;
     */
    public int getPlayerId() {
      return playerId_;
    }

    // optional uint32 gold_remaining = 3;
    public static final int GOLD_REMAINING_FIELD_NUMBER = 3;
    private int goldRemaining_;
    /**
     * optional uint32 gold_remaining = 3;
     */
    public boolean hasGoldRemaining() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 gold_remaining = 3;
     */
    public int getGoldRemaining() {
      return goldRemaining_;
    }

    private void initFields() {
      itemid_ = 0;
      playerId_ = 0;
      goldRemaining_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, itemid_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, goldRemaining_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, itemid_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, goldRemaining_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WillPurchaseAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WillPurchaseAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WillPurchaseAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WillPurchaseAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WillPurchaseAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WillPurchaseAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WillPurchaseAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WillPurchaseAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WillPurchaseAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WillPurchaseAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WillPurchaseAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_WillPurchaseAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WillPurchaseAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_WillPurchaseAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_WillPurchaseAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WillPurchaseAlert.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WillPurchaseAlert.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WillPurchaseAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        itemid_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        goldRemaining_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_WillPurchaseAlert_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WillPurchaseAlert getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WillPurchaseAlert.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WillPurchaseAlert build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WillPurchaseAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WillPurchaseAlert buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WillPurchaseAlert result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WillPurchaseAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.itemid_ = itemid_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.goldRemaining_ = goldRemaining_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WillPurchaseAlert) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WillPurchaseAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WillPurchaseAlert other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WillPurchaseAlert.getDefaultInstance()) return this;
        if (other.hasItemid()) {
          setItemid(other.getItemid());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasGoldRemaining()) {
          setGoldRemaining(other.getGoldRemaining());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WillPurchaseAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WillPurchaseAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional int32 itemid = 1;
      private int itemid_ ;
      /**
       * optional int32 itemid = 1;
       */
      public boolean hasItemid() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 itemid = 1;
       */
      public int getItemid() {
        return itemid_;
      }
      /**
       * optional int32 itemid = 1;
       */
      public Builder setItemid(int value) {
        bitField0_ |= 0x00000001;
        itemid_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 itemid = 1;
       */
      public Builder clearItemid() {
        bitField0_ = (bitField0_ & ~0x00000001);
        itemid_ = 0;
        onChanged();
        return this;
      }

      // optional int32 player_id = 2;
      private int playerId_ ;
      /**
       * optional int32 player_id = 2;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 player_id = 2;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 2;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 2;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        onChanged();
        return this;
      }

      // optional uint32 gold_remaining = 3;
      private int goldRemaining_ ;
      /**
       * optional uint32 gold_remaining = 3;
       */
      public boolean hasGoldRemaining() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 gold_remaining = 3;
       */
      public int getGoldRemaining() {
        return goldRemaining_;
      }
      /**
       * optional uint32 gold_remaining = 3;
       */
      public Builder setGoldRemaining(int value) {
        bitField0_ |= 0x00000004;
        goldRemaining_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 gold_remaining = 3;
       */
      public Builder clearGoldRemaining() {
        bitField0_ = (bitField0_ & ~0x00000004);
        goldRemaining_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_WillPurchaseAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_WillPurchaseAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_WillPurchaseAlert)
  }

  public interface CDOTAUserMsg_BuyBackStateAlertOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional int32 player_id = 1;
    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_BuyBackStateAlert}
   */
  public static final class CDOTAUserMsg_BuyBackStateAlert extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_BuyBackStateAlertOrBuilder {
    // Use CDOTAUserMsg_BuyBackStateAlert.newBuilder() to construct.
    private CDOTAUserMsg_BuyBackStateAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_BuyBackStateAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_BuyBackStateAlert defaultInstance;
    public static CDOTAUserMsg_BuyBackStateAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_BuyBackStateAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_BuyBackStateAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_BuyBackStateAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_BuyBackStateAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BuyBackStateAlert.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BuyBackStateAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_BuyBackStateAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_BuyBackStateAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional int32 player_id = 1;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    private void initFields() {
      playerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BuyBackStateAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BuyBackStateAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BuyBackStateAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BuyBackStateAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BuyBackStateAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BuyBackStateAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BuyBackStateAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BuyBackStateAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BuyBackStateAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BuyBackStateAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BuyBackStateAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_BuyBackStateAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BuyBackStateAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_BuyBackStateAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_BuyBackStateAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BuyBackStateAlert.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BuyBackStateAlert.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BuyBackStateAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_BuyBackStateAlert_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BuyBackStateAlert getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BuyBackStateAlert.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BuyBackStateAlert build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BuyBackStateAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BuyBackStateAlert buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BuyBackStateAlert result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BuyBackStateAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BuyBackStateAlert) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BuyBackStateAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BuyBackStateAlert other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BuyBackStateAlert.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BuyBackStateAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BuyBackStateAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional int32 player_id = 1;
      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_BuyBackStateAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_BuyBackStateAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_BuyBackStateAlert)
  }

  public interface CDOTAUserMsg_QuickBuyAlertOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional int32 player_id = 1;
    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    // optional int32 itemid = 2;
    /**
     * optional int32 itemid = 2;
     */
    boolean hasItemid();
    /**
     * optional int32 itemid = 2;
     */
    int getItemid();

    // optional int32 gold_required = 3;
    /**
     * optional int32 gold_required = 3;
     */
    boolean hasGoldRequired();
    /**
     * optional int32 gold_required = 3;
     */
    int getGoldRequired();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_QuickBuyAlert}
   */
  public static final class CDOTAUserMsg_QuickBuyAlert extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_QuickBuyAlertOrBuilder {
    // Use CDOTAUserMsg_QuickBuyAlert.newBuilder() to construct.
    private CDOTAUserMsg_QuickBuyAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_QuickBuyAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_QuickBuyAlert defaultInstance;
    public static CDOTAUserMsg_QuickBuyAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_QuickBuyAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_QuickBuyAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              itemid_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              goldRequired_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_QuickBuyAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_QuickBuyAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_QuickBuyAlert.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_QuickBuyAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_QuickBuyAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_QuickBuyAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional int32 player_id = 1;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    // optional int32 itemid = 2;
    public static final int ITEMID_FIELD_NUMBER = 2;
    private int itemid_;
    /**
     * optional int32 itemid = 2;
     */
    public boolean hasItemid() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 itemid = 2;
     */
    public int getItemid() {
      return itemid_;
    }

    // optional int32 gold_required = 3;
    public static final int GOLD_REQUIRED_FIELD_NUMBER = 3;
    private int goldRequired_;
    /**
     * optional int32 gold_required = 3;
     */
    public boolean hasGoldRequired() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 gold_required = 3;
     */
    public int getGoldRequired() {
      return goldRequired_;
    }

    private void initFields() {
      playerId_ = 0;
      itemid_ = 0;
      goldRequired_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, itemid_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, goldRequired_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, itemid_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, goldRequired_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_QuickBuyAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_QuickBuyAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_QuickBuyAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_QuickBuyAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_QuickBuyAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_QuickBuyAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_QuickBuyAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_QuickBuyAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_QuickBuyAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_QuickBuyAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_QuickBuyAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_QuickBuyAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_QuickBuyAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_QuickBuyAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_QuickBuyAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_QuickBuyAlert.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_QuickBuyAlert.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_QuickBuyAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        itemid_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        goldRequired_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_QuickBuyAlert_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_QuickBuyAlert getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_QuickBuyAlert.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_QuickBuyAlert build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_QuickBuyAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_QuickBuyAlert buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_QuickBuyAlert result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_QuickBuyAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.itemid_ = itemid_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.goldRequired_ = goldRequired_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_QuickBuyAlert) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_QuickBuyAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_QuickBuyAlert other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_QuickBuyAlert.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasItemid()) {
          setItemid(other.getItemid());
        }
        if (other.hasGoldRequired()) {
          setGoldRequired(other.getGoldRequired());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_QuickBuyAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_QuickBuyAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional int32 player_id = 1;
      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      // optional int32 itemid = 2;
      private int itemid_ ;
      /**
       * optional int32 itemid = 2;
       */
      public boolean hasItemid() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 itemid = 2;
       */
      public int getItemid() {
        return itemid_;
      }
      /**
       * optional int32 itemid = 2;
       */
      public Builder setItemid(int value) {
        bitField0_ |= 0x00000002;
        itemid_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 itemid = 2;
       */
      public Builder clearItemid() {
        bitField0_ = (bitField0_ & ~0x00000002);
        itemid_ = 0;
        onChanged();
        return this;
      }

      // optional int32 gold_required = 3;
      private int goldRequired_ ;
      /**
       * optional int32 gold_required = 3;
       */
      public boolean hasGoldRequired() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 gold_required = 3;
       */
      public int getGoldRequired() {
        return goldRequired_;
      }
      /**
       * optional int32 gold_required = 3;
       */
      public Builder setGoldRequired(int value) {
        bitField0_ |= 0x00000004;
        goldRequired_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 gold_required = 3;
       */
      public Builder clearGoldRequired() {
        bitField0_ = (bitField0_ & ~0x00000004);
        goldRequired_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_QuickBuyAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_QuickBuyAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_QuickBuyAlert)
  }

  public interface CDOTAUserMsg_CourierKilledAlertOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional uint32 team = 1;
    /**
     * optional uint32 team = 1;
     */
    boolean hasTeam();
    /**
     * optional uint32 team = 1;
     */
    int getTeam();

    // optional uint32 gold_value = 2;
    /**
     * optional uint32 gold_value = 2;
     */
    boolean hasGoldValue();
    /**
     * optional uint32 gold_value = 2;
     */
    int getGoldValue();

    // optional int32 entity_handle = 3;
    /**
     * optional int32 entity_handle = 3;
     */
    boolean hasEntityHandle();
    /**
     * optional int32 entity_handle = 3;
     */
    int getEntityHandle();

    // optional int32 timestamp = 4;
    /**
     * optional int32 timestamp = 4;
     */
    boolean hasTimestamp();
    /**
     * optional int32 timestamp = 4;
     */
    int getTimestamp();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_CourierKilledAlert}
   */
  public static final class CDOTAUserMsg_CourierKilledAlert extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_CourierKilledAlertOrBuilder {
    // Use CDOTAUserMsg_CourierKilledAlert.newBuilder() to construct.
    private CDOTAUserMsg_CourierKilledAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_CourierKilledAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_CourierKilledAlert defaultInstance;
    public static CDOTAUserMsg_CourierKilledAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_CourierKilledAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_CourierKilledAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              team_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              goldValue_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              entityHandle_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              timestamp_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_CourierKilledAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_CourierKilledAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CourierKilledAlert.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CourierKilledAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_CourierKilledAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_CourierKilledAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional uint32 team = 1;
    public static final int TEAM_FIELD_NUMBER = 1;
    private int team_;
    /**
     * optional uint32 team = 1;
     */
    public boolean hasTeam() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 team = 1;
     */
    public int getTeam() {
      return team_;
    }

    // optional uint32 gold_value = 2;
    public static final int GOLD_VALUE_FIELD_NUMBER = 2;
    private int goldValue_;
    /**
     * optional uint32 gold_value = 2;
     */
    public boolean hasGoldValue() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 gold_value = 2;
     */
    public int getGoldValue() {
      return goldValue_;
    }

    // optional int32 entity_handle = 3;
    public static final int ENTITY_HANDLE_FIELD_NUMBER = 3;
    private int entityHandle_;
    /**
     * optional int32 entity_handle = 3;
     */
    public boolean hasEntityHandle() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 entity_handle = 3;
     */
    public int getEntityHandle() {
      return entityHandle_;
    }

    // optional int32 timestamp = 4;
    public static final int TIMESTAMP_FIELD_NUMBER = 4;
    private int timestamp_;
    /**
     * optional int32 timestamp = 4;
     */
    public boolean hasTimestamp() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 timestamp = 4;
     */
    public int getTimestamp() {
      return timestamp_;
    }

    private void initFields() {
      team_ = 0;
      goldValue_ = 0;
      entityHandle_ = 0;
      timestamp_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, team_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, goldValue_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, entityHandle_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, timestamp_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, team_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, goldValue_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, entityHandle_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, timestamp_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CourierKilledAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CourierKilledAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CourierKilledAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CourierKilledAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CourierKilledAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CourierKilledAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CourierKilledAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CourierKilledAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CourierKilledAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CourierKilledAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CourierKilledAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_CourierKilledAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CourierKilledAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_CourierKilledAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_CourierKilledAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CourierKilledAlert.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CourierKilledAlert.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CourierKilledAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        team_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        goldValue_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        entityHandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        timestamp_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_CourierKilledAlert_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CourierKilledAlert getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CourierKilledAlert.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CourierKilledAlert build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CourierKilledAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CourierKilledAlert buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CourierKilledAlert result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CourierKilledAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.team_ = team_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.goldValue_ = goldValue_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.entityHandle_ = entityHandle_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.timestamp_ = timestamp_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CourierKilledAlert) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CourierKilledAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CourierKilledAlert other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CourierKilledAlert.getDefaultInstance()) return this;
        if (other.hasTeam()) {
          setTeam(other.getTeam());
        }
        if (other.hasGoldValue()) {
          setGoldValue(other.getGoldValue());
        }
        if (other.hasEntityHandle()) {
          setEntityHandle(other.getEntityHandle());
        }
        if (other.hasTimestamp()) {
          setTimestamp(other.getTimestamp());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CourierKilledAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CourierKilledAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional uint32 team = 1;
      private int team_ ;
      /**
       * optional uint32 team = 1;
       */
      public boolean hasTeam() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 team = 1;
       */
      public int getTeam() {
        return team_;
      }
      /**
       * optional uint32 team = 1;
       */
      public Builder setTeam(int value) {
        bitField0_ |= 0x00000001;
        team_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 team = 1;
       */
      public Builder clearTeam() {
        bitField0_ = (bitField0_ & ~0x00000001);
        team_ = 0;
        onChanged();
        return this;
      }

      // optional uint32 gold_value = 2;
      private int goldValue_ ;
      /**
       * optional uint32 gold_value = 2;
       */
      public boolean hasGoldValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 gold_value = 2;
       */
      public int getGoldValue() {
        return goldValue_;
      }
      /**
       * optional uint32 gold_value = 2;
       */
      public Builder setGoldValue(int value) {
        bitField0_ |= 0x00000002;
        goldValue_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 gold_value = 2;
       */
      public Builder clearGoldValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        goldValue_ = 0;
        onChanged();
        return this;
      }

      // optional int32 entity_handle = 3;
      private int entityHandle_ ;
      /**
       * optional int32 entity_handle = 3;
       */
      public boolean hasEntityHandle() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 entity_handle = 3;
       */
      public int getEntityHandle() {
        return entityHandle_;
      }
      /**
       * optional int32 entity_handle = 3;
       */
      public Builder setEntityHandle(int value) {
        bitField0_ |= 0x00000004;
        entityHandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 entity_handle = 3;
       */
      public Builder clearEntityHandle() {
        bitField0_ = (bitField0_ & ~0x00000004);
        entityHandle_ = 0;
        onChanged();
        return this;
      }

      // optional int32 timestamp = 4;
      private int timestamp_ ;
      /**
       * optional int32 timestamp = 4;
       */
      public boolean hasTimestamp() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 timestamp = 4;
       */
      public int getTimestamp() {
        return timestamp_;
      }
      /**
       * optional int32 timestamp = 4;
       */
      public Builder setTimestamp(int value) {
        bitField0_ |= 0x00000008;
        timestamp_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 timestamp = 4;
       */
      public Builder clearTimestamp() {
        bitField0_ = (bitField0_ & ~0x00000008);
        timestamp_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_CourierKilledAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_CourierKilledAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_CourierKilledAlert)
  }

  public interface CDOTAUserMsg_MinimapEventOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional int32 event_type = 1;
    /**
     * optional int32 event_type = 1;
     */
    boolean hasEventType();
    /**
     * optional int32 event_type = 1;
     */
    int getEventType();

    // optional int32 entity_handle = 2;
    /**
     * optional int32 entity_handle = 2;
     */
    boolean hasEntityHandle();
    /**
     * optional int32 entity_handle = 2;
     */
    int getEntityHandle();

    // optional int32 x = 3;
    /**
     * optional int32 x = 3;
     */
    boolean hasX();
    /**
     * optional int32 x = 3;
     */
    int getX();

    // optional int32 y = 4;
    /**
     * optional int32 y = 4;
     */
    boolean hasY();
    /**
     * optional int32 y = 4;
     */
    int getY();

    // optional int32 duration = 5;
    /**
     * optional int32 duration = 5;
     */
    boolean hasDuration();
    /**
     * optional int32 duration = 5;
     */
    int getDuration();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_MinimapEvent}
   */
  public static final class CDOTAUserMsg_MinimapEvent extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_MinimapEventOrBuilder {
    // Use CDOTAUserMsg_MinimapEvent.newBuilder() to construct.
    private CDOTAUserMsg_MinimapEvent(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_MinimapEvent(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_MinimapEvent defaultInstance;
    public static CDOTAUserMsg_MinimapEvent getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_MinimapEvent getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_MinimapEvent(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              eventType_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              entityHandle_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              x_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              y_ = input.readInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              duration_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_MinimapEvent_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_MinimapEvent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapEvent.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapEvent.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_MinimapEvent parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_MinimapEvent(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional int32 event_type = 1;
    public static final int EVENT_TYPE_FIELD_NUMBER = 1;
    private int eventType_;
    /**
     * optional int32 event_type = 1;
     */
    public boolean hasEventType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 event_type = 1;
     */
    public int getEventType() {
      return eventType_;
    }

    // optional int32 entity_handle = 2;
    public static final int ENTITY_HANDLE_FIELD_NUMBER = 2;
    private int entityHandle_;
    /**
     * optional int32 entity_handle = 2;
     */
    public boolean hasEntityHandle() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 entity_handle = 2;
     */
    public int getEntityHandle() {
      return entityHandle_;
    }

    // optional int32 x = 3;
    public static final int X_FIELD_NUMBER = 3;
    private int x_;
    /**
     * optional int32 x = 3;
     */
    public boolean hasX() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 x = 3;
     */
    public int getX() {
      return x_;
    }

    // optional int32 y = 4;
    public static final int Y_FIELD_NUMBER = 4;
    private int y_;
    /**
     * optional int32 y = 4;
     */
    public boolean hasY() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 y = 4;
     */
    public int getY() {
      return y_;
    }

    // optional int32 duration = 5;
    public static final int DURATION_FIELD_NUMBER = 5;
    private int duration_;
    /**
     * optional int32 duration = 5;
     */
    public boolean hasDuration() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional int32 duration = 5;
     */
    public int getDuration() {
      return duration_;
    }

    private void initFields() {
      eventType_ = 0;
      entityHandle_ = 0;
      x_ = 0;
      y_ = 0;
      duration_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, eventType_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, entityHandle_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, x_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, y_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt32(5, duration_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, eventType_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, entityHandle_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, x_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, y_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, duration_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapEvent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapEvent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapEvent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapEvent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapEvent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapEvent parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapEvent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapEvent parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapEvent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapEvent parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapEvent prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_MinimapEvent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapEventOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_MinimapEvent_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_MinimapEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapEvent.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapEvent.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapEvent.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        eventType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        entityHandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        x_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        y_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        duration_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_MinimapEvent_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapEvent getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapEvent.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapEvent build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapEvent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapEvent buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapEvent result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapEvent(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.eventType_ = eventType_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.entityHandle_ = entityHandle_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.x_ = x_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.y_ = y_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.duration_ = duration_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapEvent) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapEvent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapEvent other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapEvent.getDefaultInstance()) return this;
        if (other.hasEventType()) {
          setEventType(other.getEventType());
        }
        if (other.hasEntityHandle()) {
          setEntityHandle(other.getEntityHandle());
        }
        if (other.hasX()) {
          setX(other.getX());
        }
        if (other.hasY()) {
          setY(other.getY());
        }
        if (other.hasDuration()) {
          setDuration(other.getDuration());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapEvent parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapEvent) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional int32 event_type = 1;
      private int eventType_ ;
      /**
       * optional int32 event_type = 1;
       */
      public boolean hasEventType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 event_type = 1;
       */
      public int getEventType() {
        return eventType_;
      }
      /**
       * optional int32 event_type = 1;
       */
      public Builder setEventType(int value) {
        bitField0_ |= 0x00000001;
        eventType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 event_type = 1;
       */
      public Builder clearEventType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        eventType_ = 0;
        onChanged();
        return this;
      }

      // optional int32 entity_handle = 2;
      private int entityHandle_ ;
      /**
       * optional int32 entity_handle = 2;
       */
      public boolean hasEntityHandle() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 entity_handle = 2;
       */
      public int getEntityHandle() {
        return entityHandle_;
      }
      /**
       * optional int32 entity_handle = 2;
       */
      public Builder setEntityHandle(int value) {
        bitField0_ |= 0x00000002;
        entityHandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 entity_handle = 2;
       */
      public Builder clearEntityHandle() {
        bitField0_ = (bitField0_ & ~0x00000002);
        entityHandle_ = 0;
        onChanged();
        return this;
      }

      // optional int32 x = 3;
      private int x_ ;
      /**
       * optional int32 x = 3;
       */
      public boolean hasX() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 x = 3;
       */
      public int getX() {
        return x_;
      }
      /**
       * optional int32 x = 3;
       */
      public Builder setX(int value) {
        bitField0_ |= 0x00000004;
        x_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 x = 3;
       */
      public Builder clearX() {
        bitField0_ = (bitField0_ & ~0x00000004);
        x_ = 0;
        onChanged();
        return this;
      }

      // optional int32 y = 4;
      private int y_ ;
      /**
       * optional int32 y = 4;
       */
      public boolean hasY() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 y = 4;
       */
      public int getY() {
        return y_;
      }
      /**
       * optional int32 y = 4;
       */
      public Builder setY(int value) {
        bitField0_ |= 0x00000008;
        y_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 y = 4;
       */
      public Builder clearY() {
        bitField0_ = (bitField0_ & ~0x00000008);
        y_ = 0;
        onChanged();
        return this;
      }

      // optional int32 duration = 5;
      private int duration_ ;
      /**
       * optional int32 duration = 5;
       */
      public boolean hasDuration() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional int32 duration = 5;
       */
      public int getDuration() {
        return duration_;
      }
      /**
       * optional int32 duration = 5;
       */
      public Builder setDuration(int value) {
        bitField0_ |= 0x00000010;
        duration_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 duration = 5;
       */
      public Builder clearDuration() {
        bitField0_ = (bitField0_ & ~0x00000010);
        duration_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_MinimapEvent)
    }

    static {
      defaultInstance = new CDOTAUserMsg_MinimapEvent(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_MinimapEvent)
  }

  public interface CDOTAUserMsg_TournamentDropOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional string deprecated_winner_name = 1;
    /**
     * optional string deprecated_winner_name = 1;
     */
    boolean hasDeprecatedWinnerName();
    /**
     * optional string deprecated_winner_name = 1;
     */
    java.lang.String getDeprecatedWinnerName();
    /**
     * optional string deprecated_winner_name = 1;
     */
    com.google.protobuf.ByteString
        getDeprecatedWinnerNameBytes();

    // optional int32 deprecated_event_type = 2;
    /**
     * optional int32 deprecated_event_type = 2;
     */
    boolean hasDeprecatedEventType();
    /**
     * optional int32 deprecated_event_type = 2;
     */
    int getDeprecatedEventType();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_TournamentDrop}
   */
  public static final class CDOTAUserMsg_TournamentDrop extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_TournamentDropOrBuilder {
    // Use CDOTAUserMsg_TournamentDrop.newBuilder() to construct.
    private CDOTAUserMsg_TournamentDrop(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_TournamentDrop(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_TournamentDrop defaultInstance;
    public static CDOTAUserMsg_TournamentDrop getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_TournamentDrop getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_TournamentDrop(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              deprecatedWinnerName_ = input.readBytes();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              deprecatedEventType_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_TournamentDrop_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_TournamentDrop_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TournamentDrop.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TournamentDrop.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_TournamentDrop parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_TournamentDrop(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional string deprecated_winner_name = 1;
    public static final int DEPRECATED_WINNER_NAME_FIELD_NUMBER = 1;
    private java.lang.Object deprecatedWinnerName_;
    /**
     * optional string deprecated_winner_name = 1;
     */
    public boolean hasDeprecatedWinnerName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional string deprecated_winner_name = 1;
     */
    public java.lang.String getDeprecatedWinnerName() {
      java.lang.Object ref = deprecatedWinnerName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          deprecatedWinnerName_ = s;
        }
        return s;
      }
    }
    /**
     * optional string deprecated_winner_name = 1;
     */
    public com.google.protobuf.ByteString
        getDeprecatedWinnerNameBytes() {
      java.lang.Object ref = deprecatedWinnerName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        deprecatedWinnerName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional int32 deprecated_event_type = 2;
    public static final int DEPRECATED_EVENT_TYPE_FIELD_NUMBER = 2;
    private int deprecatedEventType_;
    /**
     * optional int32 deprecated_event_type = 2;
     */
    public boolean hasDeprecatedEventType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 deprecated_event_type = 2;
     */
    public int getDeprecatedEventType() {
      return deprecatedEventType_;
    }

    private void initFields() {
      deprecatedWinnerName_ = "";
      deprecatedEventType_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getDeprecatedWinnerNameBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, deprecatedEventType_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getDeprecatedWinnerNameBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, deprecatedEventType_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TournamentDrop parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TournamentDrop parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TournamentDrop parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TournamentDrop parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TournamentDrop parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TournamentDrop parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TournamentDrop parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TournamentDrop parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TournamentDrop parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TournamentDrop parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TournamentDrop prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_TournamentDrop}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TournamentDropOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_TournamentDrop_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_TournamentDrop_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TournamentDrop.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TournamentDrop.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TournamentDrop.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        deprecatedWinnerName_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        deprecatedEventType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_TournamentDrop_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TournamentDrop getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TournamentDrop.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TournamentDrop build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TournamentDrop result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TournamentDrop buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TournamentDrop result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TournamentDrop(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.deprecatedWinnerName_ = deprecatedWinnerName_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.deprecatedEventType_ = deprecatedEventType_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TournamentDrop) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TournamentDrop)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TournamentDrop other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TournamentDrop.getDefaultInstance()) return this;
        if (other.hasDeprecatedWinnerName()) {
          bitField0_ |= 0x00000001;
          deprecatedWinnerName_ = other.deprecatedWinnerName_;
          onChanged();
        }
        if (other.hasDeprecatedEventType()) {
          setDeprecatedEventType(other.getDeprecatedEventType());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TournamentDrop parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TournamentDrop) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional string deprecated_winner_name = 1;
      private java.lang.Object deprecatedWinnerName_ = "";
      /**
       * optional string deprecated_winner_name = 1;
       */
      public boolean hasDeprecatedWinnerName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional string deprecated_winner_name = 1;
       */
      public java.lang.String getDeprecatedWinnerName() {
        java.lang.Object ref = deprecatedWinnerName_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          deprecatedWinnerName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string deprecated_winner_name = 1;
       */
      public com.google.protobuf.ByteString
          getDeprecatedWinnerNameBytes() {
        java.lang.Object ref = deprecatedWinnerName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          deprecatedWinnerName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string deprecated_winner_name = 1;
       */
      public Builder setDeprecatedWinnerName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        deprecatedWinnerName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string deprecated_winner_name = 1;
       */
      public Builder clearDeprecatedWinnerName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        deprecatedWinnerName_ = getDefaultInstance().getDeprecatedWinnerName();
        onChanged();
        return this;
      }
      /**
       * optional string deprecated_winner_name = 1;
       */
      public Builder setDeprecatedWinnerNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        deprecatedWinnerName_ = value;
        onChanged();
        return this;
      }

      // optional int32 deprecated_event_type = 2;
      private int deprecatedEventType_ ;
      /**
       * optional int32 deprecated_event_type = 2;
       */
      public boolean hasDeprecatedEventType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 deprecated_event_type = 2;
       */
      public int getDeprecatedEventType() {
        return deprecatedEventType_;
      }
      /**
       * optional int32 deprecated_event_type = 2;
       */
      public Builder setDeprecatedEventType(int value) {
        bitField0_ |= 0x00000002;
        deprecatedEventType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 deprecated_event_type = 2;
       */
      public Builder clearDeprecatedEventType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        deprecatedEventType_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_TournamentDrop)
    }

    static {
      defaultInstance = new CDOTAUserMsg_TournamentDrop(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_TournamentDrop)
  }

  public interface CDOTAUserMsg_MapLineOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional int32 player_id = 1;
    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    // optional .CDOTAMsg_MapLine mapline = 2;
    /**
     * optional .CDOTAMsg_MapLine mapline = 2;
     */
    boolean hasMapline();
    /**
     * optional .CDOTAMsg_MapLine mapline = 2;
     */
    com.dota2.proto.DotaCommonmessages.CDOTAMsg_MapLine getMapline();
    /**
     * optional .CDOTAMsg_MapLine mapline = 2;
     */
    com.dota2.proto.DotaCommonmessages.CDOTAMsg_MapLineOrBuilder getMaplineOrBuilder();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_MapLine}
   */
  public static final class CDOTAUserMsg_MapLine extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_MapLineOrBuilder {
    // Use CDOTAUserMsg_MapLine.newBuilder() to construct.
    private CDOTAUserMsg_MapLine(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_MapLine(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_MapLine defaultInstance;
    public static CDOTAUserMsg_MapLine getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_MapLine getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_MapLine(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 18: {
              com.dota2.proto.DotaCommonmessages.CDOTAMsg_MapLine.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = mapline_.toBuilder();
              }
              mapline_ = input.readMessage(com.dota2.proto.DotaCommonmessages.CDOTAMsg_MapLine.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(mapline_);
                mapline_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_MapLine_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_MapLine_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MapLine.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MapLine.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_MapLine parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_MapLine(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional int32 player_id = 1;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    // optional .CDOTAMsg_MapLine mapline = 2;
    public static final int MAPLINE_FIELD_NUMBER = 2;
    private com.dota2.proto.DotaCommonmessages.CDOTAMsg_MapLine mapline_;
    /**
     * optional .CDOTAMsg_MapLine mapline = 2;
     */
    public boolean hasMapline() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional .CDOTAMsg_MapLine mapline = 2;
     */
    public com.dota2.proto.DotaCommonmessages.CDOTAMsg_MapLine getMapline() {
      return mapline_;
    }
    /**
     * optional .CDOTAMsg_MapLine mapline = 2;
     */
    public com.dota2.proto.DotaCommonmessages.CDOTAMsg_MapLineOrBuilder getMaplineOrBuilder() {
      return mapline_;
    }

    private void initFields() {
      playerId_ = 0;
      mapline_ = com.dota2.proto.DotaCommonmessages.CDOTAMsg_MapLine.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, mapline_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, mapline_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MapLine parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MapLine parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MapLine parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MapLine parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MapLine parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MapLine parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MapLine parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MapLine parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MapLine parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MapLine parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MapLine prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_MapLine}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MapLineOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_MapLine_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_MapLine_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MapLine.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MapLine.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MapLine.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getMaplineFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (maplineBuilder_ == null) {
          mapline_ = com.dota2.proto.DotaCommonmessages.CDOTAMsg_MapLine.getDefaultInstance();
        } else {
          maplineBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_MapLine_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MapLine getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MapLine.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MapLine build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MapLine result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MapLine buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MapLine result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MapLine(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (maplineBuilder_ == null) {
          result.mapline_ = mapline_;
        } else {
          result.mapline_ = maplineBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MapLine) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MapLine)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MapLine other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MapLine.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasMapline()) {
          mergeMapline(other.getMapline());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MapLine parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MapLine) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional int32 player_id = 1;
      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      // optional .CDOTAMsg_MapLine mapline = 2;
      private com.dota2.proto.DotaCommonmessages.CDOTAMsg_MapLine mapline_ = com.dota2.proto.DotaCommonmessages.CDOTAMsg_MapLine.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaCommonmessages.CDOTAMsg_MapLine, com.dota2.proto.DotaCommonmessages.CDOTAMsg_MapLine.Builder, com.dota2.proto.DotaCommonmessages.CDOTAMsg_MapLineOrBuilder> maplineBuilder_;
      /**
       * optional .CDOTAMsg_MapLine mapline = 2;
       */
      public boolean hasMapline() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .CDOTAMsg_MapLine mapline = 2;
       */
      public com.dota2.proto.DotaCommonmessages.CDOTAMsg_MapLine getMapline() {
        if (maplineBuilder_ == null) {
          return mapline_;
        } else {
          return maplineBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAMsg_MapLine mapline = 2;
       */
      public Builder setMapline(com.dota2.proto.DotaCommonmessages.CDOTAMsg_MapLine value) {
        if (maplineBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          mapline_ = value;
          onChanged();
        } else {
          maplineBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_MapLine mapline = 2;
       */
      public Builder setMapline(
          com.dota2.proto.DotaCommonmessages.CDOTAMsg_MapLine.Builder builderForValue) {
        if (maplineBuilder_ == null) {
          mapline_ = builderForValue.build();
          onChanged();
        } else {
          maplineBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_MapLine mapline = 2;
       */
      public Builder mergeMapline(com.dota2.proto.DotaCommonmessages.CDOTAMsg_MapLine value) {
        if (maplineBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              mapline_ != com.dota2.proto.DotaCommonmessages.CDOTAMsg_MapLine.getDefaultInstance()) {
            mapline_ =
              com.dota2.proto.DotaCommonmessages.CDOTAMsg_MapLine.newBuilder(mapline_).mergeFrom(value).buildPartial();
          } else {
            mapline_ = value;
          }
          onChanged();
        } else {
          maplineBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_MapLine mapline = 2;
       */
      public Builder clearMapline() {
        if (maplineBuilder_ == null) {
          mapline_ = com.dota2.proto.DotaCommonmessages.CDOTAMsg_MapLine.getDefaultInstance();
          onChanged();
        } else {
          maplineBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * optional .CDOTAMsg_MapLine mapline = 2;
       */
      public com.dota2.proto.DotaCommonmessages.CDOTAMsg_MapLine.Builder getMaplineBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getMaplineFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAMsg_MapLine mapline = 2;
       */
      public com.dota2.proto.DotaCommonmessages.CDOTAMsg_MapLineOrBuilder getMaplineOrBuilder() {
        if (maplineBuilder_ != null) {
          return maplineBuilder_.getMessageOrBuilder();
        } else {
          return mapline_;
        }
      }
      /**
       * optional .CDOTAMsg_MapLine mapline = 2;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaCommonmessages.CDOTAMsg_MapLine, com.dota2.proto.DotaCommonmessages.CDOTAMsg_MapLine.Builder, com.dota2.proto.DotaCommonmessages.CDOTAMsg_MapLineOrBuilder> 
          getMaplineFieldBuilder() {
        if (maplineBuilder_ == null) {
          maplineBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.dota2.proto.DotaCommonmessages.CDOTAMsg_MapLine, com.dota2.proto.DotaCommonmessages.CDOTAMsg_MapLine.Builder, com.dota2.proto.DotaCommonmessages.CDOTAMsg_MapLineOrBuilder>(
                  mapline_,
                  getParentForChildren(),
                  isClean());
          mapline_ = null;
        }
        return maplineBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_MapLine)
    }

    static {
      defaultInstance = new CDOTAUserMsg_MapLine(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_MapLine)
  }

  public interface CDOTAUserMsg_MinimapDebugPointOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional .CMsgVector location = 1;
    /**
     * optional .CMsgVector location = 1;
     */
    boolean hasLocation();
    /**
     * optional .CMsgVector location = 1;
     */
    com.dota2.proto.Networkbasetypes.CMsgVector getLocation();
    /**
     * optional .CMsgVector location = 1;
     */
    com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder getLocationOrBuilder();

    // optional uint32 color = 2;
    /**
     * optional uint32 color = 2;
     */
    boolean hasColor();
    /**
     * optional uint32 color = 2;
     */
    int getColor();

    // optional int32 size = 3;
    /**
     * optional int32 size = 3;
     */
    boolean hasSize();
    /**
     * optional int32 size = 3;
     */
    int getSize();

    // optional float duration = 4;
    /**
     * optional float duration = 4;
     */
    boolean hasDuration();
    /**
     * optional float duration = 4;
     */
    float getDuration();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_MinimapDebugPoint}
   */
  public static final class CDOTAUserMsg_MinimapDebugPoint extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_MinimapDebugPointOrBuilder {
    // Use CDOTAUserMsg_MinimapDebugPoint.newBuilder() to construct.
    private CDOTAUserMsg_MinimapDebugPoint(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_MinimapDebugPoint(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_MinimapDebugPoint defaultInstance;
    public static CDOTAUserMsg_MinimapDebugPoint getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_MinimapDebugPoint getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_MinimapDebugPoint(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.dota2.proto.Networkbasetypes.CMsgVector.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = location_.toBuilder();
              }
              location_ = input.readMessage(com.dota2.proto.Networkbasetypes.CMsgVector.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(location_);
                location_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              color_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              size_ = input.readInt32();
              break;
            }
            case 37: {
              bitField0_ |= 0x00000008;
              duration_ = input.readFloat();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_MinimapDebugPoint_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_MinimapDebugPoint_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapDebugPoint.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapDebugPoint.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_MinimapDebugPoint parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_MinimapDebugPoint(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional .CMsgVector location = 1;
    public static final int LOCATION_FIELD_NUMBER = 1;
    private com.dota2.proto.Networkbasetypes.CMsgVector location_;
    /**
     * optional .CMsgVector location = 1;
     */
    public boolean hasLocation() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional .CMsgVector location = 1;
     */
    public com.dota2.proto.Networkbasetypes.CMsgVector getLocation() {
      return location_;
    }
    /**
     * optional .CMsgVector location = 1;
     */
    public com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder getLocationOrBuilder() {
      return location_;
    }

    // optional uint32 color = 2;
    public static final int COLOR_FIELD_NUMBER = 2;
    private int color_;
    /**
     * optional uint32 color = 2;
     */
    public boolean hasColor() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 color = 2;
     */
    public int getColor() {
      return color_;
    }

    // optional int32 size = 3;
    public static final int SIZE_FIELD_NUMBER = 3;
    private int size_;
    /**
     * optional int32 size = 3;
     */
    public boolean hasSize() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 size = 3;
     */
    public int getSize() {
      return size_;
    }

    // optional float duration = 4;
    public static final int DURATION_FIELD_NUMBER = 4;
    private float duration_;
    /**
     * optional float duration = 4;
     */
    public boolean hasDuration() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional float duration = 4;
     */
    public float getDuration() {
      return duration_;
    }

    private void initFields() {
      location_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
      color_ = 0;
      size_ = 0;
      duration_ = 0F;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, location_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, color_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, size_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeFloat(4, duration_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, location_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, color_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, size_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(4, duration_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapDebugPoint parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapDebugPoint parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapDebugPoint parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapDebugPoint parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapDebugPoint parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapDebugPoint parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapDebugPoint parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapDebugPoint parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapDebugPoint parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapDebugPoint parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapDebugPoint prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_MinimapDebugPoint}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapDebugPointOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_MinimapDebugPoint_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_MinimapDebugPoint_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapDebugPoint.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapDebugPoint.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapDebugPoint.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getLocationFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (locationBuilder_ == null) {
          location_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
        } else {
          locationBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        color_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        size_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        duration_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_MinimapDebugPoint_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapDebugPoint getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapDebugPoint.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapDebugPoint build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapDebugPoint result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapDebugPoint buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapDebugPoint result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapDebugPoint(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (locationBuilder_ == null) {
          result.location_ = location_;
        } else {
          result.location_ = locationBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.color_ = color_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.size_ = size_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.duration_ = duration_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapDebugPoint) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapDebugPoint)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapDebugPoint other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapDebugPoint.getDefaultInstance()) return this;
        if (other.hasLocation()) {
          mergeLocation(other.getLocation());
        }
        if (other.hasColor()) {
          setColor(other.getColor());
        }
        if (other.hasSize()) {
          setSize(other.getSize());
        }
        if (other.hasDuration()) {
          setDuration(other.getDuration());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapDebugPoint parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MinimapDebugPoint) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional .CMsgVector location = 1;
      private com.dota2.proto.Networkbasetypes.CMsgVector location_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.Networkbasetypes.CMsgVector, com.dota2.proto.Networkbasetypes.CMsgVector.Builder, com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder> locationBuilder_;
      /**
       * optional .CMsgVector location = 1;
       */
      public boolean hasLocation() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .CMsgVector location = 1;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVector getLocation() {
        if (locationBuilder_ == null) {
          return location_;
        } else {
          return locationBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgVector location = 1;
       */
      public Builder setLocation(com.dota2.proto.Networkbasetypes.CMsgVector value) {
        if (locationBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          location_ = value;
          onChanged();
        } else {
          locationBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CMsgVector location = 1;
       */
      public Builder setLocation(
          com.dota2.proto.Networkbasetypes.CMsgVector.Builder builderForValue) {
        if (locationBuilder_ == null) {
          location_ = builderForValue.build();
          onChanged();
        } else {
          locationBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CMsgVector location = 1;
       */
      public Builder mergeLocation(com.dota2.proto.Networkbasetypes.CMsgVector value) {
        if (locationBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              location_ != com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance()) {
            location_ =
              com.dota2.proto.Networkbasetypes.CMsgVector.newBuilder(location_).mergeFrom(value).buildPartial();
          } else {
            location_ = value;
          }
          onChanged();
        } else {
          locationBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CMsgVector location = 1;
       */
      public Builder clearLocation() {
        if (locationBuilder_ == null) {
          location_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
          onChanged();
        } else {
          locationBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * optional .CMsgVector location = 1;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVector.Builder getLocationBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getLocationFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgVector location = 1;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder getLocationOrBuilder() {
        if (locationBuilder_ != null) {
          return locationBuilder_.getMessageOrBuilder();
        } else {
          return location_;
        }
      }
      /**
       * optional .CMsgVector location = 1;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.Networkbasetypes.CMsgVector, com.dota2.proto.Networkbasetypes.CMsgVector.Builder, com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder> 
          getLocationFieldBuilder() {
        if (locationBuilder_ == null) {
          locationBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.dota2.proto.Networkbasetypes.CMsgVector, com.dota2.proto.Networkbasetypes.CMsgVector.Builder, com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder>(
                  location_,
                  getParentForChildren(),
                  isClean());
          location_ = null;
        }
        return locationBuilder_;
      }

      // optional uint32 color = 2;
      private int color_ ;
      /**
       * optional uint32 color = 2;
       */
      public boolean hasColor() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 color = 2;
       */
      public int getColor() {
        return color_;
      }
      /**
       * optional uint32 color = 2;
       */
      public Builder setColor(int value) {
        bitField0_ |= 0x00000002;
        color_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 color = 2;
       */
      public Builder clearColor() {
        bitField0_ = (bitField0_ & ~0x00000002);
        color_ = 0;
        onChanged();
        return this;
      }

      // optional int32 size = 3;
      private int size_ ;
      /**
       * optional int32 size = 3;
       */
      public boolean hasSize() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 size = 3;
       */
      public int getSize() {
        return size_;
      }
      /**
       * optional int32 size = 3;
       */
      public Builder setSize(int value) {
        bitField0_ |= 0x00000004;
        size_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 size = 3;
       */
      public Builder clearSize() {
        bitField0_ = (bitField0_ & ~0x00000004);
        size_ = 0;
        onChanged();
        return this;
      }

      // optional float duration = 4;
      private float duration_ ;
      /**
       * optional float duration = 4;
       */
      public boolean hasDuration() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional float duration = 4;
       */
      public float getDuration() {
        return duration_;
      }
      /**
       * optional float duration = 4;
       */
      public Builder setDuration(float value) {
        bitField0_ |= 0x00000008;
        duration_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float duration = 4;
       */
      public Builder clearDuration() {
        bitField0_ = (bitField0_ & ~0x00000008);
        duration_ = 0F;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_MinimapDebugPoint)
    }

    static {
      defaultInstance = new CDOTAUserMsg_MinimapDebugPoint(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_MinimapDebugPoint)
  }

  public interface CDOTAUserMsg_CreateLinearProjectileOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional .CMsgVector origin = 1;
    /**
     * optional .CMsgVector origin = 1;
     */
    boolean hasOrigin();
    /**
     * optional .CMsgVector origin = 1;
     */
    com.dota2.proto.Networkbasetypes.CMsgVector getOrigin();
    /**
     * optional .CMsgVector origin = 1;
     */
    com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder getOriginOrBuilder();

    // optional .CMsgVector2D velocity = 2;
    /**
     * optional .CMsgVector2D velocity = 2;
     */
    boolean hasVelocity();
    /**
     * optional .CMsgVector2D velocity = 2;
     */
    com.dota2.proto.Networkbasetypes.CMsgVector2D getVelocity();
    /**
     * optional .CMsgVector2D velocity = 2;
     */
    com.dota2.proto.Networkbasetypes.CMsgVector2DOrBuilder getVelocityOrBuilder();

    // optional int32 latency = 3;
    /**
     * optional int32 latency = 3;
     */
    boolean hasLatency();
    /**
     * optional int32 latency = 3;
     */
    int getLatency();

    // optional int32 entindex = 4;
    /**
     * optional int32 entindex = 4;
     */
    boolean hasEntindex();
    /**
     * optional int32 entindex = 4;
     */
    int getEntindex();

    // optional int32 particle_index = 5;
    /**
     * optional int32 particle_index = 5;
     */
    boolean hasParticleIndex();
    /**
     * optional int32 particle_index = 5;
     */
    int getParticleIndex();

    // optional int32 handle = 6;
    /**
     * optional int32 handle = 6;
     */
    boolean hasHandle();
    /**
     * optional int32 handle = 6;
     */
    int getHandle();

    // optional .CMsgVector2D acceleration = 7;
    /**
     * optional .CMsgVector2D acceleration = 7;
     */
    boolean hasAcceleration();
    /**
     * optional .CMsgVector2D acceleration = 7;
     */
    com.dota2.proto.Networkbasetypes.CMsgVector2D getAcceleration();
    /**
     * optional .CMsgVector2D acceleration = 7;
     */
    com.dota2.proto.Networkbasetypes.CMsgVector2DOrBuilder getAccelerationOrBuilder();

    // optional float max_speed = 8;
    /**
     * optional float max_speed = 8;
     */
    boolean hasMaxSpeed();
    /**
     * optional float max_speed = 8;
     */
    float getMaxSpeed();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_CreateLinearProjectile}
   */
  public static final class CDOTAUserMsg_CreateLinearProjectile extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_CreateLinearProjectileOrBuilder {
    // Use CDOTAUserMsg_CreateLinearProjectile.newBuilder() to construct.
    private CDOTAUserMsg_CreateLinearProjectile(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_CreateLinearProjectile(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_CreateLinearProjectile defaultInstance;
    public static CDOTAUserMsg_CreateLinearProjectile getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_CreateLinearProjectile getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_CreateLinearProjectile(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.dota2.proto.Networkbasetypes.CMsgVector.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = origin_.toBuilder();
              }
              origin_ = input.readMessage(com.dota2.proto.Networkbasetypes.CMsgVector.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(origin_);
                origin_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              com.dota2.proto.Networkbasetypes.CMsgVector2D.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = velocity_.toBuilder();
              }
              velocity_ = input.readMessage(com.dota2.proto.Networkbasetypes.CMsgVector2D.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(velocity_);
                velocity_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              latency_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              entindex_ = input.readInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              particleIndex_ = input.readInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              handle_ = input.readInt32();
              break;
            }
            case 58: {
              com.dota2.proto.Networkbasetypes.CMsgVector2D.Builder subBuilder = null;
              if (((bitField0_ & 0x00000040) == 0x00000040)) {
                subBuilder = acceleration_.toBuilder();
              }
              acceleration_ = input.readMessage(com.dota2.proto.Networkbasetypes.CMsgVector2D.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(acceleration_);
                acceleration_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000040;
              break;
            }
            case 69: {
              bitField0_ |= 0x00000080;
              maxSpeed_ = input.readFloat();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_CreateLinearProjectile_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_CreateLinearProjectile_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CreateLinearProjectile.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CreateLinearProjectile.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_CreateLinearProjectile parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_CreateLinearProjectile(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional .CMsgVector origin = 1;
    public static final int ORIGIN_FIELD_NUMBER = 1;
    private com.dota2.proto.Networkbasetypes.CMsgVector origin_;
    /**
     * optional .CMsgVector origin = 1;
     */
    public boolean hasOrigin() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional .CMsgVector origin = 1;
     */
    public com.dota2.proto.Networkbasetypes.CMsgVector getOrigin() {
      return origin_;
    }
    /**
     * optional .CMsgVector origin = 1;
     */
    public com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder getOriginOrBuilder() {
      return origin_;
    }

    // optional .CMsgVector2D velocity = 2;
    public static final int VELOCITY_FIELD_NUMBER = 2;
    private com.dota2.proto.Networkbasetypes.CMsgVector2D velocity_;
    /**
     * optional .CMsgVector2D velocity = 2;
     */
    public boolean hasVelocity() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional .CMsgVector2D velocity = 2;
     */
    public com.dota2.proto.Networkbasetypes.CMsgVector2D getVelocity() {
      return velocity_;
    }
    /**
     * optional .CMsgVector2D velocity = 2;
     */
    public com.dota2.proto.Networkbasetypes.CMsgVector2DOrBuilder getVelocityOrBuilder() {
      return velocity_;
    }

    // optional int32 latency = 3;
    public static final int LATENCY_FIELD_NUMBER = 3;
    private int latency_;
    /**
     * optional int32 latency = 3;
     */
    public boolean hasLatency() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 latency = 3;
     */
    public int getLatency() {
      return latency_;
    }

    // optional int32 entindex = 4;
    public static final int ENTINDEX_FIELD_NUMBER = 4;
    private int entindex_;
    /**
     * optional int32 entindex = 4;
     */
    public boolean hasEntindex() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 entindex = 4;
     */
    public int getEntindex() {
      return entindex_;
    }

    // optional int32 particle_index = 5;
    public static final int PARTICLE_INDEX_FIELD_NUMBER = 5;
    private int particleIndex_;
    /**
     * optional int32 particle_index = 5;
     */
    public boolean hasParticleIndex() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional int32 particle_index = 5;
     */
    public int getParticleIndex() {
      return particleIndex_;
    }

    // optional int32 handle = 6;
    public static final int HANDLE_FIELD_NUMBER = 6;
    private int handle_;
    /**
     * optional int32 handle = 6;
     */
    public boolean hasHandle() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional int32 handle = 6;
     */
    public int getHandle() {
      return handle_;
    }

    // optional .CMsgVector2D acceleration = 7;
    public static final int ACCELERATION_FIELD_NUMBER = 7;
    private com.dota2.proto.Networkbasetypes.CMsgVector2D acceleration_;
    /**
     * optional .CMsgVector2D acceleration = 7;
     */
    public boolean hasAcceleration() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional .CMsgVector2D acceleration = 7;
     */
    public com.dota2.proto.Networkbasetypes.CMsgVector2D getAcceleration() {
      return acceleration_;
    }
    /**
     * optional .CMsgVector2D acceleration = 7;
     */
    public com.dota2.proto.Networkbasetypes.CMsgVector2DOrBuilder getAccelerationOrBuilder() {
      return acceleration_;
    }

    // optional float max_speed = 8;
    public static final int MAX_SPEED_FIELD_NUMBER = 8;
    private float maxSpeed_;
    /**
     * optional float max_speed = 8;
     */
    public boolean hasMaxSpeed() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional float max_speed = 8;
     */
    public float getMaxSpeed() {
      return maxSpeed_;
    }

    private void initFields() {
      origin_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
      velocity_ = com.dota2.proto.Networkbasetypes.CMsgVector2D.getDefaultInstance();
      latency_ = 0;
      entindex_ = 0;
      particleIndex_ = 0;
      handle_ = 0;
      acceleration_ = com.dota2.proto.Networkbasetypes.CMsgVector2D.getDefaultInstance();
      maxSpeed_ = 0F;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, origin_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, velocity_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, latency_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, entindex_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt32(5, particleIndex_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeInt32(6, handle_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeMessage(7, acceleration_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeFloat(8, maxSpeed_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, origin_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, velocity_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, latency_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, entindex_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, particleIndex_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, handle_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, acceleration_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(8, maxSpeed_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CreateLinearProjectile parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CreateLinearProjectile parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CreateLinearProjectile parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CreateLinearProjectile parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CreateLinearProjectile parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CreateLinearProjectile parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CreateLinearProjectile parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CreateLinearProjectile parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CreateLinearProjectile parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CreateLinearProjectile parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CreateLinearProjectile prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_CreateLinearProjectile}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CreateLinearProjectileOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_CreateLinearProjectile_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_CreateLinearProjectile_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CreateLinearProjectile.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CreateLinearProjectile.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CreateLinearProjectile.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getOriginFieldBuilder();
          getVelocityFieldBuilder();
          getAccelerationFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (originBuilder_ == null) {
          origin_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
        } else {
          originBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (velocityBuilder_ == null) {
          velocity_ = com.dota2.proto.Networkbasetypes.CMsgVector2D.getDefaultInstance();
        } else {
          velocityBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        latency_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        entindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        particleIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        handle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        if (accelerationBuilder_ == null) {
          acceleration_ = com.dota2.proto.Networkbasetypes.CMsgVector2D.getDefaultInstance();
        } else {
          accelerationBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        maxSpeed_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_CreateLinearProjectile_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CreateLinearProjectile getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CreateLinearProjectile.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CreateLinearProjectile build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CreateLinearProjectile result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CreateLinearProjectile buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CreateLinearProjectile result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CreateLinearProjectile(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (originBuilder_ == null) {
          result.origin_ = origin_;
        } else {
          result.origin_ = originBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (velocityBuilder_ == null) {
          result.velocity_ = velocity_;
        } else {
          result.velocity_ = velocityBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.latency_ = latency_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.entindex_ = entindex_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.particleIndex_ = particleIndex_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.handle_ = handle_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        if (accelerationBuilder_ == null) {
          result.acceleration_ = acceleration_;
        } else {
          result.acceleration_ = accelerationBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.maxSpeed_ = maxSpeed_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CreateLinearProjectile) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CreateLinearProjectile)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CreateLinearProjectile other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CreateLinearProjectile.getDefaultInstance()) return this;
        if (other.hasOrigin()) {
          mergeOrigin(other.getOrigin());
        }
        if (other.hasVelocity()) {
          mergeVelocity(other.getVelocity());
        }
        if (other.hasLatency()) {
          setLatency(other.getLatency());
        }
        if (other.hasEntindex()) {
          setEntindex(other.getEntindex());
        }
        if (other.hasParticleIndex()) {
          setParticleIndex(other.getParticleIndex());
        }
        if (other.hasHandle()) {
          setHandle(other.getHandle());
        }
        if (other.hasAcceleration()) {
          mergeAcceleration(other.getAcceleration());
        }
        if (other.hasMaxSpeed()) {
          setMaxSpeed(other.getMaxSpeed());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CreateLinearProjectile parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CreateLinearProjectile) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional .CMsgVector origin = 1;
      private com.dota2.proto.Networkbasetypes.CMsgVector origin_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.Networkbasetypes.CMsgVector, com.dota2.proto.Networkbasetypes.CMsgVector.Builder, com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder> originBuilder_;
      /**
       * optional .CMsgVector origin = 1;
       */
      public boolean hasOrigin() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .CMsgVector origin = 1;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVector getOrigin() {
        if (originBuilder_ == null) {
          return origin_;
        } else {
          return originBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgVector origin = 1;
       */
      public Builder setOrigin(com.dota2.proto.Networkbasetypes.CMsgVector value) {
        if (originBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          origin_ = value;
          onChanged();
        } else {
          originBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CMsgVector origin = 1;
       */
      public Builder setOrigin(
          com.dota2.proto.Networkbasetypes.CMsgVector.Builder builderForValue) {
        if (originBuilder_ == null) {
          origin_ = builderForValue.build();
          onChanged();
        } else {
          originBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CMsgVector origin = 1;
       */
      public Builder mergeOrigin(com.dota2.proto.Networkbasetypes.CMsgVector value) {
        if (originBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              origin_ != com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance()) {
            origin_ =
              com.dota2.proto.Networkbasetypes.CMsgVector.newBuilder(origin_).mergeFrom(value).buildPartial();
          } else {
            origin_ = value;
          }
          onChanged();
        } else {
          originBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CMsgVector origin = 1;
       */
      public Builder clearOrigin() {
        if (originBuilder_ == null) {
          origin_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
          onChanged();
        } else {
          originBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * optional .CMsgVector origin = 1;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVector.Builder getOriginBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getOriginFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgVector origin = 1;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder getOriginOrBuilder() {
        if (originBuilder_ != null) {
          return originBuilder_.getMessageOrBuilder();
        } else {
          return origin_;
        }
      }
      /**
       * optional .CMsgVector origin = 1;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.Networkbasetypes.CMsgVector, com.dota2.proto.Networkbasetypes.CMsgVector.Builder, com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder> 
          getOriginFieldBuilder() {
        if (originBuilder_ == null) {
          originBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.dota2.proto.Networkbasetypes.CMsgVector, com.dota2.proto.Networkbasetypes.CMsgVector.Builder, com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder>(
                  origin_,
                  getParentForChildren(),
                  isClean());
          origin_ = null;
        }
        return originBuilder_;
      }

      // optional .CMsgVector2D velocity = 2;
      private com.dota2.proto.Networkbasetypes.CMsgVector2D velocity_ = com.dota2.proto.Networkbasetypes.CMsgVector2D.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.Networkbasetypes.CMsgVector2D, com.dota2.proto.Networkbasetypes.CMsgVector2D.Builder, com.dota2.proto.Networkbasetypes.CMsgVector2DOrBuilder> velocityBuilder_;
      /**
       * optional .CMsgVector2D velocity = 2;
       */
      public boolean hasVelocity() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .CMsgVector2D velocity = 2;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVector2D getVelocity() {
        if (velocityBuilder_ == null) {
          return velocity_;
        } else {
          return velocityBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgVector2D velocity = 2;
       */
      public Builder setVelocity(com.dota2.proto.Networkbasetypes.CMsgVector2D value) {
        if (velocityBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          velocity_ = value;
          onChanged();
        } else {
          velocityBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CMsgVector2D velocity = 2;
       */
      public Builder setVelocity(
          com.dota2.proto.Networkbasetypes.CMsgVector2D.Builder builderForValue) {
        if (velocityBuilder_ == null) {
          velocity_ = builderForValue.build();
          onChanged();
        } else {
          velocityBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CMsgVector2D velocity = 2;
       */
      public Builder mergeVelocity(com.dota2.proto.Networkbasetypes.CMsgVector2D value) {
        if (velocityBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              velocity_ != com.dota2.proto.Networkbasetypes.CMsgVector2D.getDefaultInstance()) {
            velocity_ =
              com.dota2.proto.Networkbasetypes.CMsgVector2D.newBuilder(velocity_).mergeFrom(value).buildPartial();
          } else {
            velocity_ = value;
          }
          onChanged();
        } else {
          velocityBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CMsgVector2D velocity = 2;
       */
      public Builder clearVelocity() {
        if (velocityBuilder_ == null) {
          velocity_ = com.dota2.proto.Networkbasetypes.CMsgVector2D.getDefaultInstance();
          onChanged();
        } else {
          velocityBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * optional .CMsgVector2D velocity = 2;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVector2D.Builder getVelocityBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getVelocityFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgVector2D velocity = 2;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVector2DOrBuilder getVelocityOrBuilder() {
        if (velocityBuilder_ != null) {
          return velocityBuilder_.getMessageOrBuilder();
        } else {
          return velocity_;
        }
      }
      /**
       * optional .CMsgVector2D velocity = 2;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.Networkbasetypes.CMsgVector2D, com.dota2.proto.Networkbasetypes.CMsgVector2D.Builder, com.dota2.proto.Networkbasetypes.CMsgVector2DOrBuilder> 
          getVelocityFieldBuilder() {
        if (velocityBuilder_ == null) {
          velocityBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.dota2.proto.Networkbasetypes.CMsgVector2D, com.dota2.proto.Networkbasetypes.CMsgVector2D.Builder, com.dota2.proto.Networkbasetypes.CMsgVector2DOrBuilder>(
                  velocity_,
                  getParentForChildren(),
                  isClean());
          velocity_ = null;
        }
        return velocityBuilder_;
      }

      // optional int32 latency = 3;
      private int latency_ ;
      /**
       * optional int32 latency = 3;
       */
      public boolean hasLatency() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 latency = 3;
       */
      public int getLatency() {
        return latency_;
      }
      /**
       * optional int32 latency = 3;
       */
      public Builder setLatency(int value) {
        bitField0_ |= 0x00000004;
        latency_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 latency = 3;
       */
      public Builder clearLatency() {
        bitField0_ = (bitField0_ & ~0x00000004);
        latency_ = 0;
        onChanged();
        return this;
      }

      // optional int32 entindex = 4;
      private int entindex_ ;
      /**
       * optional int32 entindex = 4;
       */
      public boolean hasEntindex() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 entindex = 4;
       */
      public int getEntindex() {
        return entindex_;
      }
      /**
       * optional int32 entindex = 4;
       */
      public Builder setEntindex(int value) {
        bitField0_ |= 0x00000008;
        entindex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 entindex = 4;
       */
      public Builder clearEntindex() {
        bitField0_ = (bitField0_ & ~0x00000008);
        entindex_ = 0;
        onChanged();
        return this;
      }

      // optional int32 particle_index = 5;
      private int particleIndex_ ;
      /**
       * optional int32 particle_index = 5;
       */
      public boolean hasParticleIndex() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional int32 particle_index = 5;
       */
      public int getParticleIndex() {
        return particleIndex_;
      }
      /**
       * optional int32 particle_index = 5;
       */
      public Builder setParticleIndex(int value) {
        bitField0_ |= 0x00000010;
        particleIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 particle_index = 5;
       */
      public Builder clearParticleIndex() {
        bitField0_ = (bitField0_ & ~0x00000010);
        particleIndex_ = 0;
        onChanged();
        return this;
      }

      // optional int32 handle = 6;
      private int handle_ ;
      /**
       * optional int32 handle = 6;
       */
      public boolean hasHandle() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional int32 handle = 6;
       */
      public int getHandle() {
        return handle_;
      }
      /**
       * optional int32 handle = 6;
       */
      public Builder setHandle(int value) {
        bitField0_ |= 0x00000020;
        handle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 handle = 6;
       */
      public Builder clearHandle() {
        bitField0_ = (bitField0_ & ~0x00000020);
        handle_ = 0;
        onChanged();
        return this;
      }

      // optional .CMsgVector2D acceleration = 7;
      private com.dota2.proto.Networkbasetypes.CMsgVector2D acceleration_ = com.dota2.proto.Networkbasetypes.CMsgVector2D.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.Networkbasetypes.CMsgVector2D, com.dota2.proto.Networkbasetypes.CMsgVector2D.Builder, com.dota2.proto.Networkbasetypes.CMsgVector2DOrBuilder> accelerationBuilder_;
      /**
       * optional .CMsgVector2D acceleration = 7;
       */
      public boolean hasAcceleration() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional .CMsgVector2D acceleration = 7;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVector2D getAcceleration() {
        if (accelerationBuilder_ == null) {
          return acceleration_;
        } else {
          return accelerationBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgVector2D acceleration = 7;
       */
      public Builder setAcceleration(com.dota2.proto.Networkbasetypes.CMsgVector2D value) {
        if (accelerationBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          acceleration_ = value;
          onChanged();
        } else {
          accelerationBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * optional .CMsgVector2D acceleration = 7;
       */
      public Builder setAcceleration(
          com.dota2.proto.Networkbasetypes.CMsgVector2D.Builder builderForValue) {
        if (accelerationBuilder_ == null) {
          acceleration_ = builderForValue.build();
          onChanged();
        } else {
          accelerationBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * optional .CMsgVector2D acceleration = 7;
       */
      public Builder mergeAcceleration(com.dota2.proto.Networkbasetypes.CMsgVector2D value) {
        if (accelerationBuilder_ == null) {
          if (((bitField0_ & 0x00000040) == 0x00000040) &&
              acceleration_ != com.dota2.proto.Networkbasetypes.CMsgVector2D.getDefaultInstance()) {
            acceleration_ =
              com.dota2.proto.Networkbasetypes.CMsgVector2D.newBuilder(acceleration_).mergeFrom(value).buildPartial();
          } else {
            acceleration_ = value;
          }
          onChanged();
        } else {
          accelerationBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * optional .CMsgVector2D acceleration = 7;
       */
      public Builder clearAcceleration() {
        if (accelerationBuilder_ == null) {
          acceleration_ = com.dota2.proto.Networkbasetypes.CMsgVector2D.getDefaultInstance();
          onChanged();
        } else {
          accelerationBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }
      /**
       * optional .CMsgVector2D acceleration = 7;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVector2D.Builder getAccelerationBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return getAccelerationFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgVector2D acceleration = 7;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVector2DOrBuilder getAccelerationOrBuilder() {
        if (accelerationBuilder_ != null) {
          return accelerationBuilder_.getMessageOrBuilder();
        } else {
          return acceleration_;
        }
      }
      /**
       * optional .CMsgVector2D acceleration = 7;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.Networkbasetypes.CMsgVector2D, com.dota2.proto.Networkbasetypes.CMsgVector2D.Builder, com.dota2.proto.Networkbasetypes.CMsgVector2DOrBuilder> 
          getAccelerationFieldBuilder() {
        if (accelerationBuilder_ == null) {
          accelerationBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.dota2.proto.Networkbasetypes.CMsgVector2D, com.dota2.proto.Networkbasetypes.CMsgVector2D.Builder, com.dota2.proto.Networkbasetypes.CMsgVector2DOrBuilder>(
                  acceleration_,
                  getParentForChildren(),
                  isClean());
          acceleration_ = null;
        }
        return accelerationBuilder_;
      }

      // optional float max_speed = 8;
      private float maxSpeed_ ;
      /**
       * optional float max_speed = 8;
       */
      public boolean hasMaxSpeed() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional float max_speed = 8;
       */
      public float getMaxSpeed() {
        return maxSpeed_;
      }
      /**
       * optional float max_speed = 8;
       */
      public Builder setMaxSpeed(float value) {
        bitField0_ |= 0x00000080;
        maxSpeed_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float max_speed = 8;
       */
      public Builder clearMaxSpeed() {
        bitField0_ = (bitField0_ & ~0x00000080);
        maxSpeed_ = 0F;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_CreateLinearProjectile)
    }

    static {
      defaultInstance = new CDOTAUserMsg_CreateLinearProjectile(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_CreateLinearProjectile)
  }

  public interface CDOTAUserMsg_DestroyLinearProjectileOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional int32 handle = 1;
    /**
     * optional int32 handle = 1;
     */
    boolean hasHandle();
    /**
     * optional int32 handle = 1;
     */
    int getHandle();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_DestroyLinearProjectile}
   */
  public static final class CDOTAUserMsg_DestroyLinearProjectile extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_DestroyLinearProjectileOrBuilder {
    // Use CDOTAUserMsg_DestroyLinearProjectile.newBuilder() to construct.
    private CDOTAUserMsg_DestroyLinearProjectile(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_DestroyLinearProjectile(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_DestroyLinearProjectile defaultInstance;
    public static CDOTAUserMsg_DestroyLinearProjectile getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_DestroyLinearProjectile getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_DestroyLinearProjectile(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              handle_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_DestroyLinearProjectile_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_DestroyLinearProjectile_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DestroyLinearProjectile.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DestroyLinearProjectile.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_DestroyLinearProjectile parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_DestroyLinearProjectile(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional int32 handle = 1;
    public static final int HANDLE_FIELD_NUMBER = 1;
    private int handle_;
    /**
     * optional int32 handle = 1;
     */
    public boolean hasHandle() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 handle = 1;
     */
    public int getHandle() {
      return handle_;
    }

    private void initFields() {
      handle_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, handle_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, handle_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DestroyLinearProjectile parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DestroyLinearProjectile parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DestroyLinearProjectile parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DestroyLinearProjectile parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DestroyLinearProjectile parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DestroyLinearProjectile parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DestroyLinearProjectile parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DestroyLinearProjectile parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DestroyLinearProjectile parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DestroyLinearProjectile parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DestroyLinearProjectile prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_DestroyLinearProjectile}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DestroyLinearProjectileOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_DestroyLinearProjectile_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_DestroyLinearProjectile_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DestroyLinearProjectile.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DestroyLinearProjectile.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DestroyLinearProjectile.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        handle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_DestroyLinearProjectile_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DestroyLinearProjectile getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DestroyLinearProjectile.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DestroyLinearProjectile build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DestroyLinearProjectile result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DestroyLinearProjectile buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DestroyLinearProjectile result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DestroyLinearProjectile(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.handle_ = handle_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DestroyLinearProjectile) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DestroyLinearProjectile)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DestroyLinearProjectile other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DestroyLinearProjectile.getDefaultInstance()) return this;
        if (other.hasHandle()) {
          setHandle(other.getHandle());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DestroyLinearProjectile parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DestroyLinearProjectile) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional int32 handle = 1;
      private int handle_ ;
      /**
       * optional int32 handle = 1;
       */
      public boolean hasHandle() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 handle = 1;
       */
      public int getHandle() {
        return handle_;
      }
      /**
       * optional int32 handle = 1;
       */
      public Builder setHandle(int value) {
        bitField0_ |= 0x00000001;
        handle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 handle = 1;
       */
      public Builder clearHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        handle_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_DestroyLinearProjectile)
    }

    static {
      defaultInstance = new CDOTAUserMsg_DestroyLinearProjectile(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_DestroyLinearProjectile)
  }

  public interface CDOTAUserMsg_DodgeTrackingProjectilesOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // required int32 entindex = 1;
    /**
     * required int32 entindex = 1;
     */
    boolean hasEntindex();
    /**
     * required int32 entindex = 1;
     */
    int getEntindex();

    // optional bool attacks_only = 2;
    /**
     * optional bool attacks_only = 2;
     */
    boolean hasAttacksOnly();
    /**
     * optional bool attacks_only = 2;
     */
    boolean getAttacksOnly();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_DodgeTrackingProjectiles}
   */
  public static final class CDOTAUserMsg_DodgeTrackingProjectiles extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_DodgeTrackingProjectilesOrBuilder {
    // Use CDOTAUserMsg_DodgeTrackingProjectiles.newBuilder() to construct.
    private CDOTAUserMsg_DodgeTrackingProjectiles(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_DodgeTrackingProjectiles(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_DodgeTrackingProjectiles defaultInstance;
    public static CDOTAUserMsg_DodgeTrackingProjectiles getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_DodgeTrackingProjectiles getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_DodgeTrackingProjectiles(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              entindex_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              attacksOnly_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_DodgeTrackingProjectiles_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_DodgeTrackingProjectiles_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DodgeTrackingProjectiles.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DodgeTrackingProjectiles.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_DodgeTrackingProjectiles parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_DodgeTrackingProjectiles(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // required int32 entindex = 1;
    public static final int ENTINDEX_FIELD_NUMBER = 1;
    private int entindex_;
    /**
     * required int32 entindex = 1;
     */
    public boolean hasEntindex() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required int32 entindex = 1;
     */
    public int getEntindex() {
      return entindex_;
    }

    // optional bool attacks_only = 2;
    public static final int ATTACKS_ONLY_FIELD_NUMBER = 2;
    private boolean attacksOnly_;
    /**
     * optional bool attacks_only = 2;
     */
    public boolean hasAttacksOnly() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional bool attacks_only = 2;
     */
    public boolean getAttacksOnly() {
      return attacksOnly_;
    }

    private void initFields() {
      entindex_ = 0;
      attacksOnly_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasEntindex()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, entindex_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, attacksOnly_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, entindex_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, attacksOnly_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DodgeTrackingProjectiles parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DodgeTrackingProjectiles parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DodgeTrackingProjectiles parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DodgeTrackingProjectiles parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DodgeTrackingProjectiles parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DodgeTrackingProjectiles parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DodgeTrackingProjectiles parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DodgeTrackingProjectiles parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DodgeTrackingProjectiles parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DodgeTrackingProjectiles parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DodgeTrackingProjectiles prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_DodgeTrackingProjectiles}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DodgeTrackingProjectilesOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_DodgeTrackingProjectiles_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_DodgeTrackingProjectiles_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DodgeTrackingProjectiles.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DodgeTrackingProjectiles.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DodgeTrackingProjectiles.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        entindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        attacksOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_DodgeTrackingProjectiles_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DodgeTrackingProjectiles getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DodgeTrackingProjectiles.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DodgeTrackingProjectiles build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DodgeTrackingProjectiles result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DodgeTrackingProjectiles buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DodgeTrackingProjectiles result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DodgeTrackingProjectiles(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.entindex_ = entindex_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.attacksOnly_ = attacksOnly_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DodgeTrackingProjectiles) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DodgeTrackingProjectiles)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DodgeTrackingProjectiles other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DodgeTrackingProjectiles.getDefaultInstance()) return this;
        if (other.hasEntindex()) {
          setEntindex(other.getEntindex());
        }
        if (other.hasAttacksOnly()) {
          setAttacksOnly(other.getAttacksOnly());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasEntindex()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DodgeTrackingProjectiles parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_DodgeTrackingProjectiles) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required int32 entindex = 1;
      private int entindex_ ;
      /**
       * required int32 entindex = 1;
       */
      public boolean hasEntindex() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 entindex = 1;
       */
      public int getEntindex() {
        return entindex_;
      }
      /**
       * required int32 entindex = 1;
       */
      public Builder setEntindex(int value) {
        bitField0_ |= 0x00000001;
        entindex_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 entindex = 1;
       */
      public Builder clearEntindex() {
        bitField0_ = (bitField0_ & ~0x00000001);
        entindex_ = 0;
        onChanged();
        return this;
      }

      // optional bool attacks_only = 2;
      private boolean attacksOnly_ ;
      /**
       * optional bool attacks_only = 2;
       */
      public boolean hasAttacksOnly() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional bool attacks_only = 2;
       */
      public boolean getAttacksOnly() {
        return attacksOnly_;
      }
      /**
       * optional bool attacks_only = 2;
       */
      public Builder setAttacksOnly(boolean value) {
        bitField0_ |= 0x00000002;
        attacksOnly_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool attacks_only = 2;
       */
      public Builder clearAttacksOnly() {
        bitField0_ = (bitField0_ & ~0x00000002);
        attacksOnly_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_DodgeTrackingProjectiles)
    }

    static {
      defaultInstance = new CDOTAUserMsg_DodgeTrackingProjectiles(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_DodgeTrackingProjectiles)
  }

  public interface CDOTAUserMsg_SpectatorPlayerClickOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // required int32 entindex = 1;
    /**
     * required int32 entindex = 1;
     */
    boolean hasEntindex();
    /**
     * required int32 entindex = 1;
     */
    int getEntindex();

    // optional int32 order_type = 2;
    /**
     * optional int32 order_type = 2;
     */
    boolean hasOrderType();
    /**
     * optional int32 order_type = 2;
     */
    int getOrderType();

    // optional int32 target_index = 3;
    /**
     * optional int32 target_index = 3;
     */
    boolean hasTargetIndex();
    /**
     * optional int32 target_index = 3;
     */
    int getTargetIndex();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_SpectatorPlayerClick}
   */
  public static final class CDOTAUserMsg_SpectatorPlayerClick extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_SpectatorPlayerClickOrBuilder {
    // Use CDOTAUserMsg_SpectatorPlayerClick.newBuilder() to construct.
    private CDOTAUserMsg_SpectatorPlayerClick(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_SpectatorPlayerClick(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_SpectatorPlayerClick defaultInstance;
    public static CDOTAUserMsg_SpectatorPlayerClick getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_SpectatorPlayerClick getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_SpectatorPlayerClick(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              entindex_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              orderType_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              targetIndex_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SpectatorPlayerClick_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SpectatorPlayerClick_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SpectatorPlayerClick.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SpectatorPlayerClick.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_SpectatorPlayerClick parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_SpectatorPlayerClick(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // required int32 entindex = 1;
    public static final int ENTINDEX_FIELD_NUMBER = 1;
    private int entindex_;
    /**
     * required int32 entindex = 1;
     */
    public boolean hasEntindex() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required int32 entindex = 1;
     */
    public int getEntindex() {
      return entindex_;
    }

    // optional int32 order_type = 2;
    public static final int ORDER_TYPE_FIELD_NUMBER = 2;
    private int orderType_;
    /**
     * optional int32 order_type = 2;
     */
    public boolean hasOrderType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 order_type = 2;
     */
    public int getOrderType() {
      return orderType_;
    }

    // optional int32 target_index = 3;
    public static final int TARGET_INDEX_FIELD_NUMBER = 3;
    private int targetIndex_;
    /**
     * optional int32 target_index = 3;
     */
    public boolean hasTargetIndex() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 target_index = 3;
     */
    public int getTargetIndex() {
      return targetIndex_;
    }

    private void initFields() {
      entindex_ = 0;
      orderType_ = 0;
      targetIndex_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasEntindex()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, entindex_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, orderType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, targetIndex_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, entindex_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, orderType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, targetIndex_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SpectatorPlayerClick parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SpectatorPlayerClick parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SpectatorPlayerClick parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SpectatorPlayerClick parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SpectatorPlayerClick parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SpectatorPlayerClick parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SpectatorPlayerClick parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SpectatorPlayerClick parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SpectatorPlayerClick parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SpectatorPlayerClick parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SpectatorPlayerClick prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_SpectatorPlayerClick}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SpectatorPlayerClickOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SpectatorPlayerClick_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SpectatorPlayerClick_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SpectatorPlayerClick.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SpectatorPlayerClick.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SpectatorPlayerClick.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        entindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        orderType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        targetIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SpectatorPlayerClick_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SpectatorPlayerClick getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SpectatorPlayerClick.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SpectatorPlayerClick build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SpectatorPlayerClick result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SpectatorPlayerClick buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SpectatorPlayerClick result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SpectatorPlayerClick(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.entindex_ = entindex_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.orderType_ = orderType_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.targetIndex_ = targetIndex_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SpectatorPlayerClick) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SpectatorPlayerClick)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SpectatorPlayerClick other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SpectatorPlayerClick.getDefaultInstance()) return this;
        if (other.hasEntindex()) {
          setEntindex(other.getEntindex());
        }
        if (other.hasOrderType()) {
          setOrderType(other.getOrderType());
        }
        if (other.hasTargetIndex()) {
          setTargetIndex(other.getTargetIndex());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasEntindex()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SpectatorPlayerClick parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SpectatorPlayerClick) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required int32 entindex = 1;
      private int entindex_ ;
      /**
       * required int32 entindex = 1;
       */
      public boolean hasEntindex() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 entindex = 1;
       */
      public int getEntindex() {
        return entindex_;
      }
      /**
       * required int32 entindex = 1;
       */
      public Builder setEntindex(int value) {
        bitField0_ |= 0x00000001;
        entindex_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 entindex = 1;
       */
      public Builder clearEntindex() {
        bitField0_ = (bitField0_ & ~0x00000001);
        entindex_ = 0;
        onChanged();
        return this;
      }

      // optional int32 order_type = 2;
      private int orderType_ ;
      /**
       * optional int32 order_type = 2;
       */
      public boolean hasOrderType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 order_type = 2;
       */
      public int getOrderType() {
        return orderType_;
      }
      /**
       * optional int32 order_type = 2;
       */
      public Builder setOrderType(int value) {
        bitField0_ |= 0x00000002;
        orderType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 order_type = 2;
       */
      public Builder clearOrderType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        orderType_ = 0;
        onChanged();
        return this;
      }

      // optional int32 target_index = 3;
      private int targetIndex_ ;
      /**
       * optional int32 target_index = 3;
       */
      public boolean hasTargetIndex() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 target_index = 3;
       */
      public int getTargetIndex() {
        return targetIndex_;
      }
      /**
       * optional int32 target_index = 3;
       */
      public Builder setTargetIndex(int value) {
        bitField0_ |= 0x00000004;
        targetIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 target_index = 3;
       */
      public Builder clearTargetIndex() {
        bitField0_ = (bitField0_ & ~0x00000004);
        targetIndex_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_SpectatorPlayerClick)
    }

    static {
      defaultInstance = new CDOTAUserMsg_SpectatorPlayerClick(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_SpectatorPlayerClick)
  }

  public interface CDOTAUserMsg_NevermoreRequiemOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional int32 entity_handle = 1;
    /**
     * optional int32 entity_handle = 1;
     */
    boolean hasEntityHandle();
    /**
     * optional int32 entity_handle = 1;
     */
    int getEntityHandle();

    // optional int32 lines = 2;
    /**
     * optional int32 lines = 2;
     */
    boolean hasLines();
    /**
     * optional int32 lines = 2;
     */
    int getLines();

    // optional .CMsgVector origin = 3;
    /**
     * optional .CMsgVector origin = 3;
     */
    boolean hasOrigin();
    /**
     * optional .CMsgVector origin = 3;
     */
    com.dota2.proto.Networkbasetypes.CMsgVector getOrigin();
    /**
     * optional .CMsgVector origin = 3;
     */
    com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder getOriginOrBuilder();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_NevermoreRequiem}
   */
  public static final class CDOTAUserMsg_NevermoreRequiem extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_NevermoreRequiemOrBuilder {
    // Use CDOTAUserMsg_NevermoreRequiem.newBuilder() to construct.
    private CDOTAUserMsg_NevermoreRequiem(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_NevermoreRequiem(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_NevermoreRequiem defaultInstance;
    public static CDOTAUserMsg_NevermoreRequiem getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_NevermoreRequiem getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_NevermoreRequiem(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              entityHandle_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              lines_ = input.readInt32();
              break;
            }
            case 26: {
              com.dota2.proto.Networkbasetypes.CMsgVector.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                subBuilder = origin_.toBuilder();
              }
              origin_ = input.readMessage(com.dota2.proto.Networkbasetypes.CMsgVector.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(origin_);
                origin_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_NevermoreRequiem_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_NevermoreRequiem_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_NevermoreRequiem.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_NevermoreRequiem.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_NevermoreRequiem parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_NevermoreRequiem(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional int32 entity_handle = 1;
    public static final int ENTITY_HANDLE_FIELD_NUMBER = 1;
    private int entityHandle_;
    /**
     * optional int32 entity_handle = 1;
     */
    public boolean hasEntityHandle() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 entity_handle = 1;
     */
    public int getEntityHandle() {
      return entityHandle_;
    }

    // optional int32 lines = 2;
    public static final int LINES_FIELD_NUMBER = 2;
    private int lines_;
    /**
     * optional int32 lines = 2;
     */
    public boolean hasLines() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 lines = 2;
     */
    public int getLines() {
      return lines_;
    }

    // optional .CMsgVector origin = 3;
    public static final int ORIGIN_FIELD_NUMBER = 3;
    private com.dota2.proto.Networkbasetypes.CMsgVector origin_;
    /**
     * optional .CMsgVector origin = 3;
     */
    public boolean hasOrigin() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional .CMsgVector origin = 3;
     */
    public com.dota2.proto.Networkbasetypes.CMsgVector getOrigin() {
      return origin_;
    }
    /**
     * optional .CMsgVector origin = 3;
     */
    public com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder getOriginOrBuilder() {
      return origin_;
    }

    private void initFields() {
      entityHandle_ = 0;
      lines_ = 0;
      origin_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, entityHandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, lines_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, origin_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, entityHandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, lines_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, origin_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_NevermoreRequiem parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_NevermoreRequiem parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_NevermoreRequiem parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_NevermoreRequiem parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_NevermoreRequiem parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_NevermoreRequiem parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_NevermoreRequiem parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_NevermoreRequiem parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_NevermoreRequiem parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_NevermoreRequiem parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_NevermoreRequiem prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_NevermoreRequiem}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_NevermoreRequiemOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_NevermoreRequiem_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_NevermoreRequiem_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_NevermoreRequiem.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_NevermoreRequiem.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_NevermoreRequiem.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getOriginFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        entityHandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        lines_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (originBuilder_ == null) {
          origin_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
        } else {
          originBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_NevermoreRequiem_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_NevermoreRequiem getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_NevermoreRequiem.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_NevermoreRequiem build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_NevermoreRequiem result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_NevermoreRequiem buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_NevermoreRequiem result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_NevermoreRequiem(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.entityHandle_ = entityHandle_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.lines_ = lines_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (originBuilder_ == null) {
          result.origin_ = origin_;
        } else {
          result.origin_ = originBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_NevermoreRequiem) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_NevermoreRequiem)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_NevermoreRequiem other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_NevermoreRequiem.getDefaultInstance()) return this;
        if (other.hasEntityHandle()) {
          setEntityHandle(other.getEntityHandle());
        }
        if (other.hasLines()) {
          setLines(other.getLines());
        }
        if (other.hasOrigin()) {
          mergeOrigin(other.getOrigin());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_NevermoreRequiem parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_NevermoreRequiem) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional int32 entity_handle = 1;
      private int entityHandle_ ;
      /**
       * optional int32 entity_handle = 1;
       */
      public boolean hasEntityHandle() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 entity_handle = 1;
       */
      public int getEntityHandle() {
        return entityHandle_;
      }
      /**
       * optional int32 entity_handle = 1;
       */
      public Builder setEntityHandle(int value) {
        bitField0_ |= 0x00000001;
        entityHandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 entity_handle = 1;
       */
      public Builder clearEntityHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        entityHandle_ = 0;
        onChanged();
        return this;
      }

      // optional int32 lines = 2;
      private int lines_ ;
      /**
       * optional int32 lines = 2;
       */
      public boolean hasLines() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 lines = 2;
       */
      public int getLines() {
        return lines_;
      }
      /**
       * optional int32 lines = 2;
       */
      public Builder setLines(int value) {
        bitField0_ |= 0x00000002;
        lines_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 lines = 2;
       */
      public Builder clearLines() {
        bitField0_ = (bitField0_ & ~0x00000002);
        lines_ = 0;
        onChanged();
        return this;
      }

      // optional .CMsgVector origin = 3;
      private com.dota2.proto.Networkbasetypes.CMsgVector origin_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.Networkbasetypes.CMsgVector, com.dota2.proto.Networkbasetypes.CMsgVector.Builder, com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder> originBuilder_;
      /**
       * optional .CMsgVector origin = 3;
       */
      public boolean hasOrigin() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional .CMsgVector origin = 3;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVector getOrigin() {
        if (originBuilder_ == null) {
          return origin_;
        } else {
          return originBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgVector origin = 3;
       */
      public Builder setOrigin(com.dota2.proto.Networkbasetypes.CMsgVector value) {
        if (originBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          origin_ = value;
          onChanged();
        } else {
          originBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .CMsgVector origin = 3;
       */
      public Builder setOrigin(
          com.dota2.proto.Networkbasetypes.CMsgVector.Builder builderForValue) {
        if (originBuilder_ == null) {
          origin_ = builderForValue.build();
          onChanged();
        } else {
          originBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .CMsgVector origin = 3;
       */
      public Builder mergeOrigin(com.dota2.proto.Networkbasetypes.CMsgVector value) {
        if (originBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004) &&
              origin_ != com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance()) {
            origin_ =
              com.dota2.proto.Networkbasetypes.CMsgVector.newBuilder(origin_).mergeFrom(value).buildPartial();
          } else {
            origin_ = value;
          }
          onChanged();
        } else {
          originBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .CMsgVector origin = 3;
       */
      public Builder clearOrigin() {
        if (originBuilder_ == null) {
          origin_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
          onChanged();
        } else {
          originBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       * optional .CMsgVector origin = 3;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVector.Builder getOriginBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getOriginFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgVector origin = 3;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder getOriginOrBuilder() {
        if (originBuilder_ != null) {
          return originBuilder_.getMessageOrBuilder();
        } else {
          return origin_;
        }
      }
      /**
       * optional .CMsgVector origin = 3;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.Networkbasetypes.CMsgVector, com.dota2.proto.Networkbasetypes.CMsgVector.Builder, com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder> 
          getOriginFieldBuilder() {
        if (originBuilder_ == null) {
          originBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.dota2.proto.Networkbasetypes.CMsgVector, com.dota2.proto.Networkbasetypes.CMsgVector.Builder, com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder>(
                  origin_,
                  getParentForChildren(),
                  isClean());
          origin_ = null;
        }
        return originBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_NevermoreRequiem)
    }

    static {
      defaultInstance = new CDOTAUserMsg_NevermoreRequiem(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_NevermoreRequiem)
  }

  public interface CDOTAUserMsg_InvalidCommandOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional string message = 1;
    /**
     * optional string message = 1;
     */
    boolean hasMessage();
    /**
     * optional string message = 1;
     */
    java.lang.String getMessage();
    /**
     * optional string message = 1;
     */
    com.google.protobuf.ByteString
        getMessageBytes();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_InvalidCommand}
   */
  public static final class CDOTAUserMsg_InvalidCommand extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_InvalidCommandOrBuilder {
    // Use CDOTAUserMsg_InvalidCommand.newBuilder() to construct.
    private CDOTAUserMsg_InvalidCommand(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_InvalidCommand(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_InvalidCommand defaultInstance;
    public static CDOTAUserMsg_InvalidCommand getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_InvalidCommand getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_InvalidCommand(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              message_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_InvalidCommand_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_InvalidCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_InvalidCommand.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_InvalidCommand.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_InvalidCommand parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_InvalidCommand(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional string message = 1;
    public static final int MESSAGE_FIELD_NUMBER = 1;
    private java.lang.Object message_;
    /**
     * optional string message = 1;
     */
    public boolean hasMessage() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional string message = 1;
     */
    public java.lang.String getMessage() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          message_ = s;
        }
        return s;
      }
    }
    /**
     * optional string message = 1;
     */
    public com.google.protobuf.ByteString
        getMessageBytes() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        message_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      message_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getMessageBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getMessageBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_InvalidCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_InvalidCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_InvalidCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_InvalidCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_InvalidCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_InvalidCommand parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_InvalidCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_InvalidCommand parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_InvalidCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_InvalidCommand parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_InvalidCommand prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_InvalidCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_InvalidCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_InvalidCommand_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_InvalidCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_InvalidCommand.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_InvalidCommand.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_InvalidCommand.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        message_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_InvalidCommand_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_InvalidCommand getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_InvalidCommand.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_InvalidCommand build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_InvalidCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_InvalidCommand buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_InvalidCommand result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_InvalidCommand(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.message_ = message_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_InvalidCommand) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_InvalidCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_InvalidCommand other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_InvalidCommand.getDefaultInstance()) return this;
        if (other.hasMessage()) {
          bitField0_ |= 0x00000001;
          message_ = other.message_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_InvalidCommand parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_InvalidCommand) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional string message = 1;
      private java.lang.Object message_ = "";
      /**
       * optional string message = 1;
       */
      public boolean hasMessage() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional string message = 1;
       */
      public java.lang.String getMessage() {
        java.lang.Object ref = message_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          message_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string message = 1;
       */
      public com.google.protobuf.ByteString
          getMessageBytes() {
        java.lang.Object ref = message_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          message_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string message = 1;
       */
      public Builder setMessage(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        message_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string message = 1;
       */
      public Builder clearMessage() {
        bitField0_ = (bitField0_ & ~0x00000001);
        message_ = getDefaultInstance().getMessage();
        onChanged();
        return this;
      }
      /**
       * optional string message = 1;
       */
      public Builder setMessageBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        message_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_InvalidCommand)
    }

    static {
      defaultInstance = new CDOTAUserMsg_InvalidCommand(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_InvalidCommand)
  }

  public interface CDOTAUserMsg_HudErrorOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional int32 order_id = 1;
    /**
     * optional int32 order_id = 1;
     */
    boolean hasOrderId();
    /**
     * optional int32 order_id = 1;
     */
    int getOrderId();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_HudError}
   */
  public static final class CDOTAUserMsg_HudError extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_HudErrorOrBuilder {
    // Use CDOTAUserMsg_HudError.newBuilder() to construct.
    private CDOTAUserMsg_HudError(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_HudError(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_HudError defaultInstance;
    public static CDOTAUserMsg_HudError getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_HudError getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_HudError(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              orderId_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_HudError_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_HudError_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HudError.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HudError.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_HudError parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_HudError(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional int32 order_id = 1;
    public static final int ORDER_ID_FIELD_NUMBER = 1;
    private int orderId_;
    /**
     * optional int32 order_id = 1;
     */
    public boolean hasOrderId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 order_id = 1;
     */
    public int getOrderId() {
      return orderId_;
    }

    private void initFields() {
      orderId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, orderId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, orderId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HudError parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HudError parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HudError parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HudError parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HudError parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HudError parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HudError parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HudError parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HudError parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HudError parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HudError prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_HudError}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HudErrorOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_HudError_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_HudError_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HudError.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HudError.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HudError.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        orderId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_HudError_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HudError getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HudError.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HudError build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HudError result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HudError buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HudError result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HudError(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.orderId_ = orderId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HudError) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HudError)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HudError other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HudError.getDefaultInstance()) return this;
        if (other.hasOrderId()) {
          setOrderId(other.getOrderId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HudError parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HudError) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional int32 order_id = 1;
      private int orderId_ ;
      /**
       * optional int32 order_id = 1;
       */
      public boolean hasOrderId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 order_id = 1;
       */
      public int getOrderId() {
        return orderId_;
      }
      /**
       * optional int32 order_id = 1;
       */
      public Builder setOrderId(int value) {
        bitField0_ |= 0x00000001;
        orderId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 order_id = 1;
       */
      public Builder clearOrderId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        orderId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_HudError)
    }

    static {
      defaultInstance = new CDOTAUserMsg_HudError(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_HudError)
  }

  public interface CDOTAUserMsg_SharedCooldownOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional int32 entindex = 1;
    /**
     * optional int32 entindex = 1;
     */
    boolean hasEntindex();
    /**
     * optional int32 entindex = 1;
     */
    int getEntindex();

    // optional string name = 2;
    /**
     * optional string name = 2;
     */
    boolean hasName();
    /**
     * optional string name = 2;
     */
    java.lang.String getName();
    /**
     * optional string name = 2;
     */
    com.google.protobuf.ByteString
        getNameBytes();

    // optional float cooldown = 3;
    /**
     * optional float cooldown = 3;
     */
    boolean hasCooldown();
    /**
     * optional float cooldown = 3;
     */
    float getCooldown();

    // optional int32 name_index = 4;
    /**
     * optional int32 name_index = 4;
     */
    boolean hasNameIndex();
    /**
     * optional int32 name_index = 4;
     */
    int getNameIndex();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_SharedCooldown}
   */
  public static final class CDOTAUserMsg_SharedCooldown extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_SharedCooldownOrBuilder {
    // Use CDOTAUserMsg_SharedCooldown.newBuilder() to construct.
    private CDOTAUserMsg_SharedCooldown(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_SharedCooldown(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_SharedCooldown defaultInstance;
    public static CDOTAUserMsg_SharedCooldown getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_SharedCooldown getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_SharedCooldown(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              entindex_ = input.readInt32();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              name_ = input.readBytes();
              break;
            }
            case 29: {
              bitField0_ |= 0x00000004;
              cooldown_ = input.readFloat();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              nameIndex_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SharedCooldown_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SharedCooldown_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SharedCooldown.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SharedCooldown.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_SharedCooldown parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_SharedCooldown(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional int32 entindex = 1;
    public static final int ENTINDEX_FIELD_NUMBER = 1;
    private int entindex_;
    /**
     * optional int32 entindex = 1;
     */
    public boolean hasEntindex() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 entindex = 1;
     */
    public int getEntindex() {
      return entindex_;
    }

    // optional string name = 2;
    public static final int NAME_FIELD_NUMBER = 2;
    private java.lang.Object name_;
    /**
     * optional string name = 2;
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional string name = 2;
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     * optional string name = 2;
     */
    public com.google.protobuf.ByteString
        getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional float cooldown = 3;
    public static final int COOLDOWN_FIELD_NUMBER = 3;
    private float cooldown_;
    /**
     * optional float cooldown = 3;
     */
    public boolean hasCooldown() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional float cooldown = 3;
     */
    public float getCooldown() {
      return cooldown_;
    }

    // optional int32 name_index = 4;
    public static final int NAME_INDEX_FIELD_NUMBER = 4;
    private int nameIndex_;
    /**
     * optional int32 name_index = 4;
     */
    public boolean hasNameIndex() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 name_index = 4;
     */
    public int getNameIndex() {
      return nameIndex_;
    }

    private void initFields() {
      entindex_ = 0;
      name_ = "";
      cooldown_ = 0F;
      nameIndex_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, entindex_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getNameBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeFloat(3, cooldown_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, nameIndex_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, entindex_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getNameBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(3, cooldown_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, nameIndex_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SharedCooldown parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SharedCooldown parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SharedCooldown parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SharedCooldown parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SharedCooldown parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SharedCooldown parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SharedCooldown parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SharedCooldown parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SharedCooldown parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SharedCooldown parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SharedCooldown prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_SharedCooldown}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SharedCooldownOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SharedCooldown_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SharedCooldown_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SharedCooldown.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SharedCooldown.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SharedCooldown.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        entindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        cooldown_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000004);
        nameIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SharedCooldown_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SharedCooldown getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SharedCooldown.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SharedCooldown build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SharedCooldown result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SharedCooldown buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SharedCooldown result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SharedCooldown(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.entindex_ = entindex_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.name_ = name_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.cooldown_ = cooldown_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.nameIndex_ = nameIndex_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SharedCooldown) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SharedCooldown)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SharedCooldown other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SharedCooldown.getDefaultInstance()) return this;
        if (other.hasEntindex()) {
          setEntindex(other.getEntindex());
        }
        if (other.hasName()) {
          bitField0_ |= 0x00000002;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasCooldown()) {
          setCooldown(other.getCooldown());
        }
        if (other.hasNameIndex()) {
          setNameIndex(other.getNameIndex());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SharedCooldown parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SharedCooldown) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional int32 entindex = 1;
      private int entindex_ ;
      /**
       * optional int32 entindex = 1;
       */
      public boolean hasEntindex() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 entindex = 1;
       */
      public int getEntindex() {
        return entindex_;
      }
      /**
       * optional int32 entindex = 1;
       */
      public Builder setEntindex(int value) {
        bitField0_ |= 0x00000001;
        entindex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 entindex = 1;
       */
      public Builder clearEntindex() {
        bitField0_ = (bitField0_ & ~0x00000001);
        entindex_ = 0;
        onChanged();
        return this;
      }

      // optional string name = 2;
      private java.lang.Object name_ = "";
      /**
       * optional string name = 2;
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional string name = 2;
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          name_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string name = 2;
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string name = 2;
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string name = 2;
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000002);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * optional string name = 2;
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        name_ = value;
        onChanged();
        return this;
      }

      // optional float cooldown = 3;
      private float cooldown_ ;
      /**
       * optional float cooldown = 3;
       */
      public boolean hasCooldown() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional float cooldown = 3;
       */
      public float getCooldown() {
        return cooldown_;
      }
      /**
       * optional float cooldown = 3;
       */
      public Builder setCooldown(float value) {
        bitField0_ |= 0x00000004;
        cooldown_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float cooldown = 3;
       */
      public Builder clearCooldown() {
        bitField0_ = (bitField0_ & ~0x00000004);
        cooldown_ = 0F;
        onChanged();
        return this;
      }

      // optional int32 name_index = 4;
      private int nameIndex_ ;
      /**
       * optional int32 name_index = 4;
       */
      public boolean hasNameIndex() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 name_index = 4;
       */
      public int getNameIndex() {
        return nameIndex_;
      }
      /**
       * optional int32 name_index = 4;
       */
      public Builder setNameIndex(int value) {
        bitField0_ |= 0x00000008;
        nameIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 name_index = 4;
       */
      public Builder clearNameIndex() {
        bitField0_ = (bitField0_ & ~0x00000008);
        nameIndex_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_SharedCooldown)
    }

    static {
      defaultInstance = new CDOTAUserMsg_SharedCooldown(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_SharedCooldown)
  }

  public interface CDOTAUserMsg_SetNextAutobuyItemOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional string name = 1;
    /**
     * optional string name = 1;
     */
    boolean hasName();
    /**
     * optional string name = 1;
     */
    java.lang.String getName();
    /**
     * optional string name = 1;
     */
    com.google.protobuf.ByteString
        getNameBytes();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_SetNextAutobuyItem}
   */
  public static final class CDOTAUserMsg_SetNextAutobuyItem extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_SetNextAutobuyItemOrBuilder {
    // Use CDOTAUserMsg_SetNextAutobuyItem.newBuilder() to construct.
    private CDOTAUserMsg_SetNextAutobuyItem(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_SetNextAutobuyItem(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_SetNextAutobuyItem defaultInstance;
    public static CDOTAUserMsg_SetNextAutobuyItem getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_SetNextAutobuyItem getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_SetNextAutobuyItem(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              name_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SetNextAutobuyItem_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SetNextAutobuyItem_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SetNextAutobuyItem.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SetNextAutobuyItem.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_SetNextAutobuyItem parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_SetNextAutobuyItem(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional string name = 1;
    public static final int NAME_FIELD_NUMBER = 1;
    private java.lang.Object name_;
    /**
     * optional string name = 1;
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional string name = 1;
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     * optional string name = 1;
     */
    public com.google.protobuf.ByteString
        getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      name_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getNameBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getNameBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SetNextAutobuyItem parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SetNextAutobuyItem parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SetNextAutobuyItem parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SetNextAutobuyItem parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SetNextAutobuyItem parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SetNextAutobuyItem parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SetNextAutobuyItem parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SetNextAutobuyItem parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SetNextAutobuyItem parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SetNextAutobuyItem parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SetNextAutobuyItem prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_SetNextAutobuyItem}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SetNextAutobuyItemOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SetNextAutobuyItem_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SetNextAutobuyItem_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SetNextAutobuyItem.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SetNextAutobuyItem.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SetNextAutobuyItem.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SetNextAutobuyItem_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SetNextAutobuyItem getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SetNextAutobuyItem.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SetNextAutobuyItem build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SetNextAutobuyItem result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SetNextAutobuyItem buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SetNextAutobuyItem result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SetNextAutobuyItem(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.name_ = name_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SetNextAutobuyItem) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SetNextAutobuyItem)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SetNextAutobuyItem other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SetNextAutobuyItem.getDefaultInstance()) return this;
        if (other.hasName()) {
          bitField0_ |= 0x00000001;
          name_ = other.name_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SetNextAutobuyItem parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SetNextAutobuyItem) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional string name = 1;
      private java.lang.Object name_ = "";
      /**
       * optional string name = 1;
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional string name = 1;
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          name_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string name = 1;
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string name = 1;
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string name = 1;
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * optional string name = 1;
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_SetNextAutobuyItem)
    }

    static {
      defaultInstance = new CDOTAUserMsg_SetNextAutobuyItem(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_SetNextAutobuyItem)
  }

  public interface CDOTAUserMsg_HalloweenDropsOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // repeated uint32 item_defs = 1;
    /**
     * repeated uint32 item_defs = 1;
     */
    java.util.List getItemDefsList();
    /**
     * repeated uint32 item_defs = 1;
     */
    int getItemDefsCount();
    /**
     * repeated uint32 item_defs = 1;
     */
    int getItemDefs(int index);

    // repeated uint32 player_ids = 2;
    /**
     * repeated uint32 player_ids = 2;
     */
    java.util.List getPlayerIdsList();
    /**
     * repeated uint32 player_ids = 2;
     */
    int getPlayerIdsCount();
    /**
     * repeated uint32 player_ids = 2;
     */
    int getPlayerIds(int index);

    // optional uint32 prize_list = 3;
    /**
     * optional uint32 prize_list = 3;
     */
    boolean hasPrizeList();
    /**
     * optional uint32 prize_list = 3;
     */
    int getPrizeList();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_HalloweenDrops}
   */
  public static final class CDOTAUserMsg_HalloweenDrops extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_HalloweenDropsOrBuilder {
    // Use CDOTAUserMsg_HalloweenDrops.newBuilder() to construct.
    private CDOTAUserMsg_HalloweenDrops(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_HalloweenDrops(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_HalloweenDrops defaultInstance;
    public static CDOTAUserMsg_HalloweenDrops getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_HalloweenDrops getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_HalloweenDrops(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                itemDefs_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              itemDefs_.add(input.readUInt32());
              break;
            }
            case 10: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001) && input.getBytesUntilLimit() > 0) {
                itemDefs_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              while (input.getBytesUntilLimit() > 0) {
                itemDefs_.add(input.readUInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 16: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                playerIds_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              playerIds_.add(input.readUInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002) && input.getBytesUntilLimit() > 0) {
                playerIds_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              while (input.getBytesUntilLimit() > 0) {
                playerIds_.add(input.readUInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              bitField0_ |= 0x00000001;
              prizeList_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          itemDefs_ = java.util.Collections.unmodifiableList(itemDefs_);
        }
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          playerIds_ = java.util.Collections.unmodifiableList(playerIds_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_HalloweenDrops_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_HalloweenDrops_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HalloweenDrops.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HalloweenDrops.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_HalloweenDrops parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_HalloweenDrops(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // repeated uint32 item_defs = 1;
    public static final int ITEM_DEFS_FIELD_NUMBER = 1;
    private java.util.List itemDefs_;
    /**
     * repeated uint32 item_defs = 1;
     */
    public java.util.List
        getItemDefsList() {
      return itemDefs_;
    }
    /**
     * repeated uint32 item_defs = 1;
     */
    public int getItemDefsCount() {
      return itemDefs_.size();
    }
    /**
     * repeated uint32 item_defs = 1;
     */
    public int getItemDefs(int index) {
      return itemDefs_.get(index);
    }

    // repeated uint32 player_ids = 2;
    public static final int PLAYER_IDS_FIELD_NUMBER = 2;
    private java.util.List playerIds_;
    /**
     * repeated uint32 player_ids = 2;
     */
    public java.util.List
        getPlayerIdsList() {
      return playerIds_;
    }
    /**
     * repeated uint32 player_ids = 2;
     */
    public int getPlayerIdsCount() {
      return playerIds_.size();
    }
    /**
     * repeated uint32 player_ids = 2;
     */
    public int getPlayerIds(int index) {
      return playerIds_.get(index);
    }

    // optional uint32 prize_list = 3;
    public static final int PRIZE_LIST_FIELD_NUMBER = 3;
    private int prizeList_;
    /**
     * optional uint32 prize_list = 3;
     */
    public boolean hasPrizeList() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 prize_list = 3;
     */
    public int getPrizeList() {
      return prizeList_;
    }

    private void initFields() {
      itemDefs_ = java.util.Collections.emptyList();
      playerIds_ = java.util.Collections.emptyList();
      prizeList_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < itemDefs_.size(); i++) {
        output.writeUInt32(1, itemDefs_.get(i));
      }
      for (int i = 0; i < playerIds_.size(); i++) {
        output.writeUInt32(2, playerIds_.get(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(3, prizeList_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < itemDefs_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(itemDefs_.get(i));
        }
        size += dataSize;
        size += 1 * getItemDefsList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < playerIds_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(playerIds_.get(i));
        }
        size += dataSize;
        size += 1 * getPlayerIdsList().size();
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, prizeList_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HalloweenDrops parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HalloweenDrops parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HalloweenDrops parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HalloweenDrops parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HalloweenDrops parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HalloweenDrops parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HalloweenDrops parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HalloweenDrops parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HalloweenDrops parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HalloweenDrops parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HalloweenDrops prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_HalloweenDrops}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HalloweenDropsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_HalloweenDrops_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_HalloweenDrops_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HalloweenDrops.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HalloweenDrops.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HalloweenDrops.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        itemDefs_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        playerIds_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        prizeList_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_HalloweenDrops_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HalloweenDrops getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HalloweenDrops.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HalloweenDrops build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HalloweenDrops result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HalloweenDrops buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HalloweenDrops result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HalloweenDrops(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          itemDefs_ = java.util.Collections.unmodifiableList(itemDefs_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.itemDefs_ = itemDefs_;
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          playerIds_ = java.util.Collections.unmodifiableList(playerIds_);
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.playerIds_ = playerIds_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000001;
        }
        result.prizeList_ = prizeList_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HalloweenDrops) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HalloweenDrops)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HalloweenDrops other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HalloweenDrops.getDefaultInstance()) return this;
        if (!other.itemDefs_.isEmpty()) {
          if (itemDefs_.isEmpty()) {
            itemDefs_ = other.itemDefs_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureItemDefsIsMutable();
            itemDefs_.addAll(other.itemDefs_);
          }
          onChanged();
        }
        if (!other.playerIds_.isEmpty()) {
          if (playerIds_.isEmpty()) {
            playerIds_ = other.playerIds_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensurePlayerIdsIsMutable();
            playerIds_.addAll(other.playerIds_);
          }
          onChanged();
        }
        if (other.hasPrizeList()) {
          setPrizeList(other.getPrizeList());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HalloweenDrops parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_HalloweenDrops) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // repeated uint32 item_defs = 1;
      private java.util.List itemDefs_ = java.util.Collections.emptyList();
      private void ensureItemDefsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          itemDefs_ = new java.util.ArrayList(itemDefs_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * repeated uint32 item_defs = 1;
       */
      public java.util.List
          getItemDefsList() {
        return java.util.Collections.unmodifiableList(itemDefs_);
      }
      /**
       * repeated uint32 item_defs = 1;
       */
      public int getItemDefsCount() {
        return itemDefs_.size();
      }
      /**
       * repeated uint32 item_defs = 1;
       */
      public int getItemDefs(int index) {
        return itemDefs_.get(index);
      }
      /**
       * repeated uint32 item_defs = 1;
       */
      public Builder setItemDefs(
          int index, int value) {
        ensureItemDefsIsMutable();
        itemDefs_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated uint32 item_defs = 1;
       */
      public Builder addItemDefs(int value) {
        ensureItemDefsIsMutable();
        itemDefs_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated uint32 item_defs = 1;
       */
      public Builder addAllItemDefs(
          java.lang.Iterable values) {
        ensureItemDefsIsMutable();
        super.addAll(values, itemDefs_);
        onChanged();
        return this;
      }
      /**
       * repeated uint32 item_defs = 1;
       */
      public Builder clearItemDefs() {
        itemDefs_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }

      // repeated uint32 player_ids = 2;
      private java.util.List playerIds_ = java.util.Collections.emptyList();
      private void ensurePlayerIdsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          playerIds_ = new java.util.ArrayList(playerIds_);
          bitField0_ |= 0x00000002;
         }
      }
      /**
       * repeated uint32 player_ids = 2;
       */
      public java.util.List
          getPlayerIdsList() {
        return java.util.Collections.unmodifiableList(playerIds_);
      }
      /**
       * repeated uint32 player_ids = 2;
       */
      public int getPlayerIdsCount() {
        return playerIds_.size();
      }
      /**
       * repeated uint32 player_ids = 2;
       */
      public int getPlayerIds(int index) {
        return playerIds_.get(index);
      }
      /**
       * repeated uint32 player_ids = 2;
       */
      public Builder setPlayerIds(
          int index, int value) {
        ensurePlayerIdsIsMutable();
        playerIds_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated uint32 player_ids = 2;
       */
      public Builder addPlayerIds(int value) {
        ensurePlayerIdsIsMutable();
        playerIds_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated uint32 player_ids = 2;
       */
      public Builder addAllPlayerIds(
          java.lang.Iterable values) {
        ensurePlayerIdsIsMutable();
        super.addAll(values, playerIds_);
        onChanged();
        return this;
      }
      /**
       * repeated uint32 player_ids = 2;
       */
      public Builder clearPlayerIds() {
        playerIds_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }

      // optional uint32 prize_list = 3;
      private int prizeList_ ;
      /**
       * optional uint32 prize_list = 3;
       */
      public boolean hasPrizeList() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 prize_list = 3;
       */
      public int getPrizeList() {
        return prizeList_;
      }
      /**
       * optional uint32 prize_list = 3;
       */
      public Builder setPrizeList(int value) {
        bitField0_ |= 0x00000004;
        prizeList_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 prize_list = 3;
       */
      public Builder clearPrizeList() {
        bitField0_ = (bitField0_ & ~0x00000004);
        prizeList_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_HalloweenDrops)
    }

    static {
      defaultInstance = new CDOTAUserMsg_HalloweenDrops(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_HalloweenDrops)
  }

  public interface CDOTAResponseQuerySerializedOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
    /**
     * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
     */
    java.util.List 
        getFactsList();
    /**
     * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
     */
    com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact getFacts(int index);
    /**
     * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
     */
    int getFactsCount();
    /**
     * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
     */
    java.util.List 
        getFactsOrBuilderList();
    /**
     * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
     */
    com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.FactOrBuilder getFactsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code CDOTAResponseQuerySerialized}
   */
  public static final class CDOTAResponseQuerySerialized extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAResponseQuerySerializedOrBuilder {
    // Use CDOTAResponseQuerySerialized.newBuilder() to construct.
    private CDOTAResponseQuerySerialized(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAResponseQuerySerialized(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAResponseQuerySerialized defaultInstance;
    public static CDOTAResponseQuerySerialized getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAResponseQuerySerialized getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAResponseQuerySerialized(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                facts_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              facts_.add(input.readMessage(com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          facts_ = java.util.Collections.unmodifiableList(facts_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAResponseQuerySerialized_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAResponseQuerySerialized_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.class, com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAResponseQuerySerialized parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAResponseQuerySerialized(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public interface FactOrBuilder
        extends com.google.protobuf.MessageOrBuilder {

      // required int32 key = 1;
      /**
       * required int32 key = 1;
       */
      boolean hasKey();
      /**
       * required int32 key = 1;
       */
      int getKey();

      // required .CDOTAResponseQuerySerialized.Fact.ValueType valtype = 2 [default = NUMERIC];
      /**
       * required .CDOTAResponseQuerySerialized.Fact.ValueType valtype = 2 [default = NUMERIC];
       */
      boolean hasValtype();
      /**
       * required .CDOTAResponseQuerySerialized.Fact.ValueType valtype = 2 [default = NUMERIC];
       */
      com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact.ValueType getValtype();

      // optional float val_numeric = 3;
      /**
       * optional float val_numeric = 3;
       */
      boolean hasValNumeric();
      /**
       * optional float val_numeric = 3;
       */
      float getValNumeric();

      // optional string val_string = 4;
      /**
       * optional string val_string = 4;
       */
      boolean hasValString();
      /**
       * optional string val_string = 4;
       */
      java.lang.String getValString();
      /**
       * optional string val_string = 4;
       */
      com.google.protobuf.ByteString
          getValStringBytes();
    }
    /**
     * Protobuf type {@code CDOTAResponseQuerySerialized.Fact}
     */
    public static final class Fact extends
        com.google.protobuf.GeneratedMessage
        implements FactOrBuilder {
      // Use Fact.newBuilder() to construct.
      private Fact(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private Fact(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final Fact defaultInstance;
      public static Fact getDefaultInstance() {
        return defaultInstance;
      }

      public Fact getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private Fact(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                key_ = input.readInt32();
                break;
              }
              case 16: {
                int rawValue = input.readEnum();
                com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact.ValueType value = com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact.ValueType.valueOf(rawValue);
                if (value == null) {
                  unknownFields.mergeVarintField(2, rawValue);
                } else {
                  bitField0_ |= 0x00000002;
                  valtype_ = value;
                }
                break;
              }
              case 29: {
                bitField0_ |= 0x00000004;
                valNumeric_ = input.readFloat();
                break;
              }
              case 34: {
                bitField0_ |= 0x00000008;
                valString_ = input.readBytes();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAResponseQuerySerialized_Fact_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAResponseQuerySerialized_Fact_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact.class, com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public Fact parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new Fact(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      /**
       * Protobuf enum {@code CDOTAResponseQuerySerialized.Fact.ValueType}
       */
      public enum ValueType
          implements com.google.protobuf.ProtocolMessageEnum {
        /**
         * NUMERIC = 1;
         */
        NUMERIC(0, 1),
        /**
         * STRING = 2;
         */
        STRING(1, 2),
        ;

        /**
         * NUMERIC = 1;
         */
        public static final int NUMERIC_VALUE = 1;
        /**
         * STRING = 2;
         */
        public static final int STRING_VALUE = 2;


        public final int getNumber() { return value; }

        public static ValueType valueOf(int value) {
          switch (value) {
            case 1: return NUMERIC;
            case 2: return STRING;
            default: return null;
          }
        }

        public static com.google.protobuf.Internal.EnumLiteMap
            internalGetValueMap() {
          return internalValueMap;
        }
        private static com.google.protobuf.Internal.EnumLiteMap
            internalValueMap =
              new com.google.protobuf.Internal.EnumLiteMap() {
                public ValueType findValueByNumber(int number) {
                  return ValueType.valueOf(number);
                }
              };

        public final com.google.protobuf.Descriptors.EnumValueDescriptor
            getValueDescriptor() {
          return getDescriptor().getValues().get(index);
        }
        public final com.google.protobuf.Descriptors.EnumDescriptor
            getDescriptorForType() {
          return getDescriptor();
        }
        public static final com.google.protobuf.Descriptors.EnumDescriptor
            getDescriptor() {
          return com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact.getDescriptor().getEnumTypes().get(0);
        }

        private static final ValueType[] VALUES = values();

        public static ValueType valueOf(
            com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
          if (desc.getType() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "EnumValueDescriptor is not for this type.");
          }
          return VALUES[desc.getIndex()];
        }

        private final int index;
        private final int value;

        private ValueType(int index, int value) {
          this.index = index;
          this.value = value;
        }

        // @@protoc_insertion_point(enum_scope:CDOTAResponseQuerySerialized.Fact.ValueType)
      }

      private int bitField0_;
      // required int32 key = 1;
      public static final int KEY_FIELD_NUMBER = 1;
      private int key_;
      /**
       * required int32 key = 1;
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 key = 1;
       */
      public int getKey() {
        return key_;
      }

      // required .CDOTAResponseQuerySerialized.Fact.ValueType valtype = 2 [default = NUMERIC];
      public static final int VALTYPE_FIELD_NUMBER = 2;
      private com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact.ValueType valtype_;
      /**
       * required .CDOTAResponseQuerySerialized.Fact.ValueType valtype = 2 [default = NUMERIC];
       */
      public boolean hasValtype() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required .CDOTAResponseQuerySerialized.Fact.ValueType valtype = 2 [default = NUMERIC];
       */
      public com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact.ValueType getValtype() {
        return valtype_;
      }

      // optional float val_numeric = 3;
      public static final int VAL_NUMERIC_FIELD_NUMBER = 3;
      private float valNumeric_;
      /**
       * optional float val_numeric = 3;
       */
      public boolean hasValNumeric() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional float val_numeric = 3;
       */
      public float getValNumeric() {
        return valNumeric_;
      }

      // optional string val_string = 4;
      public static final int VAL_STRING_FIELD_NUMBER = 4;
      private java.lang.Object valString_;
      /**
       * optional string val_string = 4;
       */
      public boolean hasValString() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional string val_string = 4;
       */
      public java.lang.String getValString() {
        java.lang.Object ref = valString_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            valString_ = s;
          }
          return s;
        }
      }
      /**
       * optional string val_string = 4;
       */
      public com.google.protobuf.ByteString
          getValStringBytes() {
        java.lang.Object ref = valString_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          valString_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      private void initFields() {
        key_ = 0;
        valtype_ = com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact.ValueType.NUMERIC;
        valNumeric_ = 0F;
        valString_ = "";
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        if (!hasKey()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasValtype()) {
          memoizedIsInitialized = 0;
          return false;
        }
        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, key_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeEnum(2, valtype_.getNumber());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeFloat(3, valNumeric_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeBytes(4, getValStringBytes());
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, key_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(2, valtype_.getNumber());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeFloatSize(3, valNumeric_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(4, getValStringBytes());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAResponseQuerySerialized.Fact}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder
         implements com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.FactOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAResponseQuerySerialized_Fact_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAResponseQuerySerialized_Fact_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact.class, com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact.Builder.class);
        }

        // Construct using com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          key_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          valtype_ = com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact.ValueType.NUMERIC;
          bitField0_ = (bitField0_ & ~0x00000002);
          valNumeric_ = 0F;
          bitField0_ = (bitField0_ & ~0x00000004);
          valString_ = "";
          bitField0_ = (bitField0_ & ~0x00000008);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAResponseQuerySerialized_Fact_descriptor;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact getDefaultInstanceForType() {
          return com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact.getDefaultInstance();
        }

        public com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact build() {
          com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact buildPartial() {
          com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact result = new com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.key_ = key_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.valtype_ = valtype_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.valNumeric_ = valNumeric_;
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000008;
          }
          result.valString_ = valString_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact) {
            return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact other) {
          if (other == com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact.getDefaultInstance()) return this;
          if (other.hasKey()) {
            setKey(other.getKey());
          }
          if (other.hasValtype()) {
            setValtype(other.getValtype());
          }
          if (other.hasValNumeric()) {
            setValNumeric(other.getValNumeric());
          }
          if (other.hasValString()) {
            bitField0_ |= 0x00000008;
            valString_ = other.valString_;
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          if (!hasKey()) {
            
            return false;
          }
          if (!hasValtype()) {
            
            return false;
          }
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        // required int32 key = 1;
        private int key_ ;
        /**
         * required int32 key = 1;
         */
        public boolean hasKey() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * required int32 key = 1;
         */
        public int getKey() {
          return key_;
        }
        /**
         * required int32 key = 1;
         */
        public Builder setKey(int value) {
          bitField0_ |= 0x00000001;
          key_ = value;
          onChanged();
          return this;
        }
        /**
         * required int32 key = 1;
         */
        public Builder clearKey() {
          bitField0_ = (bitField0_ & ~0x00000001);
          key_ = 0;
          onChanged();
          return this;
        }

        // required .CDOTAResponseQuerySerialized.Fact.ValueType valtype = 2 [default = NUMERIC];
        private com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact.ValueType valtype_ = com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact.ValueType.NUMERIC;
        /**
         * required .CDOTAResponseQuerySerialized.Fact.ValueType valtype = 2 [default = NUMERIC];
         */
        public boolean hasValtype() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * required .CDOTAResponseQuerySerialized.Fact.ValueType valtype = 2 [default = NUMERIC];
         */
        public com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact.ValueType getValtype() {
          return valtype_;
        }
        /**
         * required .CDOTAResponseQuerySerialized.Fact.ValueType valtype = 2 [default = NUMERIC];
         */
        public Builder setValtype(com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact.ValueType value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000002;
          valtype_ = value;
          onChanged();
          return this;
        }
        /**
         * required .CDOTAResponseQuerySerialized.Fact.ValueType valtype = 2 [default = NUMERIC];
         */
        public Builder clearValtype() {
          bitField0_ = (bitField0_ & ~0x00000002);
          valtype_ = com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact.ValueType.NUMERIC;
          onChanged();
          return this;
        }

        // optional float val_numeric = 3;
        private float valNumeric_ ;
        /**
         * optional float val_numeric = 3;
         */
        public boolean hasValNumeric() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * optional float val_numeric = 3;
         */
        public float getValNumeric() {
          return valNumeric_;
        }
        /**
         * optional float val_numeric = 3;
         */
        public Builder setValNumeric(float value) {
          bitField0_ |= 0x00000004;
          valNumeric_ = value;
          onChanged();
          return this;
        }
        /**
         * optional float val_numeric = 3;
         */
        public Builder clearValNumeric() {
          bitField0_ = (bitField0_ & ~0x00000004);
          valNumeric_ = 0F;
          onChanged();
          return this;
        }

        // optional string val_string = 4;
        private java.lang.Object valString_ = "";
        /**
         * optional string val_string = 4;
         */
        public boolean hasValString() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * optional string val_string = 4;
         */
        public java.lang.String getValString() {
          java.lang.Object ref = valString_;
          if (!(ref instanceof java.lang.String)) {
            java.lang.String s = ((com.google.protobuf.ByteString) ref)
                .toStringUtf8();
            valString_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * optional string val_string = 4;
         */
        public com.google.protobuf.ByteString
            getValStringBytes() {
          java.lang.Object ref = valString_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            valString_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * optional string val_string = 4;
         */
        public Builder setValString(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
          valString_ = value;
          onChanged();
          return this;
        }
        /**
         * optional string val_string = 4;
         */
        public Builder clearValString() {
          bitField0_ = (bitField0_ & ~0x00000008);
          valString_ = getDefaultInstance().getValString();
          onChanged();
          return this;
        }
        /**
         * optional string val_string = 4;
         */
        public Builder setValStringBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
          valString_ = value;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAResponseQuerySerialized.Fact)
      }

      static {
        defaultInstance = new Fact(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAResponseQuerySerialized.Fact)
    }

    // repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
    public static final int FACTS_FIELD_NUMBER = 1;
    private java.util.List facts_;
    /**
     * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
     */
    public java.util.List getFactsList() {
      return facts_;
    }
    /**
     * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
     */
    public java.util.List 
        getFactsOrBuilderList() {
      return facts_;
    }
    /**
     * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
     */
    public int getFactsCount() {
      return facts_.size();
    }
    /**
     * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact getFacts(int index) {
      return facts_.get(index);
    }
    /**
     * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.FactOrBuilder getFactsOrBuilder(
        int index) {
      return facts_.get(index);
    }

    private void initFields() {
      facts_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      for (int i = 0; i < getFactsCount(); i++) {
        if (!getFacts(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < facts_.size(); i++) {
        output.writeMessage(1, facts_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < facts_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, facts_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAResponseQuerySerialized}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerializedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAResponseQuerySerialized_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAResponseQuerySerialized_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.class, com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getFactsFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (factsBuilder_ == null) {
          facts_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          factsBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAResponseQuerySerialized_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized build() {
        com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized result = new com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized(this);
        int from_bitField0_ = bitField0_;
        if (factsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            facts_ = java.util.Collections.unmodifiableList(facts_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.facts_ = facts_;
        } else {
          result.facts_ = factsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.getDefaultInstance()) return this;
        if (factsBuilder_ == null) {
          if (!other.facts_.isEmpty()) {
            if (facts_.isEmpty()) {
              facts_ = other.facts_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureFactsIsMutable();
              facts_.addAll(other.facts_);
            }
            onChanged();
          }
        } else {
          if (!other.facts_.isEmpty()) {
            if (factsBuilder_.isEmpty()) {
              factsBuilder_.dispose();
              factsBuilder_ = null;
              facts_ = other.facts_;
              bitField0_ = (bitField0_ & ~0x00000001);
              factsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getFactsFieldBuilder() : null;
            } else {
              factsBuilder_.addAllMessages(other.facts_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        for (int i = 0; i < getFactsCount(); i++) {
          if (!getFacts(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
      private java.util.List facts_ =
        java.util.Collections.emptyList();
      private void ensureFactsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          facts_ = new java.util.ArrayList(facts_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact, com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact.Builder, com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.FactOrBuilder> factsBuilder_;

      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public java.util.List getFactsList() {
        if (factsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(facts_);
        } else {
          return factsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public int getFactsCount() {
        if (factsBuilder_ == null) {
          return facts_.size();
        } else {
          return factsBuilder_.getCount();
        }
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact getFacts(int index) {
        if (factsBuilder_ == null) {
          return facts_.get(index);
        } else {
          return factsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public Builder setFacts(
          int index, com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact value) {
        if (factsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFactsIsMutable();
          facts_.set(index, value);
          onChanged();
        } else {
          factsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public Builder setFacts(
          int index, com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact.Builder builderForValue) {
        if (factsBuilder_ == null) {
          ensureFactsIsMutable();
          facts_.set(index, builderForValue.build());
          onChanged();
        } else {
          factsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public Builder addFacts(com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact value) {
        if (factsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFactsIsMutable();
          facts_.add(value);
          onChanged();
        } else {
          factsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public Builder addFacts(
          int index, com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact value) {
        if (factsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFactsIsMutable();
          facts_.add(index, value);
          onChanged();
        } else {
          factsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public Builder addFacts(
          com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact.Builder builderForValue) {
        if (factsBuilder_ == null) {
          ensureFactsIsMutable();
          facts_.add(builderForValue.build());
          onChanged();
        } else {
          factsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public Builder addFacts(
          int index, com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact.Builder builderForValue) {
        if (factsBuilder_ == null) {
          ensureFactsIsMutable();
          facts_.add(index, builderForValue.build());
          onChanged();
        } else {
          factsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public Builder addAllFacts(
          java.lang.Iterable values) {
        if (factsBuilder_ == null) {
          ensureFactsIsMutable();
          super.addAll(values, facts_);
          onChanged();
        } else {
          factsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public Builder clearFacts() {
        if (factsBuilder_ == null) {
          facts_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          factsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public Builder removeFacts(int index) {
        if (factsBuilder_ == null) {
          ensureFactsIsMutable();
          facts_.remove(index);
          onChanged();
        } else {
          factsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact.Builder getFactsBuilder(
          int index) {
        return getFactsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.FactOrBuilder getFactsOrBuilder(
          int index) {
        if (factsBuilder_ == null) {
          return facts_.get(index);  } else {
          return factsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public java.util.List 
           getFactsOrBuilderList() {
        if (factsBuilder_ != null) {
          return factsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(facts_);
        }
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact.Builder addFactsBuilder() {
        return getFactsFieldBuilder().addBuilder(
            com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact.getDefaultInstance());
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact.Builder addFactsBuilder(
          int index) {
        return getFactsFieldBuilder().addBuilder(
            index, com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact.getDefaultInstance());
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public java.util.List 
           getFactsBuilderList() {
        return getFactsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact, com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact.Builder, com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.FactOrBuilder> 
          getFactsFieldBuilder() {
        if (factsBuilder_ == null) {
          factsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact, com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Fact.Builder, com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.FactOrBuilder>(
                  facts_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          facts_ = null;
        }
        return factsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAResponseQuerySerialized)
    }

    static {
      defaultInstance = new CDOTAResponseQuerySerialized(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAResponseQuerySerialized)
  }

  public interface CDOTASpeechMatchOnClientOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional int32 concept = 1;
    /**
     * optional int32 concept = 1;
     */
    boolean hasConcept();
    /**
     * optional int32 concept = 1;
     */
    int getConcept();

    // optional int32 recipient_type = 2;
    /**
     * optional int32 recipient_type = 2;
     */
    boolean hasRecipientType();
    /**
     * optional int32 recipient_type = 2;
     */
    int getRecipientType();

    // optional .CDOTAResponseQuerySerialized responsequery = 3;
    /**
     * optional .CDOTAResponseQuerySerialized responsequery = 3;
     */
    boolean hasResponsequery();
    /**
     * optional .CDOTAResponseQuerySerialized responsequery = 3;
     */
    com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized getResponsequery();
    /**
     * optional .CDOTAResponseQuerySerialized responsequery = 3;
     */
    com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerializedOrBuilder getResponsequeryOrBuilder();

    // optional sfixed32 randomseed = 4 [default = 0];
    /**
     * optional sfixed32 randomseed = 4 [default = 0];
     */
    boolean hasRandomseed();
    /**
     * optional sfixed32 randomseed = 4 [default = 0];
     */
    int getRandomseed();
  }
  /**
   * Protobuf type {@code CDOTASpeechMatchOnClient}
   */
  public static final class CDOTASpeechMatchOnClient extends
      com.google.protobuf.GeneratedMessage
      implements CDOTASpeechMatchOnClientOrBuilder {
    // Use CDOTASpeechMatchOnClient.newBuilder() to construct.
    private CDOTASpeechMatchOnClient(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTASpeechMatchOnClient(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTASpeechMatchOnClient defaultInstance;
    public static CDOTASpeechMatchOnClient getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTASpeechMatchOnClient getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTASpeechMatchOnClient(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              concept_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              recipientType_ = input.readInt32();
              break;
            }
            case 26: {
              com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                subBuilder = responsequery_.toBuilder();
              }
              responsequery_ = input.readMessage(com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(responsequery_);
                responsequery_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
            case 37: {
              bitField0_ |= 0x00000008;
              randomseed_ = input.readSFixed32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTASpeechMatchOnClient_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTASpeechMatchOnClient_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient.class, com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTASpeechMatchOnClient parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTASpeechMatchOnClient(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional int32 concept = 1;
    public static final int CONCEPT_FIELD_NUMBER = 1;
    private int concept_;
    /**
     * optional int32 concept = 1;
     */
    public boolean hasConcept() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 concept = 1;
     */
    public int getConcept() {
      return concept_;
    }

    // optional int32 recipient_type = 2;
    public static final int RECIPIENT_TYPE_FIELD_NUMBER = 2;
    private int recipientType_;
    /**
     * optional int32 recipient_type = 2;
     */
    public boolean hasRecipientType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 recipient_type = 2;
     */
    public int getRecipientType() {
      return recipientType_;
    }

    // optional .CDOTAResponseQuerySerialized responsequery = 3;
    public static final int RESPONSEQUERY_FIELD_NUMBER = 3;
    private com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized responsequery_;
    /**
     * optional .CDOTAResponseQuerySerialized responsequery = 3;
     */
    public boolean hasResponsequery() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional .CDOTAResponseQuerySerialized responsequery = 3;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized getResponsequery() {
      return responsequery_;
    }
    /**
     * optional .CDOTAResponseQuerySerialized responsequery = 3;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerializedOrBuilder getResponsequeryOrBuilder() {
      return responsequery_;
    }

    // optional sfixed32 randomseed = 4 [default = 0];
    public static final int RANDOMSEED_FIELD_NUMBER = 4;
    private int randomseed_;
    /**
     * optional sfixed32 randomseed = 4 [default = 0];
     */
    public boolean hasRandomseed() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional sfixed32 randomseed = 4 [default = 0];
     */
    public int getRandomseed() {
      return randomseed_;
    }

    private void initFields() {
      concept_ = 0;
      recipientType_ = 0;
      responsequery_ = com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.getDefaultInstance();
      randomseed_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (hasResponsequery()) {
        if (!getResponsequery().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, concept_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, recipientType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, responsequery_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeSFixed32(4, randomseed_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, concept_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, recipientType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, responsequery_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSFixed32Size(4, randomseed_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTASpeechMatchOnClient}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClientOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTASpeechMatchOnClient_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTASpeechMatchOnClient_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient.class, com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getResponsequeryFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        concept_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        recipientType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (responsequeryBuilder_ == null) {
          responsequery_ = com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.getDefaultInstance();
        } else {
          responsequeryBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        randomseed_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTASpeechMatchOnClient_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient build() {
        com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient result = new com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.concept_ = concept_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.recipientType_ = recipientType_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (responsequeryBuilder_ == null) {
          result.responsequery_ = responsequery_;
        } else {
          result.responsequery_ = responsequeryBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.randomseed_ = randomseed_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient.getDefaultInstance()) return this;
        if (other.hasConcept()) {
          setConcept(other.getConcept());
        }
        if (other.hasRecipientType()) {
          setRecipientType(other.getRecipientType());
        }
        if (other.hasResponsequery()) {
          mergeResponsequery(other.getResponsequery());
        }
        if (other.hasRandomseed()) {
          setRandomseed(other.getRandomseed());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (hasResponsequery()) {
          if (!getResponsequery().isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional int32 concept = 1;
      private int concept_ ;
      /**
       * optional int32 concept = 1;
       */
      public boolean hasConcept() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 concept = 1;
       */
      public int getConcept() {
        return concept_;
      }
      /**
       * optional int32 concept = 1;
       */
      public Builder setConcept(int value) {
        bitField0_ |= 0x00000001;
        concept_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 concept = 1;
       */
      public Builder clearConcept() {
        bitField0_ = (bitField0_ & ~0x00000001);
        concept_ = 0;
        onChanged();
        return this;
      }

      // optional int32 recipient_type = 2;
      private int recipientType_ ;
      /**
       * optional int32 recipient_type = 2;
       */
      public boolean hasRecipientType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 recipient_type = 2;
       */
      public int getRecipientType() {
        return recipientType_;
      }
      /**
       * optional int32 recipient_type = 2;
       */
      public Builder setRecipientType(int value) {
        bitField0_ |= 0x00000002;
        recipientType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 recipient_type = 2;
       */
      public Builder clearRecipientType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        recipientType_ = 0;
        onChanged();
        return this;
      }

      // optional .CDOTAResponseQuerySerialized responsequery = 3;
      private com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized responsequery_ = com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized, com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Builder, com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerializedOrBuilder> responsequeryBuilder_;
      /**
       * optional .CDOTAResponseQuerySerialized responsequery = 3;
       */
      public boolean hasResponsequery() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional .CDOTAResponseQuerySerialized responsequery = 3;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized getResponsequery() {
        if (responsequeryBuilder_ == null) {
          return responsequery_;
        } else {
          return responsequeryBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAResponseQuerySerialized responsequery = 3;
       */
      public Builder setResponsequery(com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized value) {
        if (responsequeryBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          responsequery_ = value;
          onChanged();
        } else {
          responsequeryBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .CDOTAResponseQuerySerialized responsequery = 3;
       */
      public Builder setResponsequery(
          com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Builder builderForValue) {
        if (responsequeryBuilder_ == null) {
          responsequery_ = builderForValue.build();
          onChanged();
        } else {
          responsequeryBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .CDOTAResponseQuerySerialized responsequery = 3;
       */
      public Builder mergeResponsequery(com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized value) {
        if (responsequeryBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004) &&
              responsequery_ != com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.getDefaultInstance()) {
            responsequery_ =
              com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.newBuilder(responsequery_).mergeFrom(value).buildPartial();
          } else {
            responsequery_ = value;
          }
          onChanged();
        } else {
          responsequeryBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .CDOTAResponseQuerySerialized responsequery = 3;
       */
      public Builder clearResponsequery() {
        if (responsequeryBuilder_ == null) {
          responsequery_ = com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.getDefaultInstance();
          onChanged();
        } else {
          responsequeryBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       * optional .CDOTAResponseQuerySerialized responsequery = 3;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Builder getResponsequeryBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getResponsequeryFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAResponseQuerySerialized responsequery = 3;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerializedOrBuilder getResponsequeryOrBuilder() {
        if (responsequeryBuilder_ != null) {
          return responsequeryBuilder_.getMessageOrBuilder();
        } else {
          return responsequery_;
        }
      }
      /**
       * optional .CDOTAResponseQuerySerialized responsequery = 3;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized, com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Builder, com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerializedOrBuilder> 
          getResponsequeryFieldBuilder() {
        if (responsequeryBuilder_ == null) {
          responsequeryBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized, com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerialized.Builder, com.dota2.proto.DotaUsermessages.CDOTAResponseQuerySerializedOrBuilder>(
                  responsequery_,
                  getParentForChildren(),
                  isClean());
          responsequery_ = null;
        }
        return responsequeryBuilder_;
      }

      // optional sfixed32 randomseed = 4 [default = 0];
      private int randomseed_ ;
      /**
       * optional sfixed32 randomseed = 4 [default = 0];
       */
      public boolean hasRandomseed() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional sfixed32 randomseed = 4 [default = 0];
       */
      public int getRandomseed() {
        return randomseed_;
      }
      /**
       * optional sfixed32 randomseed = 4 [default = 0];
       */
      public Builder setRandomseed(int value) {
        bitField0_ |= 0x00000008;
        randomseed_ = value;
        onChanged();
        return this;
      }
      /**
       * optional sfixed32 randomseed = 4 [default = 0];
       */
      public Builder clearRandomseed() {
        bitField0_ = (bitField0_ & ~0x00000008);
        randomseed_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTASpeechMatchOnClient)
    }

    static {
      defaultInstance = new CDOTASpeechMatchOnClient(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTASpeechMatchOnClient)
  }

  public interface CDOTAUserMsg_UnitEventOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // required .EDotaEntityMessages msg_type = 1 [default = DOTA_UNIT_SPEECH];
    /**
     * required .EDotaEntityMessages msg_type = 1 [default = DOTA_UNIT_SPEECH];
     */
    boolean hasMsgType();
    /**
     * required .EDotaEntityMessages msg_type = 1 [default = DOTA_UNIT_SPEECH];
     */
    com.dota2.proto.DotaUsermessages.EDotaEntityMessages getMsgType();

    // required int32 entity_index = 2;
    /**
     * required int32 entity_index = 2;
     */
    boolean hasEntityIndex();
    /**
     * required int32 entity_index = 2;
     */
    int getEntityIndex();

    // optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
    /**
     * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
     */
    boolean hasSpeech();
    /**
     * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech getSpeech();
    /**
     * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechOrBuilder getSpeechOrBuilder();

    // optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
    /**
     * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
     */
    boolean hasSpeechMute();
    /**
     * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute getSpeechMute();
    /**
     * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMuteOrBuilder getSpeechMuteOrBuilder();

    // optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
    /**
     * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
     */
    boolean hasAddGesture();
    /**
     * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture getAddGesture();
    /**
     * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGestureOrBuilder getAddGestureOrBuilder();

    // optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
    /**
     * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
     */
    boolean hasRemoveGesture();
    /**
     * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture getRemoveGesture();
    /**
     * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGestureOrBuilder getRemoveGestureOrBuilder();

    // optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
    /**
     * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
     */
    boolean hasBloodImpact();
    /**
     * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact getBloodImpact();
    /**
     * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpactOrBuilder getBloodImpactOrBuilder();

    // optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
    /**
     * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
     */
    boolean hasFadeGesture();
    /**
     * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture getFadeGesture();
    /**
     * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGestureOrBuilder getFadeGestureOrBuilder();

    // optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
    /**
     * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
     */
    boolean hasSpeechMatchOnClient();
    /**
     * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
     */
    com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient getSpeechMatchOnClient();
    /**
     * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
     */
    com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClientOrBuilder getSpeechMatchOnClientOrBuilder();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_UnitEvent}
   */
  public static final class CDOTAUserMsg_UnitEvent extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_UnitEventOrBuilder {
    // Use CDOTAUserMsg_UnitEvent.newBuilder() to construct.
    private CDOTAUserMsg_UnitEvent(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_UnitEvent(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_UnitEvent defaultInstance;
    public static CDOTAUserMsg_UnitEvent getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_UnitEvent getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_UnitEvent(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              com.dota2.proto.DotaUsermessages.EDotaEntityMessages value = com.dota2.proto.DotaUsermessages.EDotaEntityMessages.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                msgType_ = value;
              }
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              entityIndex_ = input.readInt32();
              break;
            }
            case 26: {
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                subBuilder = speech_.toBuilder();
              }
              speech_ = input.readMessage(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(speech_);
                speech_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
            case 34: {
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute.Builder subBuilder = null;
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                subBuilder = speechMute_.toBuilder();
              }
              speechMute_ = input.readMessage(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(speechMute_);
                speechMute_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000008;
              break;
            }
            case 42: {
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture.Builder subBuilder = null;
              if (((bitField0_ & 0x00000010) == 0x00000010)) {
                subBuilder = addGesture_.toBuilder();
              }
              addGesture_ = input.readMessage(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(addGesture_);
                addGesture_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000010;
              break;
            }
            case 50: {
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture.Builder subBuilder = null;
              if (((bitField0_ & 0x00000020) == 0x00000020)) {
                subBuilder = removeGesture_.toBuilder();
              }
              removeGesture_ = input.readMessage(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(removeGesture_);
                removeGesture_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000020;
              break;
            }
            case 58: {
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact.Builder subBuilder = null;
              if (((bitField0_ & 0x00000040) == 0x00000040)) {
                subBuilder = bloodImpact_.toBuilder();
              }
              bloodImpact_ = input.readMessage(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(bloodImpact_);
                bloodImpact_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000040;
              break;
            }
            case 66: {
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture.Builder subBuilder = null;
              if (((bitField0_ & 0x00000080) == 0x00000080)) {
                subBuilder = fadeGesture_.toBuilder();
              }
              fadeGesture_ = input.readMessage(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(fadeGesture_);
                fadeGesture_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000080;
              break;
            }
            case 74: {
              com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient.Builder subBuilder = null;
              if (((bitField0_ & 0x00000100) == 0x00000100)) {
                subBuilder = speechMatchOnClient_.toBuilder();
              }
              speechMatchOnClient_ = input.readMessage(com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(speechMatchOnClient_);
                speechMatchOnClient_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000100;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UnitEvent_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UnitEvent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_UnitEvent parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_UnitEvent(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public interface SpeechOrBuilder
        extends com.google.protobuf.MessageOrBuilder {

      // optional int32 concept = 1;
      /**
       * optional int32 concept = 1;
       */
      boolean hasConcept();
      /**
       * optional int32 concept = 1;
       */
      int getConcept();

      // optional string response = 2;
      /**
       * optional string response = 2;
       */
      boolean hasResponse();
      /**
       * optional string response = 2;
       */
      java.lang.String getResponse();
      /**
       * optional string response = 2;
       */
      com.google.protobuf.ByteString
          getResponseBytes();

      // optional int32 recipient_type = 3;
      /**
       * optional int32 recipient_type = 3;
       */
      boolean hasRecipientType();
      /**
       * optional int32 recipient_type = 3;
       */
      int getRecipientType();

      // optional int32 level = 4;
      /**
       * optional int32 level = 4;
       */
      boolean hasLevel();
      /**
       * optional int32 level = 4;
       */
      int getLevel();

      // optional bool muteable = 5 [default = false];
      /**
       * optional bool muteable = 5 [default = false];
       */
      boolean hasMuteable();
      /**
       * optional bool muteable = 5 [default = false];
       */
      boolean getMuteable();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_UnitEvent.Speech}
     */
    public static final class Speech extends
        com.google.protobuf.GeneratedMessage
        implements SpeechOrBuilder {
      // Use Speech.newBuilder() to construct.
      private Speech(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private Speech(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final Speech defaultInstance;
      public static Speech getDefaultInstance() {
        return defaultInstance;
      }

      public Speech getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private Speech(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                concept_ = input.readInt32();
                break;
              }
              case 18: {
                bitField0_ |= 0x00000002;
                response_ = input.readBytes();
                break;
              }
              case 24: {
                bitField0_ |= 0x00000004;
                recipientType_ = input.readInt32();
                break;
              }
              case 32: {
                bitField0_ |= 0x00000008;
                level_ = input.readInt32();
                break;
              }
              case 40: {
                bitField0_ |= 0x00000010;
                muteable_ = input.readBool();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UnitEvent_Speech_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UnitEvent_Speech_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public Speech parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new Speech(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      // optional int32 concept = 1;
      public static final int CONCEPT_FIELD_NUMBER = 1;
      private int concept_;
      /**
       * optional int32 concept = 1;
       */
      public boolean hasConcept() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 concept = 1;
       */
      public int getConcept() {
        return concept_;
      }

      // optional string response = 2;
      public static final int RESPONSE_FIELD_NUMBER = 2;
      private java.lang.Object response_;
      /**
       * optional string response = 2;
       */
      public boolean hasResponse() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional string response = 2;
       */
      public java.lang.String getResponse() {
        java.lang.Object ref = response_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            response_ = s;
          }
          return s;
        }
      }
      /**
       * optional string response = 2;
       */
      public com.google.protobuf.ByteString
          getResponseBytes() {
        java.lang.Object ref = response_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          response_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      // optional int32 recipient_type = 3;
      public static final int RECIPIENT_TYPE_FIELD_NUMBER = 3;
      private int recipientType_;
      /**
       * optional int32 recipient_type = 3;
       */
      public boolean hasRecipientType() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 recipient_type = 3;
       */
      public int getRecipientType() {
        return recipientType_;
      }

      // optional int32 level = 4;
      public static final int LEVEL_FIELD_NUMBER = 4;
      private int level_;
      /**
       * optional int32 level = 4;
       */
      public boolean hasLevel() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 level = 4;
       */
      public int getLevel() {
        return level_;
      }

      // optional bool muteable = 5 [default = false];
      public static final int MUTEABLE_FIELD_NUMBER = 5;
      private boolean muteable_;
      /**
       * optional bool muteable = 5 [default = false];
       */
      public boolean hasMuteable() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional bool muteable = 5 [default = false];
       */
      public boolean getMuteable() {
        return muteable_;
      }

      private void initFields() {
        concept_ = 0;
        response_ = "";
        recipientType_ = 0;
        level_ = 0;
        muteable_ = false;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, concept_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeBytes(2, getResponseBytes());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeInt32(3, recipientType_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeInt32(4, level_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          output.writeBool(5, muteable_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, concept_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(2, getResponseBytes());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(3, recipientType_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(4, level_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(5, muteable_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_UnitEvent.Speech}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder
         implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UnitEvent_Speech_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UnitEvent_Speech_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech.Builder.class);
        }

        // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          concept_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          response_ = "";
          bitField0_ = (bitField0_ & ~0x00000002);
          recipientType_ = 0;
          bitField0_ = (bitField0_ & ~0x00000004);
          level_ = 0;
          bitField0_ = (bitField0_ & ~0x00000008);
          muteable_ = false;
          bitField0_ = (bitField0_ & ~0x00000010);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UnitEvent_Speech_descriptor;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech getDefaultInstanceForType() {
          return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech.getDefaultInstance();
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech build() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech buildPartial() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.concept_ = concept_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.response_ = response_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.recipientType_ = recipientType_;
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000008;
          }
          result.level_ = level_;
          if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
            to_bitField0_ |= 0x00000010;
          }
          result.muteable_ = muteable_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech) {
            return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech other) {
          if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech.getDefaultInstance()) return this;
          if (other.hasConcept()) {
            setConcept(other.getConcept());
          }
          if (other.hasResponse()) {
            bitField0_ |= 0x00000002;
            response_ = other.response_;
            onChanged();
          }
          if (other.hasRecipientType()) {
            setRecipientType(other.getRecipientType());
          }
          if (other.hasLevel()) {
            setLevel(other.getLevel());
          }
          if (other.hasMuteable()) {
            setMuteable(other.getMuteable());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        // optional int32 concept = 1;
        private int concept_ ;
        /**
         * optional int32 concept = 1;
         */
        public boolean hasConcept() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 concept = 1;
         */
        public int getConcept() {
          return concept_;
        }
        /**
         * optional int32 concept = 1;
         */
        public Builder setConcept(int value) {
          bitField0_ |= 0x00000001;
          concept_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 concept = 1;
         */
        public Builder clearConcept() {
          bitField0_ = (bitField0_ & ~0x00000001);
          concept_ = 0;
          onChanged();
          return this;
        }

        // optional string response = 2;
        private java.lang.Object response_ = "";
        /**
         * optional string response = 2;
         */
        public boolean hasResponse() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional string response = 2;
         */
        public java.lang.String getResponse() {
          java.lang.Object ref = response_;
          if (!(ref instanceof java.lang.String)) {
            java.lang.String s = ((com.google.protobuf.ByteString) ref)
                .toStringUtf8();
            response_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * optional string response = 2;
         */
        public com.google.protobuf.ByteString
            getResponseBytes() {
          java.lang.Object ref = response_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            response_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * optional string response = 2;
         */
        public Builder setResponse(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
          response_ = value;
          onChanged();
          return this;
        }
        /**
         * optional string response = 2;
         */
        public Builder clearResponse() {
          bitField0_ = (bitField0_ & ~0x00000002);
          response_ = getDefaultInstance().getResponse();
          onChanged();
          return this;
        }
        /**
         * optional string response = 2;
         */
        public Builder setResponseBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
          response_ = value;
          onChanged();
          return this;
        }

        // optional int32 recipient_type = 3;
        private int recipientType_ ;
        /**
         * optional int32 recipient_type = 3;
         */
        public boolean hasRecipientType() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * optional int32 recipient_type = 3;
         */
        public int getRecipientType() {
          return recipientType_;
        }
        /**
         * optional int32 recipient_type = 3;
         */
        public Builder setRecipientType(int value) {
          bitField0_ |= 0x00000004;
          recipientType_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 recipient_type = 3;
         */
        public Builder clearRecipientType() {
          bitField0_ = (bitField0_ & ~0x00000004);
          recipientType_ = 0;
          onChanged();
          return this;
        }

        // optional int32 level = 4;
        private int level_ ;
        /**
         * optional int32 level = 4;
         */
        public boolean hasLevel() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * optional int32 level = 4;
         */
        public int getLevel() {
          return level_;
        }
        /**
         * optional int32 level = 4;
         */
        public Builder setLevel(int value) {
          bitField0_ |= 0x00000008;
          level_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 level = 4;
         */
        public Builder clearLevel() {
          bitField0_ = (bitField0_ & ~0x00000008);
          level_ = 0;
          onChanged();
          return this;
        }

        // optional bool muteable = 5 [default = false];
        private boolean muteable_ ;
        /**
         * optional bool muteable = 5 [default = false];
         */
        public boolean hasMuteable() {
          return ((bitField0_ & 0x00000010) == 0x00000010);
        }
        /**
         * optional bool muteable = 5 [default = false];
         */
        public boolean getMuteable() {
          return muteable_;
        }
        /**
         * optional bool muteable = 5 [default = false];
         */
        public Builder setMuteable(boolean value) {
          bitField0_ |= 0x00000010;
          muteable_ = value;
          onChanged();
          return this;
        }
        /**
         * optional bool muteable = 5 [default = false];
         */
        public Builder clearMuteable() {
          bitField0_ = (bitField0_ & ~0x00000010);
          muteable_ = false;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_UnitEvent.Speech)
      }

      static {
        defaultInstance = new Speech(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_UnitEvent.Speech)
    }

    public interface SpeechMuteOrBuilder
        extends com.google.protobuf.MessageOrBuilder {

      // optional float delay = 1 [default = 0.5];
      /**
       * optional float delay = 1 [default = 0.5];
       */
      boolean hasDelay();
      /**
       * optional float delay = 1 [default = 0.5];
       */
      float getDelay();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_UnitEvent.SpeechMute}
     */
    public static final class SpeechMute extends
        com.google.protobuf.GeneratedMessage
        implements SpeechMuteOrBuilder {
      // Use SpeechMute.newBuilder() to construct.
      private SpeechMute(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private SpeechMute(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final SpeechMute defaultInstance;
      public static SpeechMute getDefaultInstance() {
        return defaultInstance;
      }

      public SpeechMute getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private SpeechMute(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 13: {
                bitField0_ |= 0x00000001;
                delay_ = input.readFloat();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UnitEvent_SpeechMute_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UnitEvent_SpeechMute_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public SpeechMute parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new SpeechMute(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      // optional float delay = 1 [default = 0.5];
      public static final int DELAY_FIELD_NUMBER = 1;
      private float delay_;
      /**
       * optional float delay = 1 [default = 0.5];
       */
      public boolean hasDelay() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional float delay = 1 [default = 0.5];
       */
      public float getDelay() {
        return delay_;
      }

      private void initFields() {
        delay_ = 0.5F;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeFloat(1, delay_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeFloatSize(1, delay_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_UnitEvent.SpeechMute}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder
         implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMuteOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UnitEvent_SpeechMute_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UnitEvent_SpeechMute_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute.Builder.class);
        }

        // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          delay_ = 0.5F;
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UnitEvent_SpeechMute_descriptor;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute getDefaultInstanceForType() {
          return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute.getDefaultInstance();
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute build() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute buildPartial() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.delay_ = delay_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute) {
            return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute other) {
          if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute.getDefaultInstance()) return this;
          if (other.hasDelay()) {
            setDelay(other.getDelay());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        // optional float delay = 1 [default = 0.5];
        private float delay_ = 0.5F;
        /**
         * optional float delay = 1 [default = 0.5];
         */
        public boolean hasDelay() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional float delay = 1 [default = 0.5];
         */
        public float getDelay() {
          return delay_;
        }
        /**
         * optional float delay = 1 [default = 0.5];
         */
        public Builder setDelay(float value) {
          bitField0_ |= 0x00000001;
          delay_ = value;
          onChanged();
          return this;
        }
        /**
         * optional float delay = 1 [default = 0.5];
         */
        public Builder clearDelay() {
          bitField0_ = (bitField0_ & ~0x00000001);
          delay_ = 0.5F;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_UnitEvent.SpeechMute)
      }

      static {
        defaultInstance = new SpeechMute(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_UnitEvent.SpeechMute)
    }

    public interface AddGestureOrBuilder
        extends com.google.protobuf.MessageOrBuilder {

      // optional .Activity activity = 1 [default = ACT_INVALID];
      /**
       * optional .Activity activity = 1 [default = ACT_INVALID];
       */
      boolean hasActivity();
      /**
       * optional .Activity activity = 1 [default = ACT_INVALID];
       */
      com.dota2.proto.AiActivity.Activity getActivity();

      // optional int32 slot = 2;
      /**
       * optional int32 slot = 2;
       */
      boolean hasSlot();
      /**
       * optional int32 slot = 2;
       */
      int getSlot();

      // optional float fade_in = 3 [default = 0];
      /**
       * optional float fade_in = 3 [default = 0];
       */
      boolean hasFadeIn();
      /**
       * optional float fade_in = 3 [default = 0];
       */
      float getFadeIn();

      // optional float fade_out = 4 [default = 0.1];
      /**
       * optional float fade_out = 4 [default = 0.1];
       */
      boolean hasFadeOut();
      /**
       * optional float fade_out = 4 [default = 0.1];
       */
      float getFadeOut();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_UnitEvent.AddGesture}
     */
    public static final class AddGesture extends
        com.google.protobuf.GeneratedMessage
        implements AddGestureOrBuilder {
      // Use AddGesture.newBuilder() to construct.
      private AddGesture(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private AddGesture(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final AddGesture defaultInstance;
      public static AddGesture getDefaultInstance() {
        return defaultInstance;
      }

      public AddGesture getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private AddGesture(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                int rawValue = input.readEnum();
                com.dota2.proto.AiActivity.Activity value = com.dota2.proto.AiActivity.Activity.valueOf(rawValue);
                if (value == null) {
                  unknownFields.mergeVarintField(1, rawValue);
                } else {
                  bitField0_ |= 0x00000001;
                  activity_ = value;
                }
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                slot_ = input.readInt32();
                break;
              }
              case 29: {
                bitField0_ |= 0x00000004;
                fadeIn_ = input.readFloat();
                break;
              }
              case 37: {
                bitField0_ |= 0x00000008;
                fadeOut_ = input.readFloat();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UnitEvent_AddGesture_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UnitEvent_AddGesture_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public AddGesture parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new AddGesture(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      // optional .Activity activity = 1 [default = ACT_INVALID];
      public static final int ACTIVITY_FIELD_NUMBER = 1;
      private com.dota2.proto.AiActivity.Activity activity_;
      /**
       * optional .Activity activity = 1 [default = ACT_INVALID];
       */
      public boolean hasActivity() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .Activity activity = 1 [default = ACT_INVALID];
       */
      public com.dota2.proto.AiActivity.Activity getActivity() {
        return activity_;
      }

      // optional int32 slot = 2;
      public static final int SLOT_FIELD_NUMBER = 2;
      private int slot_;
      /**
       * optional int32 slot = 2;
       */
      public boolean hasSlot() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 slot = 2;
       */
      public int getSlot() {
        return slot_;
      }

      // optional float fade_in = 3 [default = 0];
      public static final int FADE_IN_FIELD_NUMBER = 3;
      private float fadeIn_;
      /**
       * optional float fade_in = 3 [default = 0];
       */
      public boolean hasFadeIn() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional float fade_in = 3 [default = 0];
       */
      public float getFadeIn() {
        return fadeIn_;
      }

      // optional float fade_out = 4 [default = 0.1];
      public static final int FADE_OUT_FIELD_NUMBER = 4;
      private float fadeOut_;
      /**
       * optional float fade_out = 4 [default = 0.1];
       */
      public boolean hasFadeOut() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional float fade_out = 4 [default = 0.1];
       */
      public float getFadeOut() {
        return fadeOut_;
      }

      private void initFields() {
        activity_ = com.dota2.proto.AiActivity.Activity.ACT_INVALID;
        slot_ = 0;
        fadeIn_ = 0F;
        fadeOut_ = 0.1F;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeEnum(1, activity_.getNumber());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeInt32(2, slot_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeFloat(3, fadeIn_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeFloat(4, fadeOut_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(1, activity_.getNumber());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(2, slot_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeFloatSize(3, fadeIn_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeFloatSize(4, fadeOut_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_UnitEvent.AddGesture}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder
         implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGestureOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UnitEvent_AddGesture_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UnitEvent_AddGesture_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture.Builder.class);
        }

        // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          activity_ = com.dota2.proto.AiActivity.Activity.ACT_INVALID;
          bitField0_ = (bitField0_ & ~0x00000001);
          slot_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          fadeIn_ = 0F;
          bitField0_ = (bitField0_ & ~0x00000004);
          fadeOut_ = 0.1F;
          bitField0_ = (bitField0_ & ~0x00000008);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UnitEvent_AddGesture_descriptor;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture getDefaultInstanceForType() {
          return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture.getDefaultInstance();
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture build() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture buildPartial() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.activity_ = activity_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.slot_ = slot_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.fadeIn_ = fadeIn_;
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000008;
          }
          result.fadeOut_ = fadeOut_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture) {
            return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture other) {
          if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture.getDefaultInstance()) return this;
          if (other.hasActivity()) {
            setActivity(other.getActivity());
          }
          if (other.hasSlot()) {
            setSlot(other.getSlot());
          }
          if (other.hasFadeIn()) {
            setFadeIn(other.getFadeIn());
          }
          if (other.hasFadeOut()) {
            setFadeOut(other.getFadeOut());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        // optional .Activity activity = 1 [default = ACT_INVALID];
        private com.dota2.proto.AiActivity.Activity activity_ = com.dota2.proto.AiActivity.Activity.ACT_INVALID;
        /**
         * optional .Activity activity = 1 [default = ACT_INVALID];
         */
        public boolean hasActivity() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional .Activity activity = 1 [default = ACT_INVALID];
         */
        public com.dota2.proto.AiActivity.Activity getActivity() {
          return activity_;
        }
        /**
         * optional .Activity activity = 1 [default = ACT_INVALID];
         */
        public Builder setActivity(com.dota2.proto.AiActivity.Activity value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000001;
          activity_ = value;
          onChanged();
          return this;
        }
        /**
         * optional .Activity activity = 1 [default = ACT_INVALID];
         */
        public Builder clearActivity() {
          bitField0_ = (bitField0_ & ~0x00000001);
          activity_ = com.dota2.proto.AiActivity.Activity.ACT_INVALID;
          onChanged();
          return this;
        }

        // optional int32 slot = 2;
        private int slot_ ;
        /**
         * optional int32 slot = 2;
         */
        public boolean hasSlot() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional int32 slot = 2;
         */
        public int getSlot() {
          return slot_;
        }
        /**
         * optional int32 slot = 2;
         */
        public Builder setSlot(int value) {
          bitField0_ |= 0x00000002;
          slot_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 slot = 2;
         */
        public Builder clearSlot() {
          bitField0_ = (bitField0_ & ~0x00000002);
          slot_ = 0;
          onChanged();
          return this;
        }

        // optional float fade_in = 3 [default = 0];
        private float fadeIn_ ;
        /**
         * optional float fade_in = 3 [default = 0];
         */
        public boolean hasFadeIn() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * optional float fade_in = 3 [default = 0];
         */
        public float getFadeIn() {
          return fadeIn_;
        }
        /**
         * optional float fade_in = 3 [default = 0];
         */
        public Builder setFadeIn(float value) {
          bitField0_ |= 0x00000004;
          fadeIn_ = value;
          onChanged();
          return this;
        }
        /**
         * optional float fade_in = 3 [default = 0];
         */
        public Builder clearFadeIn() {
          bitField0_ = (bitField0_ & ~0x00000004);
          fadeIn_ = 0F;
          onChanged();
          return this;
        }

        // optional float fade_out = 4 [default = 0.1];
        private float fadeOut_ = 0.1F;
        /**
         * optional float fade_out = 4 [default = 0.1];
         */
        public boolean hasFadeOut() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * optional float fade_out = 4 [default = 0.1];
         */
        public float getFadeOut() {
          return fadeOut_;
        }
        /**
         * optional float fade_out = 4 [default = 0.1];
         */
        public Builder setFadeOut(float value) {
          bitField0_ |= 0x00000008;
          fadeOut_ = value;
          onChanged();
          return this;
        }
        /**
         * optional float fade_out = 4 [default = 0.1];
         */
        public Builder clearFadeOut() {
          bitField0_ = (bitField0_ & ~0x00000008);
          fadeOut_ = 0.1F;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_UnitEvent.AddGesture)
      }

      static {
        defaultInstance = new AddGesture(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_UnitEvent.AddGesture)
    }

    public interface RemoveGestureOrBuilder
        extends com.google.protobuf.MessageOrBuilder {

      // optional .Activity activity = 1 [default = ACT_INVALID];
      /**
       * optional .Activity activity = 1 [default = ACT_INVALID];
       */
      boolean hasActivity();
      /**
       * optional .Activity activity = 1 [default = ACT_INVALID];
       */
      com.dota2.proto.AiActivity.Activity getActivity();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_UnitEvent.RemoveGesture}
     */
    public static final class RemoveGesture extends
        com.google.protobuf.GeneratedMessage
        implements RemoveGestureOrBuilder {
      // Use RemoveGesture.newBuilder() to construct.
      private RemoveGesture(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private RemoveGesture(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final RemoveGesture defaultInstance;
      public static RemoveGesture getDefaultInstance() {
        return defaultInstance;
      }

      public RemoveGesture getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private RemoveGesture(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                int rawValue = input.readEnum();
                com.dota2.proto.AiActivity.Activity value = com.dota2.proto.AiActivity.Activity.valueOf(rawValue);
                if (value == null) {
                  unknownFields.mergeVarintField(1, rawValue);
                } else {
                  bitField0_ |= 0x00000001;
                  activity_ = value;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UnitEvent_RemoveGesture_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UnitEvent_RemoveGesture_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public RemoveGesture parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new RemoveGesture(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      // optional .Activity activity = 1 [default = ACT_INVALID];
      public static final int ACTIVITY_FIELD_NUMBER = 1;
      private com.dota2.proto.AiActivity.Activity activity_;
      /**
       * optional .Activity activity = 1 [default = ACT_INVALID];
       */
      public boolean hasActivity() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .Activity activity = 1 [default = ACT_INVALID];
       */
      public com.dota2.proto.AiActivity.Activity getActivity() {
        return activity_;
      }

      private void initFields() {
        activity_ = com.dota2.proto.AiActivity.Activity.ACT_INVALID;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeEnum(1, activity_.getNumber());
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(1, activity_.getNumber());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_UnitEvent.RemoveGesture}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder
         implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGestureOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UnitEvent_RemoveGesture_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UnitEvent_RemoveGesture_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture.Builder.class);
        }

        // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          activity_ = com.dota2.proto.AiActivity.Activity.ACT_INVALID;
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UnitEvent_RemoveGesture_descriptor;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture getDefaultInstanceForType() {
          return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture.getDefaultInstance();
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture build() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture buildPartial() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.activity_ = activity_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture) {
            return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture other) {
          if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture.getDefaultInstance()) return this;
          if (other.hasActivity()) {
            setActivity(other.getActivity());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        // optional .Activity activity = 1 [default = ACT_INVALID];
        private com.dota2.proto.AiActivity.Activity activity_ = com.dota2.proto.AiActivity.Activity.ACT_INVALID;
        /**
         * optional .Activity activity = 1 [default = ACT_INVALID];
         */
        public boolean hasActivity() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional .Activity activity = 1 [default = ACT_INVALID];
         */
        public com.dota2.proto.AiActivity.Activity getActivity() {
          return activity_;
        }
        /**
         * optional .Activity activity = 1 [default = ACT_INVALID];
         */
        public Builder setActivity(com.dota2.proto.AiActivity.Activity value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000001;
          activity_ = value;
          onChanged();
          return this;
        }
        /**
         * optional .Activity activity = 1 [default = ACT_INVALID];
         */
        public Builder clearActivity() {
          bitField0_ = (bitField0_ & ~0x00000001);
          activity_ = com.dota2.proto.AiActivity.Activity.ACT_INVALID;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_UnitEvent.RemoveGesture)
      }

      static {
        defaultInstance = new RemoveGesture(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_UnitEvent.RemoveGesture)
    }

    public interface BloodImpactOrBuilder
        extends com.google.protobuf.MessageOrBuilder {

      // optional int32 scale = 1;
      /**
       * optional int32 scale = 1;
       */
      boolean hasScale();
      /**
       * optional int32 scale = 1;
       */
      int getScale();

      // optional int32 x_normal = 2;
      /**
       * optional int32 x_normal = 2;
       */
      boolean hasXNormal();
      /**
       * optional int32 x_normal = 2;
       */
      int getXNormal();

      // optional int32 y_normal = 3;
      /**
       * optional int32 y_normal = 3;
       */
      boolean hasYNormal();
      /**
       * optional int32 y_normal = 3;
       */
      int getYNormal();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_UnitEvent.BloodImpact}
     */
    public static final class BloodImpact extends
        com.google.protobuf.GeneratedMessage
        implements BloodImpactOrBuilder {
      // Use BloodImpact.newBuilder() to construct.
      private BloodImpact(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private BloodImpact(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final BloodImpact defaultInstance;
      public static BloodImpact getDefaultInstance() {
        return defaultInstance;
      }

      public BloodImpact getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private BloodImpact(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                scale_ = input.readInt32();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                xNormal_ = input.readInt32();
                break;
              }
              case 24: {
                bitField0_ |= 0x00000004;
                yNormal_ = input.readInt32();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UnitEvent_BloodImpact_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UnitEvent_BloodImpact_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public BloodImpact parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new BloodImpact(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      // optional int32 scale = 1;
      public static final int SCALE_FIELD_NUMBER = 1;
      private int scale_;
      /**
       * optional int32 scale = 1;
       */
      public boolean hasScale() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 scale = 1;
       */
      public int getScale() {
        return scale_;
      }

      // optional int32 x_normal = 2;
      public static final int X_NORMAL_FIELD_NUMBER = 2;
      private int xNormal_;
      /**
       * optional int32 x_normal = 2;
       */
      public boolean hasXNormal() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 x_normal = 2;
       */
      public int getXNormal() {
        return xNormal_;
      }

      // optional int32 y_normal = 3;
      public static final int Y_NORMAL_FIELD_NUMBER = 3;
      private int yNormal_;
      /**
       * optional int32 y_normal = 3;
       */
      public boolean hasYNormal() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 y_normal = 3;
       */
      public int getYNormal() {
        return yNormal_;
      }

      private void initFields() {
        scale_ = 0;
        xNormal_ = 0;
        yNormal_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, scale_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeInt32(2, xNormal_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeInt32(3, yNormal_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, scale_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(2, xNormal_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(3, yNormal_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_UnitEvent.BloodImpact}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder
         implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpactOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UnitEvent_BloodImpact_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UnitEvent_BloodImpact_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact.Builder.class);
        }

        // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          scale_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          xNormal_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          yNormal_ = 0;
          bitField0_ = (bitField0_ & ~0x00000004);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UnitEvent_BloodImpact_descriptor;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact getDefaultInstanceForType() {
          return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact.getDefaultInstance();
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact build() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact buildPartial() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.scale_ = scale_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.xNormal_ = xNormal_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.yNormal_ = yNormal_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact) {
            return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact other) {
          if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact.getDefaultInstance()) return this;
          if (other.hasScale()) {
            setScale(other.getScale());
          }
          if (other.hasXNormal()) {
            setXNormal(other.getXNormal());
          }
          if (other.hasYNormal()) {
            setYNormal(other.getYNormal());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        // optional int32 scale = 1;
        private int scale_ ;
        /**
         * optional int32 scale = 1;
         */
        public boolean hasScale() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 scale = 1;
         */
        public int getScale() {
          return scale_;
        }
        /**
         * optional int32 scale = 1;
         */
        public Builder setScale(int value) {
          bitField0_ |= 0x00000001;
          scale_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 scale = 1;
         */
        public Builder clearScale() {
          bitField0_ = (bitField0_ & ~0x00000001);
          scale_ = 0;
          onChanged();
          return this;
        }

        // optional int32 x_normal = 2;
        private int xNormal_ ;
        /**
         * optional int32 x_normal = 2;
         */
        public boolean hasXNormal() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional int32 x_normal = 2;
         */
        public int getXNormal() {
          return xNormal_;
        }
        /**
         * optional int32 x_normal = 2;
         */
        public Builder setXNormal(int value) {
          bitField0_ |= 0x00000002;
          xNormal_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 x_normal = 2;
         */
        public Builder clearXNormal() {
          bitField0_ = (bitField0_ & ~0x00000002);
          xNormal_ = 0;
          onChanged();
          return this;
        }

        // optional int32 y_normal = 3;
        private int yNormal_ ;
        /**
         * optional int32 y_normal = 3;
         */
        public boolean hasYNormal() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * optional int32 y_normal = 3;
         */
        public int getYNormal() {
          return yNormal_;
        }
        /**
         * optional int32 y_normal = 3;
         */
        public Builder setYNormal(int value) {
          bitField0_ |= 0x00000004;
          yNormal_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 y_normal = 3;
         */
        public Builder clearYNormal() {
          bitField0_ = (bitField0_ & ~0x00000004);
          yNormal_ = 0;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_UnitEvent.BloodImpact)
      }

      static {
        defaultInstance = new BloodImpact(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_UnitEvent.BloodImpact)
    }

    public interface FadeGestureOrBuilder
        extends com.google.protobuf.MessageOrBuilder {

      // optional .Activity activity = 1 [default = ACT_INVALID];
      /**
       * optional .Activity activity = 1 [default = ACT_INVALID];
       */
      boolean hasActivity();
      /**
       * optional .Activity activity = 1 [default = ACT_INVALID];
       */
      com.dota2.proto.AiActivity.Activity getActivity();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_UnitEvent.FadeGesture}
     */
    public static final class FadeGesture extends
        com.google.protobuf.GeneratedMessage
        implements FadeGestureOrBuilder {
      // Use FadeGesture.newBuilder() to construct.
      private FadeGesture(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private FadeGesture(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final FadeGesture defaultInstance;
      public static FadeGesture getDefaultInstance() {
        return defaultInstance;
      }

      public FadeGesture getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private FadeGesture(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                int rawValue = input.readEnum();
                com.dota2.proto.AiActivity.Activity value = com.dota2.proto.AiActivity.Activity.valueOf(rawValue);
                if (value == null) {
                  unknownFields.mergeVarintField(1, rawValue);
                } else {
                  bitField0_ |= 0x00000001;
                  activity_ = value;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UnitEvent_FadeGesture_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UnitEvent_FadeGesture_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public FadeGesture parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new FadeGesture(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      // optional .Activity activity = 1 [default = ACT_INVALID];
      public static final int ACTIVITY_FIELD_NUMBER = 1;
      private com.dota2.proto.AiActivity.Activity activity_;
      /**
       * optional .Activity activity = 1 [default = ACT_INVALID];
       */
      public boolean hasActivity() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .Activity activity = 1 [default = ACT_INVALID];
       */
      public com.dota2.proto.AiActivity.Activity getActivity() {
        return activity_;
      }

      private void initFields() {
        activity_ = com.dota2.proto.AiActivity.Activity.ACT_INVALID;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeEnum(1, activity_.getNumber());
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(1, activity_.getNumber());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_UnitEvent.FadeGesture}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder
         implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGestureOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UnitEvent_FadeGesture_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UnitEvent_FadeGesture_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture.Builder.class);
        }

        // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          activity_ = com.dota2.proto.AiActivity.Activity.ACT_INVALID;
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UnitEvent_FadeGesture_descriptor;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture getDefaultInstanceForType() {
          return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture.getDefaultInstance();
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture build() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture buildPartial() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.activity_ = activity_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture) {
            return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture other) {
          if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture.getDefaultInstance()) return this;
          if (other.hasActivity()) {
            setActivity(other.getActivity());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        // optional .Activity activity = 1 [default = ACT_INVALID];
        private com.dota2.proto.AiActivity.Activity activity_ = com.dota2.proto.AiActivity.Activity.ACT_INVALID;
        /**
         * optional .Activity activity = 1 [default = ACT_INVALID];
         */
        public boolean hasActivity() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional .Activity activity = 1 [default = ACT_INVALID];
         */
        public com.dota2.proto.AiActivity.Activity getActivity() {
          return activity_;
        }
        /**
         * optional .Activity activity = 1 [default = ACT_INVALID];
         */
        public Builder setActivity(com.dota2.proto.AiActivity.Activity value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000001;
          activity_ = value;
          onChanged();
          return this;
        }
        /**
         * optional .Activity activity = 1 [default = ACT_INVALID];
         */
        public Builder clearActivity() {
          bitField0_ = (bitField0_ & ~0x00000001);
          activity_ = com.dota2.proto.AiActivity.Activity.ACT_INVALID;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_UnitEvent.FadeGesture)
      }

      static {
        defaultInstance = new FadeGesture(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_UnitEvent.FadeGesture)
    }

    private int bitField0_;
    // required .EDotaEntityMessages msg_type = 1 [default = DOTA_UNIT_SPEECH];
    public static final int MSG_TYPE_FIELD_NUMBER = 1;
    private com.dota2.proto.DotaUsermessages.EDotaEntityMessages msgType_;
    /**
     * required .EDotaEntityMessages msg_type = 1 [default = DOTA_UNIT_SPEECH];
     */
    public boolean hasMsgType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required .EDotaEntityMessages msg_type = 1 [default = DOTA_UNIT_SPEECH];
     */
    public com.dota2.proto.DotaUsermessages.EDotaEntityMessages getMsgType() {
      return msgType_;
    }

    // required int32 entity_index = 2;
    public static final int ENTITY_INDEX_FIELD_NUMBER = 2;
    private int entityIndex_;
    /**
     * required int32 entity_index = 2;
     */
    public boolean hasEntityIndex() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required int32 entity_index = 2;
     */
    public int getEntityIndex() {
      return entityIndex_;
    }

    // optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
    public static final int SPEECH_FIELD_NUMBER = 3;
    private com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech speech_;
    /**
     * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
     */
    public boolean hasSpeech() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech getSpeech() {
      return speech_;
    }
    /**
     * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechOrBuilder getSpeechOrBuilder() {
      return speech_;
    }

    // optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
    public static final int SPEECH_MUTE_FIELD_NUMBER = 4;
    private com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute speechMute_;
    /**
     * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
     */
    public boolean hasSpeechMute() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute getSpeechMute() {
      return speechMute_;
    }
    /**
     * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMuteOrBuilder getSpeechMuteOrBuilder() {
      return speechMute_;
    }

    // optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
    public static final int ADD_GESTURE_FIELD_NUMBER = 5;
    private com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture addGesture_;
    /**
     * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
     */
    public boolean hasAddGesture() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture getAddGesture() {
      return addGesture_;
    }
    /**
     * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGestureOrBuilder getAddGestureOrBuilder() {
      return addGesture_;
    }

    // optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
    public static final int REMOVE_GESTURE_FIELD_NUMBER = 6;
    private com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture removeGesture_;
    /**
     * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
     */
    public boolean hasRemoveGesture() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture getRemoveGesture() {
      return removeGesture_;
    }
    /**
     * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGestureOrBuilder getRemoveGestureOrBuilder() {
      return removeGesture_;
    }

    // optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
    public static final int BLOOD_IMPACT_FIELD_NUMBER = 7;
    private com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact bloodImpact_;
    /**
     * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
     */
    public boolean hasBloodImpact() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact getBloodImpact() {
      return bloodImpact_;
    }
    /**
     * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpactOrBuilder getBloodImpactOrBuilder() {
      return bloodImpact_;
    }

    // optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
    public static final int FADE_GESTURE_FIELD_NUMBER = 8;
    private com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture fadeGesture_;
    /**
     * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
     */
    public boolean hasFadeGesture() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture getFadeGesture() {
      return fadeGesture_;
    }
    /**
     * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGestureOrBuilder getFadeGestureOrBuilder() {
      return fadeGesture_;
    }

    // optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
    public static final int SPEECH_MATCH_ON_CLIENT_FIELD_NUMBER = 9;
    private com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient speechMatchOnClient_;
    /**
     * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
     */
    public boolean hasSpeechMatchOnClient() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
     */
    public com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient getSpeechMatchOnClient() {
      return speechMatchOnClient_;
    }
    /**
     * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
     */
    public com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClientOrBuilder getSpeechMatchOnClientOrBuilder() {
      return speechMatchOnClient_;
    }

    private void initFields() {
      msgType_ = com.dota2.proto.DotaUsermessages.EDotaEntityMessages.DOTA_UNIT_SPEECH;
      entityIndex_ = 0;
      speech_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech.getDefaultInstance();
      speechMute_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute.getDefaultInstance();
      addGesture_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture.getDefaultInstance();
      removeGesture_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture.getDefaultInstance();
      bloodImpact_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact.getDefaultInstance();
      fadeGesture_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture.getDefaultInstance();
      speechMatchOnClient_ = com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasMsgType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasEntityIndex()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasSpeechMatchOnClient()) {
        if (!getSpeechMatchOnClient().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, msgType_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, entityIndex_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, speech_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(4, speechMute_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(5, addGesture_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeMessage(6, removeGesture_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeMessage(7, bloodImpact_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeMessage(8, fadeGesture_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeMessage(9, speechMatchOnClient_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, msgType_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, entityIndex_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, speech_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, speechMute_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, addGesture_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, removeGesture_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, bloodImpact_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, fadeGesture_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, speechMatchOnClient_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_UnitEvent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEventOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UnitEvent_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UnitEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getSpeechFieldBuilder();
          getSpeechMuteFieldBuilder();
          getAddGestureFieldBuilder();
          getRemoveGestureFieldBuilder();
          getBloodImpactFieldBuilder();
          getFadeGestureFieldBuilder();
          getSpeechMatchOnClientFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        msgType_ = com.dota2.proto.DotaUsermessages.EDotaEntityMessages.DOTA_UNIT_SPEECH;
        bitField0_ = (bitField0_ & ~0x00000001);
        entityIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (speechBuilder_ == null) {
          speech_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech.getDefaultInstance();
        } else {
          speechBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        if (speechMuteBuilder_ == null) {
          speechMute_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute.getDefaultInstance();
        } else {
          speechMuteBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        if (addGestureBuilder_ == null) {
          addGesture_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture.getDefaultInstance();
        } else {
          addGestureBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        if (removeGestureBuilder_ == null) {
          removeGesture_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture.getDefaultInstance();
        } else {
          removeGestureBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        if (bloodImpactBuilder_ == null) {
          bloodImpact_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact.getDefaultInstance();
        } else {
          bloodImpactBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        if (fadeGestureBuilder_ == null) {
          fadeGesture_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture.getDefaultInstance();
        } else {
          fadeGestureBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        if (speechMatchOnClientBuilder_ == null) {
          speechMatchOnClient_ = com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient.getDefaultInstance();
        } else {
          speechMatchOnClientBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UnitEvent_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.msgType_ = msgType_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.entityIndex_ = entityIndex_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (speechBuilder_ == null) {
          result.speech_ = speech_;
        } else {
          result.speech_ = speechBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        if (speechMuteBuilder_ == null) {
          result.speechMute_ = speechMute_;
        } else {
          result.speechMute_ = speechMuteBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        if (addGestureBuilder_ == null) {
          result.addGesture_ = addGesture_;
        } else {
          result.addGesture_ = addGestureBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        if (removeGestureBuilder_ == null) {
          result.removeGesture_ = removeGesture_;
        } else {
          result.removeGesture_ = removeGestureBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        if (bloodImpactBuilder_ == null) {
          result.bloodImpact_ = bloodImpact_;
        } else {
          result.bloodImpact_ = bloodImpactBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        if (fadeGestureBuilder_ == null) {
          result.fadeGesture_ = fadeGesture_;
        } else {
          result.fadeGesture_ = fadeGestureBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        if (speechMatchOnClientBuilder_ == null) {
          result.speechMatchOnClient_ = speechMatchOnClient_;
        } else {
          result.speechMatchOnClient_ = speechMatchOnClientBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.getDefaultInstance()) return this;
        if (other.hasMsgType()) {
          setMsgType(other.getMsgType());
        }
        if (other.hasEntityIndex()) {
          setEntityIndex(other.getEntityIndex());
        }
        if (other.hasSpeech()) {
          mergeSpeech(other.getSpeech());
        }
        if (other.hasSpeechMute()) {
          mergeSpeechMute(other.getSpeechMute());
        }
        if (other.hasAddGesture()) {
          mergeAddGesture(other.getAddGesture());
        }
        if (other.hasRemoveGesture()) {
          mergeRemoveGesture(other.getRemoveGesture());
        }
        if (other.hasBloodImpact()) {
          mergeBloodImpact(other.getBloodImpact());
        }
        if (other.hasFadeGesture()) {
          mergeFadeGesture(other.getFadeGesture());
        }
        if (other.hasSpeechMatchOnClient()) {
          mergeSpeechMatchOnClient(other.getSpeechMatchOnClient());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasMsgType()) {
          
          return false;
        }
        if (!hasEntityIndex()) {
          
          return false;
        }
        if (hasSpeechMatchOnClient()) {
          if (!getSpeechMatchOnClient().isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required .EDotaEntityMessages msg_type = 1 [default = DOTA_UNIT_SPEECH];
      private com.dota2.proto.DotaUsermessages.EDotaEntityMessages msgType_ = com.dota2.proto.DotaUsermessages.EDotaEntityMessages.DOTA_UNIT_SPEECH;
      /**
       * required .EDotaEntityMessages msg_type = 1 [default = DOTA_UNIT_SPEECH];
       */
      public boolean hasMsgType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required .EDotaEntityMessages msg_type = 1 [default = DOTA_UNIT_SPEECH];
       */
      public com.dota2.proto.DotaUsermessages.EDotaEntityMessages getMsgType() {
        return msgType_;
      }
      /**
       * required .EDotaEntityMessages msg_type = 1 [default = DOTA_UNIT_SPEECH];
       */
      public Builder setMsgType(com.dota2.proto.DotaUsermessages.EDotaEntityMessages value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        msgType_ = value;
        onChanged();
        return this;
      }
      /**
       * required .EDotaEntityMessages msg_type = 1 [default = DOTA_UNIT_SPEECH];
       */
      public Builder clearMsgType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        msgType_ = com.dota2.proto.DotaUsermessages.EDotaEntityMessages.DOTA_UNIT_SPEECH;
        onChanged();
        return this;
      }

      // required int32 entity_index = 2;
      private int entityIndex_ ;
      /**
       * required int32 entity_index = 2;
       */
      public boolean hasEntityIndex() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required int32 entity_index = 2;
       */
      public int getEntityIndex() {
        return entityIndex_;
      }
      /**
       * required int32 entity_index = 2;
       */
      public Builder setEntityIndex(int value) {
        bitField0_ |= 0x00000002;
        entityIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 entity_index = 2;
       */
      public Builder clearEntityIndex() {
        bitField0_ = (bitField0_ & ~0x00000002);
        entityIndex_ = 0;
        onChanged();
        return this;
      }

      // optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
      private com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech speech_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechOrBuilder> speechBuilder_;
      /**
       * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
       */
      public boolean hasSpeech() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech getSpeech() {
        if (speechBuilder_ == null) {
          return speech_;
        } else {
          return speechBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
       */
      public Builder setSpeech(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech value) {
        if (speechBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          speech_ = value;
          onChanged();
        } else {
          speechBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
       */
      public Builder setSpeech(
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech.Builder builderForValue) {
        if (speechBuilder_ == null) {
          speech_ = builderForValue.build();
          onChanged();
        } else {
          speechBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
       */
      public Builder mergeSpeech(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech value) {
        if (speechBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004) &&
              speech_ != com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech.getDefaultInstance()) {
            speech_ =
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech.newBuilder(speech_).mergeFrom(value).buildPartial();
          } else {
            speech_ = value;
          }
          onChanged();
        } else {
          speechBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
       */
      public Builder clearSpeech() {
        if (speechBuilder_ == null) {
          speech_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech.getDefaultInstance();
          onChanged();
        } else {
          speechBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech.Builder getSpeechBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getSpeechFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechOrBuilder getSpeechOrBuilder() {
        if (speechBuilder_ != null) {
          return speechBuilder_.getMessageOrBuilder();
        } else {
          return speech_;
        }
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechOrBuilder> 
          getSpeechFieldBuilder() {
        if (speechBuilder_ == null) {
          speechBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.Speech.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechOrBuilder>(
                  speech_,
                  getParentForChildren(),
                  isClean());
          speech_ = null;
        }
        return speechBuilder_;
      }

      // optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
      private com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute speechMute_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMuteOrBuilder> speechMuteBuilder_;
      /**
       * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
       */
      public boolean hasSpeechMute() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute getSpeechMute() {
        if (speechMuteBuilder_ == null) {
          return speechMute_;
        } else {
          return speechMuteBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
       */
      public Builder setSpeechMute(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute value) {
        if (speechMuteBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          speechMute_ = value;
          onChanged();
        } else {
          speechMuteBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
       */
      public Builder setSpeechMute(
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute.Builder builderForValue) {
        if (speechMuteBuilder_ == null) {
          speechMute_ = builderForValue.build();
          onChanged();
        } else {
          speechMuteBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
       */
      public Builder mergeSpeechMute(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute value) {
        if (speechMuteBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008) &&
              speechMute_ != com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute.getDefaultInstance()) {
            speechMute_ =
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute.newBuilder(speechMute_).mergeFrom(value).buildPartial();
          } else {
            speechMute_ = value;
          }
          onChanged();
        } else {
          speechMuteBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
       */
      public Builder clearSpeechMute() {
        if (speechMuteBuilder_ == null) {
          speechMute_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute.getDefaultInstance();
          onChanged();
        } else {
          speechMuteBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute.Builder getSpeechMuteBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getSpeechMuteFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMuteOrBuilder getSpeechMuteOrBuilder() {
        if (speechMuteBuilder_ != null) {
          return speechMuteBuilder_.getMessageOrBuilder();
        } else {
          return speechMute_;
        }
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMuteOrBuilder> 
          getSpeechMuteFieldBuilder() {
        if (speechMuteBuilder_ == null) {
          speechMuteBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMute.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.SpeechMuteOrBuilder>(
                  speechMute_,
                  getParentForChildren(),
                  isClean());
          speechMute_ = null;
        }
        return speechMuteBuilder_;
      }

      // optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
      private com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture addGesture_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGestureOrBuilder> addGestureBuilder_;
      /**
       * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
       */
      public boolean hasAddGesture() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture getAddGesture() {
        if (addGestureBuilder_ == null) {
          return addGesture_;
        } else {
          return addGestureBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
       */
      public Builder setAddGesture(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture value) {
        if (addGestureBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          addGesture_ = value;
          onChanged();
        } else {
          addGestureBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
       */
      public Builder setAddGesture(
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture.Builder builderForValue) {
        if (addGestureBuilder_ == null) {
          addGesture_ = builderForValue.build();
          onChanged();
        } else {
          addGestureBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
       */
      public Builder mergeAddGesture(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture value) {
        if (addGestureBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010) &&
              addGesture_ != com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture.getDefaultInstance()) {
            addGesture_ =
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture.newBuilder(addGesture_).mergeFrom(value).buildPartial();
          } else {
            addGesture_ = value;
          }
          onChanged();
        } else {
          addGestureBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
       */
      public Builder clearAddGesture() {
        if (addGestureBuilder_ == null) {
          addGesture_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture.getDefaultInstance();
          onChanged();
        } else {
          addGestureBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture.Builder getAddGestureBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getAddGestureFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGestureOrBuilder getAddGestureOrBuilder() {
        if (addGestureBuilder_ != null) {
          return addGestureBuilder_.getMessageOrBuilder();
        } else {
          return addGesture_;
        }
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGestureOrBuilder> 
          getAddGestureFieldBuilder() {
        if (addGestureBuilder_ == null) {
          addGestureBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGesture.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.AddGestureOrBuilder>(
                  addGesture_,
                  getParentForChildren(),
                  isClean());
          addGesture_ = null;
        }
        return addGestureBuilder_;
      }

      // optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
      private com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture removeGesture_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGestureOrBuilder> removeGestureBuilder_;
      /**
       * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
       */
      public boolean hasRemoveGesture() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture getRemoveGesture() {
        if (removeGestureBuilder_ == null) {
          return removeGesture_;
        } else {
          return removeGestureBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
       */
      public Builder setRemoveGesture(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture value) {
        if (removeGestureBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          removeGesture_ = value;
          onChanged();
        } else {
          removeGestureBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
       */
      public Builder setRemoveGesture(
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture.Builder builderForValue) {
        if (removeGestureBuilder_ == null) {
          removeGesture_ = builderForValue.build();
          onChanged();
        } else {
          removeGestureBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
       */
      public Builder mergeRemoveGesture(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture value) {
        if (removeGestureBuilder_ == null) {
          if (((bitField0_ & 0x00000020) == 0x00000020) &&
              removeGesture_ != com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture.getDefaultInstance()) {
            removeGesture_ =
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture.newBuilder(removeGesture_).mergeFrom(value).buildPartial();
          } else {
            removeGesture_ = value;
          }
          onChanged();
        } else {
          removeGestureBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
       */
      public Builder clearRemoveGesture() {
        if (removeGestureBuilder_ == null) {
          removeGesture_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture.getDefaultInstance();
          onChanged();
        } else {
          removeGestureBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture.Builder getRemoveGestureBuilder() {
        bitField0_ |= 0x00000020;
        onChanged();
        return getRemoveGestureFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGestureOrBuilder getRemoveGestureOrBuilder() {
        if (removeGestureBuilder_ != null) {
          return removeGestureBuilder_.getMessageOrBuilder();
        } else {
          return removeGesture_;
        }
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGestureOrBuilder> 
          getRemoveGestureFieldBuilder() {
        if (removeGestureBuilder_ == null) {
          removeGestureBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGesture.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.RemoveGestureOrBuilder>(
                  removeGesture_,
                  getParentForChildren(),
                  isClean());
          removeGesture_ = null;
        }
        return removeGestureBuilder_;
      }

      // optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
      private com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact bloodImpact_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpactOrBuilder> bloodImpactBuilder_;
      /**
       * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
       */
      public boolean hasBloodImpact() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact getBloodImpact() {
        if (bloodImpactBuilder_ == null) {
          return bloodImpact_;
        } else {
          return bloodImpactBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
       */
      public Builder setBloodImpact(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact value) {
        if (bloodImpactBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          bloodImpact_ = value;
          onChanged();
        } else {
          bloodImpactBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
       */
      public Builder setBloodImpact(
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact.Builder builderForValue) {
        if (bloodImpactBuilder_ == null) {
          bloodImpact_ = builderForValue.build();
          onChanged();
        } else {
          bloodImpactBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
       */
      public Builder mergeBloodImpact(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact value) {
        if (bloodImpactBuilder_ == null) {
          if (((bitField0_ & 0x00000040) == 0x00000040) &&
              bloodImpact_ != com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact.getDefaultInstance()) {
            bloodImpact_ =
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact.newBuilder(bloodImpact_).mergeFrom(value).buildPartial();
          } else {
            bloodImpact_ = value;
          }
          onChanged();
        } else {
          bloodImpactBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
       */
      public Builder clearBloodImpact() {
        if (bloodImpactBuilder_ == null) {
          bloodImpact_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact.getDefaultInstance();
          onChanged();
        } else {
          bloodImpactBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact.Builder getBloodImpactBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return getBloodImpactFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpactOrBuilder getBloodImpactOrBuilder() {
        if (bloodImpactBuilder_ != null) {
          return bloodImpactBuilder_.getMessageOrBuilder();
        } else {
          return bloodImpact_;
        }
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpactOrBuilder> 
          getBloodImpactFieldBuilder() {
        if (bloodImpactBuilder_ == null) {
          bloodImpactBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpact.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.BloodImpactOrBuilder>(
                  bloodImpact_,
                  getParentForChildren(),
                  isClean());
          bloodImpact_ = null;
        }
        return bloodImpactBuilder_;
      }

      // optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
      private com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture fadeGesture_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGestureOrBuilder> fadeGestureBuilder_;
      /**
       * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
       */
      public boolean hasFadeGesture() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture getFadeGesture() {
        if (fadeGestureBuilder_ == null) {
          return fadeGesture_;
        } else {
          return fadeGestureBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
       */
      public Builder setFadeGesture(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture value) {
        if (fadeGestureBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          fadeGesture_ = value;
          onChanged();
        } else {
          fadeGestureBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
       */
      public Builder setFadeGesture(
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture.Builder builderForValue) {
        if (fadeGestureBuilder_ == null) {
          fadeGesture_ = builderForValue.build();
          onChanged();
        } else {
          fadeGestureBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
       */
      public Builder mergeFadeGesture(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture value) {
        if (fadeGestureBuilder_ == null) {
          if (((bitField0_ & 0x00000080) == 0x00000080) &&
              fadeGesture_ != com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture.getDefaultInstance()) {
            fadeGesture_ =
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture.newBuilder(fadeGesture_).mergeFrom(value).buildPartial();
          } else {
            fadeGesture_ = value;
          }
          onChanged();
        } else {
          fadeGestureBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
       */
      public Builder clearFadeGesture() {
        if (fadeGestureBuilder_ == null) {
          fadeGesture_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture.getDefaultInstance();
          onChanged();
        } else {
          fadeGestureBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture.Builder getFadeGestureBuilder() {
        bitField0_ |= 0x00000080;
        onChanged();
        return getFadeGestureFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGestureOrBuilder getFadeGestureOrBuilder() {
        if (fadeGestureBuilder_ != null) {
          return fadeGestureBuilder_.getMessageOrBuilder();
        } else {
          return fadeGesture_;
        }
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGestureOrBuilder> 
          getFadeGestureFieldBuilder() {
        if (fadeGestureBuilder_ == null) {
          fadeGestureBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGesture.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UnitEvent.FadeGestureOrBuilder>(
                  fadeGesture_,
                  getParentForChildren(),
                  isClean());
          fadeGesture_ = null;
        }
        return fadeGestureBuilder_;
      }

      // optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
      private com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient speechMatchOnClient_ = com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient, com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient.Builder, com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClientOrBuilder> speechMatchOnClientBuilder_;
      /**
       * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
       */
      public boolean hasSpeechMatchOnClient() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
       */
      public com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient getSpeechMatchOnClient() {
        if (speechMatchOnClientBuilder_ == null) {
          return speechMatchOnClient_;
        } else {
          return speechMatchOnClientBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
       */
      public Builder setSpeechMatchOnClient(com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient value) {
        if (speechMatchOnClientBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          speechMatchOnClient_ = value;
          onChanged();
        } else {
          speechMatchOnClientBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
       */
      public Builder setSpeechMatchOnClient(
          com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient.Builder builderForValue) {
        if (speechMatchOnClientBuilder_ == null) {
          speechMatchOnClient_ = builderForValue.build();
          onChanged();
        } else {
          speechMatchOnClientBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
       */
      public Builder mergeSpeechMatchOnClient(com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient value) {
        if (speechMatchOnClientBuilder_ == null) {
          if (((bitField0_ & 0x00000100) == 0x00000100) &&
              speechMatchOnClient_ != com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient.getDefaultInstance()) {
            speechMatchOnClient_ =
              com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient.newBuilder(speechMatchOnClient_).mergeFrom(value).buildPartial();
          } else {
            speechMatchOnClient_ = value;
          }
          onChanged();
        } else {
          speechMatchOnClientBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
       */
      public Builder clearSpeechMatchOnClient() {
        if (speechMatchOnClientBuilder_ == null) {
          speechMatchOnClient_ = com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient.getDefaultInstance();
          onChanged();
        } else {
          speechMatchOnClientBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }
      /**
       * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
       */
      public com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient.Builder getSpeechMatchOnClientBuilder() {
        bitField0_ |= 0x00000100;
        onChanged();
        return getSpeechMatchOnClientFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
       */
      public com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClientOrBuilder getSpeechMatchOnClientOrBuilder() {
        if (speechMatchOnClientBuilder_ != null) {
          return speechMatchOnClientBuilder_.getMessageOrBuilder();
        } else {
          return speechMatchOnClient_;
        }
      }
      /**
       * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient, com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient.Builder, com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClientOrBuilder> 
          getSpeechMatchOnClientFieldBuilder() {
        if (speechMatchOnClientBuilder_ == null) {
          speechMatchOnClientBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient, com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClient.Builder, com.dota2.proto.DotaUsermessages.CDOTASpeechMatchOnClientOrBuilder>(
                  speechMatchOnClient_,
                  getParentForChildren(),
                  isClean());
          speechMatchOnClient_ = null;
        }
        return speechMatchOnClientBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_UnitEvent)
    }

    static {
      defaultInstance = new CDOTAUserMsg_UnitEvent(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_UnitEvent)
  }

  public interface CDOTAUserMsg_ItemPurchasedOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional int32 item_index = 1;
    /**
     * optional int32 item_index = 1;
     */
    boolean hasItemIndex();
    /**
     * optional int32 item_index = 1;
     */
    int getItemIndex();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ItemPurchased}
   */
  public static final class CDOTAUserMsg_ItemPurchased extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_ItemPurchasedOrBuilder {
    // Use CDOTAUserMsg_ItemPurchased.newBuilder() to construct.
    private CDOTAUserMsg_ItemPurchased(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ItemPurchased(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ItemPurchased defaultInstance;
    public static CDOTAUserMsg_ItemPurchased getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ItemPurchased getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ItemPurchased(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              itemIndex_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ItemPurchased_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ItemPurchased_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemPurchased.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemPurchased.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ItemPurchased parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ItemPurchased(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional int32 item_index = 1;
    public static final int ITEM_INDEX_FIELD_NUMBER = 1;
    private int itemIndex_;
    /**
     * optional int32 item_index = 1;
     */
    public boolean hasItemIndex() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 item_index = 1;
     */
    public int getItemIndex() {
      return itemIndex_;
    }

    private void initFields() {
      itemIndex_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, itemIndex_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, itemIndex_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemPurchased parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemPurchased parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemPurchased parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemPurchased parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemPurchased parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemPurchased parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemPurchased parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemPurchased parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemPurchased parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemPurchased parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemPurchased prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ItemPurchased}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemPurchasedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ItemPurchased_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ItemPurchased_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemPurchased.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemPurchased.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemPurchased.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        itemIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ItemPurchased_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemPurchased getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemPurchased.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemPurchased build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemPurchased result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemPurchased buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemPurchased result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemPurchased(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.itemIndex_ = itemIndex_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemPurchased) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemPurchased)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemPurchased other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemPurchased.getDefaultInstance()) return this;
        if (other.hasItemIndex()) {
          setItemIndex(other.getItemIndex());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemPurchased parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemPurchased) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional int32 item_index = 1;
      private int itemIndex_ ;
      /**
       * optional int32 item_index = 1;
       */
      public boolean hasItemIndex() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 item_index = 1;
       */
      public int getItemIndex() {
        return itemIndex_;
      }
      /**
       * optional int32 item_index = 1;
       */
      public Builder setItemIndex(int value) {
        bitField0_ |= 0x00000001;
        itemIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 item_index = 1;
       */
      public Builder clearItemIndex() {
        bitField0_ = (bitField0_ & ~0x00000001);
        itemIndex_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ItemPurchased)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ItemPurchased(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ItemPurchased)
  }

  public interface CDOTAUserMsg_ItemFoundOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional int32 player = 1;
    /**
     * optional int32 player = 1;
     */
    boolean hasPlayer();
    /**
     * optional int32 player = 1;
     */
    int getPlayer();

    // optional int32 quality = 2;
    /**
     * optional int32 quality = 2;
     */
    boolean hasQuality();
    /**
     * optional int32 quality = 2;
     */
    int getQuality();

    // optional int32 rarity = 3;
    /**
     * optional int32 rarity = 3;
     */
    boolean hasRarity();
    /**
     * optional int32 rarity = 3;
     */
    int getRarity();

    // optional int32 method = 4;
    /**
     * optional int32 method = 4;
     */
    boolean hasMethod();
    /**
     * optional int32 method = 4;
     */
    int getMethod();

    // optional int32 itemdef = 5;
    /**
     * optional int32 itemdef = 5;
     */
    boolean hasItemdef();
    /**
     * optional int32 itemdef = 5;
     */
    int getItemdef();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ItemFound}
   */
  public static final class CDOTAUserMsg_ItemFound extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_ItemFoundOrBuilder {
    // Use CDOTAUserMsg_ItemFound.newBuilder() to construct.
    private CDOTAUserMsg_ItemFound(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ItemFound(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ItemFound defaultInstance;
    public static CDOTAUserMsg_ItemFound getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ItemFound getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ItemFound(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              player_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              quality_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              rarity_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              method_ = input.readInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              itemdef_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ItemFound_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ItemFound_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemFound.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemFound.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ItemFound parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ItemFound(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional int32 player = 1;
    public static final int PLAYER_FIELD_NUMBER = 1;
    private int player_;
    /**
     * optional int32 player = 1;
     */
    public boolean hasPlayer() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player = 1;
     */
    public int getPlayer() {
      return player_;
    }

    // optional int32 quality = 2;
    public static final int QUALITY_FIELD_NUMBER = 2;
    private int quality_;
    /**
     * optional int32 quality = 2;
     */
    public boolean hasQuality() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 quality = 2;
     */
    public int getQuality() {
      return quality_;
    }

    // optional int32 rarity = 3;
    public static final int RARITY_FIELD_NUMBER = 3;
    private int rarity_;
    /**
     * optional int32 rarity = 3;
     */
    public boolean hasRarity() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 rarity = 3;
     */
    public int getRarity() {
      return rarity_;
    }

    // optional int32 method = 4;
    public static final int METHOD_FIELD_NUMBER = 4;
    private int method_;
    /**
     * optional int32 method = 4;
     */
    public boolean hasMethod() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 method = 4;
     */
    public int getMethod() {
      return method_;
    }

    // optional int32 itemdef = 5;
    public static final int ITEMDEF_FIELD_NUMBER = 5;
    private int itemdef_;
    /**
     * optional int32 itemdef = 5;
     */
    public boolean hasItemdef() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional int32 itemdef = 5;
     */
    public int getItemdef() {
      return itemdef_;
    }

    private void initFields() {
      player_ = 0;
      quality_ = 0;
      rarity_ = 0;
      method_ = 0;
      itemdef_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, player_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, quality_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, rarity_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, method_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt32(5, itemdef_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, player_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, quality_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, rarity_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, method_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, itemdef_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemFound parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemFound parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemFound parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemFound parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemFound parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemFound parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemFound parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemFound parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemFound parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemFound parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemFound prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ItemFound}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemFoundOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ItemFound_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ItemFound_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemFound.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemFound.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemFound.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        player_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        quality_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        rarity_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        method_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        itemdef_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ItemFound_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemFound getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemFound.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemFound build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemFound result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemFound buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemFound result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemFound(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.player_ = player_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.quality_ = quality_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.rarity_ = rarity_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.method_ = method_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.itemdef_ = itemdef_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemFound) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemFound)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemFound other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemFound.getDefaultInstance()) return this;
        if (other.hasPlayer()) {
          setPlayer(other.getPlayer());
        }
        if (other.hasQuality()) {
          setQuality(other.getQuality());
        }
        if (other.hasRarity()) {
          setRarity(other.getRarity());
        }
        if (other.hasMethod()) {
          setMethod(other.getMethod());
        }
        if (other.hasItemdef()) {
          setItemdef(other.getItemdef());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemFound parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ItemFound) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional int32 player = 1;
      private int player_ ;
      /**
       * optional int32 player = 1;
       */
      public boolean hasPlayer() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player = 1;
       */
      public int getPlayer() {
        return player_;
      }
      /**
       * optional int32 player = 1;
       */
      public Builder setPlayer(int value) {
        bitField0_ |= 0x00000001;
        player_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player = 1;
       */
      public Builder clearPlayer() {
        bitField0_ = (bitField0_ & ~0x00000001);
        player_ = 0;
        onChanged();
        return this;
      }

      // optional int32 quality = 2;
      private int quality_ ;
      /**
       * optional int32 quality = 2;
       */
      public boolean hasQuality() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 quality = 2;
       */
      public int getQuality() {
        return quality_;
      }
      /**
       * optional int32 quality = 2;
       */
      public Builder setQuality(int value) {
        bitField0_ |= 0x00000002;
        quality_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 quality = 2;
       */
      public Builder clearQuality() {
        bitField0_ = (bitField0_ & ~0x00000002);
        quality_ = 0;
        onChanged();
        return this;
      }

      // optional int32 rarity = 3;
      private int rarity_ ;
      /**
       * optional int32 rarity = 3;
       */
      public boolean hasRarity() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 rarity = 3;
       */
      public int getRarity() {
        return rarity_;
      }
      /**
       * optional int32 rarity = 3;
       */
      public Builder setRarity(int value) {
        bitField0_ |= 0x00000004;
        rarity_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 rarity = 3;
       */
      public Builder clearRarity() {
        bitField0_ = (bitField0_ & ~0x00000004);
        rarity_ = 0;
        onChanged();
        return this;
      }

      // optional int32 method = 4;
      private int method_ ;
      /**
       * optional int32 method = 4;
       */
      public boolean hasMethod() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 method = 4;
       */
      public int getMethod() {
        return method_;
      }
      /**
       * optional int32 method = 4;
       */
      public Builder setMethod(int value) {
        bitField0_ |= 0x00000008;
        method_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 method = 4;
       */
      public Builder clearMethod() {
        bitField0_ = (bitField0_ & ~0x00000008);
        method_ = 0;
        onChanged();
        return this;
      }

      // optional int32 itemdef = 5;
      private int itemdef_ ;
      /**
       * optional int32 itemdef = 5;
       */
      public boolean hasItemdef() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional int32 itemdef = 5;
       */
      public int getItemdef() {
        return itemdef_;
      }
      /**
       * optional int32 itemdef = 5;
       */
      public Builder setItemdef(int value) {
        bitField0_ |= 0x00000010;
        itemdef_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 itemdef = 5;
       */
      public Builder clearItemdef() {
        bitField0_ = (bitField0_ & ~0x00000010);
        itemdef_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ItemFound)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ItemFound(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ItemFound)
  }

  public interface CDOTAUserMsg_ParticleManagerOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // required .DOTA_PARTICLE_MESSAGE type = 1 [default = DOTA_PARTICLE_MANAGER_EVENT_CREATE];
    /**
     * required .DOTA_PARTICLE_MESSAGE type = 1 [default = DOTA_PARTICLE_MANAGER_EVENT_CREATE];
     */
    boolean hasType();
    /**
     * required .DOTA_PARTICLE_MESSAGE type = 1 [default = DOTA_PARTICLE_MANAGER_EVENT_CREATE];
     */
    com.dota2.proto.DotaUsermessages.DOTA_PARTICLE_MESSAGE getType();

    // required uint32 index = 2;
    /**
     * required uint32 index = 2;
     */
    boolean hasIndex();
    /**
     * required uint32 index = 2;
     */
    int getIndex();

    // optional .CDOTAUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3;
    /**
     * optional .CDOTAUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3;
     */
    boolean hasReleaseParticleIndex();
    /**
     * optional .CDOTAUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex getReleaseParticleIndex();
    /**
     * optional .CDOTAUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndexOrBuilder getReleaseParticleIndexOrBuilder();

    // optional .CDOTAUserMsg_ParticleManager.CreateParticle create_particle = 4;
    /**
     * optional .CDOTAUserMsg_ParticleManager.CreateParticle create_particle = 4;
     */
    boolean hasCreateParticle();
    /**
     * optional .CDOTAUserMsg_ParticleManager.CreateParticle create_particle = 4;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle getCreateParticle();
    /**
     * optional .CDOTAUserMsg_ParticleManager.CreateParticle create_particle = 4;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticleOrBuilder getCreateParticleOrBuilder();

    // optional .CDOTAUserMsg_ParticleManager.DestroyParticle destroy_particle = 5;
    /**
     * optional .CDOTAUserMsg_ParticleManager.DestroyParticle destroy_particle = 5;
     */
    boolean hasDestroyParticle();
    /**
     * optional .CDOTAUserMsg_ParticleManager.DestroyParticle destroy_particle = 5;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle getDestroyParticle();
    /**
     * optional .CDOTAUserMsg_ParticleManager.DestroyParticle destroy_particle = 5;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleOrBuilder getDestroyParticleOrBuilder();

    // optional .CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6;
    /**
     * optional .CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6;
     */
    boolean hasDestroyParticleInvolving();
    /**
     * optional .CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving getDestroyParticleInvolving();
    /**
     * optional .CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolvingOrBuilder getDestroyParticleInvolvingOrBuilder();

    // optional .CDOTAUserMsg_ParticleManager.UpdateParticle update_particle = 7;
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticle update_particle = 7;
     */
    boolean hasUpdateParticle();
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticle update_particle = 7;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle getUpdateParticle();
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticle update_particle = 7;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrBuilder getUpdateParticleOrBuilder();

    // optional .CDOTAUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8;
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8;
     */
    boolean hasUpdateParticleFwd();
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd getUpdateParticleFwd();
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwdOrBuilder getUpdateParticleFwdOrBuilder();

    // optional .CDOTAUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9;
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9;
     */
    boolean hasUpdateParticleOrient();
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient getUpdateParticleOrient();
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrientOrBuilder getUpdateParticleOrientOrBuilder();

    // optional .CDOTAUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10;
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10;
     */
    boolean hasUpdateParticleFallback();
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback getUpdateParticleFallback();
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallbackOrBuilder getUpdateParticleFallbackOrBuilder();

    // optional .CDOTAUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11;
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11;
     */
    boolean hasUpdateParticleOffset();
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset getUpdateParticleOffset();
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffsetOrBuilder getUpdateParticleOffsetOrBuilder();

    // optional .CDOTAUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12;
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12;
     */
    boolean hasUpdateParticleEnt();
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt getUpdateParticleEnt();
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEntOrBuilder getUpdateParticleEntOrBuilder();

    // optional .CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14;
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14;
     */
    boolean hasUpdateParticleShouldDraw();
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw getUpdateParticleShouldDraw();
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDrawOrBuilder getUpdateParticleShouldDrawOrBuilder();

    // optional .CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15;
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15;
     */
    boolean hasUpdateParticleSetFrozen();
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen getUpdateParticleSetFrozen();
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozenOrBuilder getUpdateParticleSetFrozenOrBuilder();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ParticleManager}
   */
  public static final class CDOTAUserMsg_ParticleManager extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_ParticleManagerOrBuilder {
    // Use CDOTAUserMsg_ParticleManager.newBuilder() to construct.
    private CDOTAUserMsg_ParticleManager(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ParticleManager(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ParticleManager defaultInstance;
    public static CDOTAUserMsg_ParticleManager getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ParticleManager getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ParticleManager(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              com.dota2.proto.DotaUsermessages.DOTA_PARTICLE_MESSAGE value = com.dota2.proto.DotaUsermessages.DOTA_PARTICLE_MESSAGE.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                type_ = value;
              }
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              index_ = input.readUInt32();
              break;
            }
            case 26: {
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                subBuilder = releaseParticleIndex_.toBuilder();
              }
              releaseParticleIndex_ = input.readMessage(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(releaseParticleIndex_);
                releaseParticleIndex_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
            case 34: {
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle.Builder subBuilder = null;
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                subBuilder = createParticle_.toBuilder();
              }
              createParticle_ = input.readMessage(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(createParticle_);
                createParticle_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000008;
              break;
            }
            case 42: {
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle.Builder subBuilder = null;
              if (((bitField0_ & 0x00000010) == 0x00000010)) {
                subBuilder = destroyParticle_.toBuilder();
              }
              destroyParticle_ = input.readMessage(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(destroyParticle_);
                destroyParticle_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000010;
              break;
            }
            case 50: {
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.Builder subBuilder = null;
              if (((bitField0_ & 0x00000020) == 0x00000020)) {
                subBuilder = destroyParticleInvolving_.toBuilder();
              }
              destroyParticleInvolving_ = input.readMessage(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(destroyParticleInvolving_);
                destroyParticleInvolving_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000020;
              break;
            }
            case 58: {
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle.Builder subBuilder = null;
              if (((bitField0_ & 0x00000040) == 0x00000040)) {
                subBuilder = updateParticle_.toBuilder();
              }
              updateParticle_ = input.readMessage(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(updateParticle_);
                updateParticle_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000040;
              break;
            }
            case 66: {
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.Builder subBuilder = null;
              if (((bitField0_ & 0x00000080) == 0x00000080)) {
                subBuilder = updateParticleFwd_.toBuilder();
              }
              updateParticleFwd_ = input.readMessage(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(updateParticleFwd_);
                updateParticleFwd_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000080;
              break;
            }
            case 74: {
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.Builder subBuilder = null;
              if (((bitField0_ & 0x00000100) == 0x00000100)) {
                subBuilder = updateParticleOrient_.toBuilder();
              }
              updateParticleOrient_ = input.readMessage(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(updateParticleOrient_);
                updateParticleOrient_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000100;
              break;
            }
            case 82: {
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.Builder subBuilder = null;
              if (((bitField0_ & 0x00000200) == 0x00000200)) {
                subBuilder = updateParticleFallback_.toBuilder();
              }
              updateParticleFallback_ = input.readMessage(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(updateParticleFallback_);
                updateParticleFallback_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000200;
              break;
            }
            case 90: {
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.Builder subBuilder = null;
              if (((bitField0_ & 0x00000400) == 0x00000400)) {
                subBuilder = updateParticleOffset_.toBuilder();
              }
              updateParticleOffset_ = input.readMessage(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(updateParticleOffset_);
                updateParticleOffset_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000400;
              break;
            }
            case 98: {
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.Builder subBuilder = null;
              if (((bitField0_ & 0x00000800) == 0x00000800)) {
                subBuilder = updateParticleEnt_.toBuilder();
              }
              updateParticleEnt_ = input.readMessage(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(updateParticleEnt_);
                updateParticleEnt_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000800;
              break;
            }
            case 114: {
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.Builder subBuilder = null;
              if (((bitField0_ & 0x00001000) == 0x00001000)) {
                subBuilder = updateParticleShouldDraw_.toBuilder();
              }
              updateParticleShouldDraw_ = input.readMessage(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(updateParticleShouldDraw_);
                updateParticleShouldDraw_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00001000;
              break;
            }
            case 122: {
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.Builder subBuilder = null;
              if (((bitField0_ & 0x00002000) == 0x00002000)) {
                subBuilder = updateParticleSetFrozen_.toBuilder();
              }
              updateParticleSetFrozen_ = input.readMessage(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(updateParticleSetFrozen_);
                updateParticleSetFrozen_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00002000;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ParticleManager parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ParticleManager(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public interface ReleaseParticleIndexOrBuilder
        extends com.google.protobuf.MessageOrBuilder {
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ParticleManager.ReleaseParticleIndex}
     */
    public static final class ReleaseParticleIndex extends
        com.google.protobuf.GeneratedMessage
        implements ReleaseParticleIndexOrBuilder {
      // Use ReleaseParticleIndex.newBuilder() to construct.
      private ReleaseParticleIndex(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private ReleaseParticleIndex(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final ReleaseParticleIndex defaultInstance;
      public static ReleaseParticleIndex getDefaultInstance() {
        return defaultInstance;
      }

      public ReleaseParticleIndex getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private ReleaseParticleIndex(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_ReleaseParticleIndex_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_ReleaseParticleIndex_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public ReleaseParticleIndex parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new ReleaseParticleIndex(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private void initFields() {
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_ParticleManager.ReleaseParticleIndex}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder
         implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndexOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_ReleaseParticleIndex_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_ReleaseParticleIndex_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.Builder.class);
        }

        // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_ReleaseParticleIndex_descriptor;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex getDefaultInstanceForType() {
          return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.getDefaultInstance();
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex build() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex buildPartial() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex(this);
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex) {
            return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex other) {
          if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.getDefaultInstance()) return this;
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ParticleManager.ReleaseParticleIndex)
      }

      static {
        defaultInstance = new ReleaseParticleIndex(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ParticleManager.ReleaseParticleIndex)
    }

    public interface CreateParticleOrBuilder
        extends com.google.protobuf.MessageOrBuilder {

      // optional int32 particle_name_index = 1;
      /**
       * optional int32 particle_name_index = 1;
       */
      boolean hasParticleNameIndex();
      /**
       * optional int32 particle_name_index = 1;
       */
      int getParticleNameIndex();

      // optional int32 attach_type = 2;
      /**
       * optional int32 attach_type = 2;
       */
      boolean hasAttachType();
      /**
       * optional int32 attach_type = 2;
       */
      int getAttachType();

      // optional int32 entity_handle = 3;
      /**
       * optional int32 entity_handle = 3;
       */
      boolean hasEntityHandle();
      /**
       * optional int32 entity_handle = 3;
       */
      int getEntityHandle();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ParticleManager.CreateParticle}
     */
    public static final class CreateParticle extends
        com.google.protobuf.GeneratedMessage
        implements CreateParticleOrBuilder {
      // Use CreateParticle.newBuilder() to construct.
      private CreateParticle(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private CreateParticle(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final CreateParticle defaultInstance;
      public static CreateParticle getDefaultInstance() {
        return defaultInstance;
      }

      public CreateParticle getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private CreateParticle(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                particleNameIndex_ = input.readInt32();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                attachType_ = input.readInt32();
                break;
              }
              case 24: {
                bitField0_ |= 0x00000004;
                entityHandle_ = input.readInt32();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_CreateParticle_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_CreateParticle_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public CreateParticle parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new CreateParticle(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      // optional int32 particle_name_index = 1;
      public static final int PARTICLE_NAME_INDEX_FIELD_NUMBER = 1;
      private int particleNameIndex_;
      /**
       * optional int32 particle_name_index = 1;
       */
      public boolean hasParticleNameIndex() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 particle_name_index = 1;
       */
      public int getParticleNameIndex() {
        return particleNameIndex_;
      }

      // optional int32 attach_type = 2;
      public static final int ATTACH_TYPE_FIELD_NUMBER = 2;
      private int attachType_;
      /**
       * optional int32 attach_type = 2;
       */
      public boolean hasAttachType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 attach_type = 2;
       */
      public int getAttachType() {
        return attachType_;
      }

      // optional int32 entity_handle = 3;
      public static final int ENTITY_HANDLE_FIELD_NUMBER = 3;
      private int entityHandle_;
      /**
       * optional int32 entity_handle = 3;
       */
      public boolean hasEntityHandle() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 entity_handle = 3;
       */
      public int getEntityHandle() {
        return entityHandle_;
      }

      private void initFields() {
        particleNameIndex_ = 0;
        attachType_ = 0;
        entityHandle_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, particleNameIndex_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeInt32(2, attachType_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeInt32(3, entityHandle_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, particleNameIndex_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(2, attachType_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(3, entityHandle_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_ParticleManager.CreateParticle}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder
         implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticleOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_CreateParticle_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_CreateParticle_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle.Builder.class);
        }

        // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          particleNameIndex_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          attachType_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          entityHandle_ = 0;
          bitField0_ = (bitField0_ & ~0x00000004);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_CreateParticle_descriptor;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle getDefaultInstanceForType() {
          return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle.getDefaultInstance();
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle build() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle buildPartial() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.particleNameIndex_ = particleNameIndex_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.attachType_ = attachType_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.entityHandle_ = entityHandle_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle) {
            return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle other) {
          if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle.getDefaultInstance()) return this;
          if (other.hasParticleNameIndex()) {
            setParticleNameIndex(other.getParticleNameIndex());
          }
          if (other.hasAttachType()) {
            setAttachType(other.getAttachType());
          }
          if (other.hasEntityHandle()) {
            setEntityHandle(other.getEntityHandle());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        // optional int32 particle_name_index = 1;
        private int particleNameIndex_ ;
        /**
         * optional int32 particle_name_index = 1;
         */
        public boolean hasParticleNameIndex() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 particle_name_index = 1;
         */
        public int getParticleNameIndex() {
          return particleNameIndex_;
        }
        /**
         * optional int32 particle_name_index = 1;
         */
        public Builder setParticleNameIndex(int value) {
          bitField0_ |= 0x00000001;
          particleNameIndex_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 particle_name_index = 1;
         */
        public Builder clearParticleNameIndex() {
          bitField0_ = (bitField0_ & ~0x00000001);
          particleNameIndex_ = 0;
          onChanged();
          return this;
        }

        // optional int32 attach_type = 2;
        private int attachType_ ;
        /**
         * optional int32 attach_type = 2;
         */
        public boolean hasAttachType() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional int32 attach_type = 2;
         */
        public int getAttachType() {
          return attachType_;
        }
        /**
         * optional int32 attach_type = 2;
         */
        public Builder setAttachType(int value) {
          bitField0_ |= 0x00000002;
          attachType_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 attach_type = 2;
         */
        public Builder clearAttachType() {
          bitField0_ = (bitField0_ & ~0x00000002);
          attachType_ = 0;
          onChanged();
          return this;
        }

        // optional int32 entity_handle = 3;
        private int entityHandle_ ;
        /**
         * optional int32 entity_handle = 3;
         */
        public boolean hasEntityHandle() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * optional int32 entity_handle = 3;
         */
        public int getEntityHandle() {
          return entityHandle_;
        }
        /**
         * optional int32 entity_handle = 3;
         */
        public Builder setEntityHandle(int value) {
          bitField0_ |= 0x00000004;
          entityHandle_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 entity_handle = 3;
         */
        public Builder clearEntityHandle() {
          bitField0_ = (bitField0_ & ~0x00000004);
          entityHandle_ = 0;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ParticleManager.CreateParticle)
      }

      static {
        defaultInstance = new CreateParticle(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ParticleManager.CreateParticle)
    }

    public interface DestroyParticleOrBuilder
        extends com.google.protobuf.MessageOrBuilder {

      // optional bool destroy_immediately = 1;
      /**
       * optional bool destroy_immediately = 1;
       */
      boolean hasDestroyImmediately();
      /**
       * optional bool destroy_immediately = 1;
       */
      boolean getDestroyImmediately();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ParticleManager.DestroyParticle}
     */
    public static final class DestroyParticle extends
        com.google.protobuf.GeneratedMessage
        implements DestroyParticleOrBuilder {
      // Use DestroyParticle.newBuilder() to construct.
      private DestroyParticle(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private DestroyParticle(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final DestroyParticle defaultInstance;
      public static DestroyParticle getDefaultInstance() {
        return defaultInstance;
      }

      public DestroyParticle getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private DestroyParticle(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                destroyImmediately_ = input.readBool();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_DestroyParticle_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_DestroyParticle_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public DestroyParticle parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new DestroyParticle(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      // optional bool destroy_immediately = 1;
      public static final int DESTROY_IMMEDIATELY_FIELD_NUMBER = 1;
      private boolean destroyImmediately_;
      /**
       * optional bool destroy_immediately = 1;
       */
      public boolean hasDestroyImmediately() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional bool destroy_immediately = 1;
       */
      public boolean getDestroyImmediately() {
        return destroyImmediately_;
      }

      private void initFields() {
        destroyImmediately_ = false;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeBool(1, destroyImmediately_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(1, destroyImmediately_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_ParticleManager.DestroyParticle}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder
         implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_DestroyParticle_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_DestroyParticle_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle.Builder.class);
        }

        // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          destroyImmediately_ = false;
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_DestroyParticle_descriptor;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle getDefaultInstanceForType() {
          return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle.getDefaultInstance();
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle build() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle buildPartial() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.destroyImmediately_ = destroyImmediately_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle) {
            return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle other) {
          if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle.getDefaultInstance()) return this;
          if (other.hasDestroyImmediately()) {
            setDestroyImmediately(other.getDestroyImmediately());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        // optional bool destroy_immediately = 1;
        private boolean destroyImmediately_ ;
        /**
         * optional bool destroy_immediately = 1;
         */
        public boolean hasDestroyImmediately() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional bool destroy_immediately = 1;
         */
        public boolean getDestroyImmediately() {
          return destroyImmediately_;
        }
        /**
         * optional bool destroy_immediately = 1;
         */
        public Builder setDestroyImmediately(boolean value) {
          bitField0_ |= 0x00000001;
          destroyImmediately_ = value;
          onChanged();
          return this;
        }
        /**
         * optional bool destroy_immediately = 1;
         */
        public Builder clearDestroyImmediately() {
          bitField0_ = (bitField0_ & ~0x00000001);
          destroyImmediately_ = false;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ParticleManager.DestroyParticle)
      }

      static {
        defaultInstance = new DestroyParticle(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ParticleManager.DestroyParticle)
    }

    public interface DestroyParticleInvolvingOrBuilder
        extends com.google.protobuf.MessageOrBuilder {

      // optional bool destroy_immediately = 1;
      /**
       * optional bool destroy_immediately = 1;
       */
      boolean hasDestroyImmediately();
      /**
       * optional bool destroy_immediately = 1;
       */
      boolean getDestroyImmediately();

      // optional int32 entity_handle = 3;
      /**
       * optional int32 entity_handle = 3;
       */
      boolean hasEntityHandle();
      /**
       * optional int32 entity_handle = 3;
       */
      int getEntityHandle();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ParticleManager.DestroyParticleInvolving}
     */
    public static final class DestroyParticleInvolving extends
        com.google.protobuf.GeneratedMessage
        implements DestroyParticleInvolvingOrBuilder {
      // Use DestroyParticleInvolving.newBuilder() to construct.
      private DestroyParticleInvolving(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private DestroyParticleInvolving(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final DestroyParticleInvolving defaultInstance;
      public static DestroyParticleInvolving getDefaultInstance() {
        return defaultInstance;
      }

      public DestroyParticleInvolving getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private DestroyParticleInvolving(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                destroyImmediately_ = input.readBool();
                break;
              }
              case 24: {
                bitField0_ |= 0x00000002;
                entityHandle_ = input.readInt32();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_DestroyParticleInvolving_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_DestroyParticleInvolving_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public DestroyParticleInvolving parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new DestroyParticleInvolving(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      // optional bool destroy_immediately = 1;
      public static final int DESTROY_IMMEDIATELY_FIELD_NUMBER = 1;
      private boolean destroyImmediately_;
      /**
       * optional bool destroy_immediately = 1;
       */
      public boolean hasDestroyImmediately() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional bool destroy_immediately = 1;
       */
      public boolean getDestroyImmediately() {
        return destroyImmediately_;
      }

      // optional int32 entity_handle = 3;
      public static final int ENTITY_HANDLE_FIELD_NUMBER = 3;
      private int entityHandle_;
      /**
       * optional int32 entity_handle = 3;
       */
      public boolean hasEntityHandle() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 entity_handle = 3;
       */
      public int getEntityHandle() {
        return entityHandle_;
      }

      private void initFields() {
        destroyImmediately_ = false;
        entityHandle_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeBool(1, destroyImmediately_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeInt32(3, entityHandle_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(1, destroyImmediately_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(3, entityHandle_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_ParticleManager.DestroyParticleInvolving}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder
         implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolvingOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_DestroyParticleInvolving_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_DestroyParticleInvolving_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.Builder.class);
        }

        // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          destroyImmediately_ = false;
          bitField0_ = (bitField0_ & ~0x00000001);
          entityHandle_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_DestroyParticleInvolving_descriptor;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving getDefaultInstanceForType() {
          return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.getDefaultInstance();
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving build() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving buildPartial() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.destroyImmediately_ = destroyImmediately_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.entityHandle_ = entityHandle_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving) {
            return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving other) {
          if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.getDefaultInstance()) return this;
          if (other.hasDestroyImmediately()) {
            setDestroyImmediately(other.getDestroyImmediately());
          }
          if (other.hasEntityHandle()) {
            setEntityHandle(other.getEntityHandle());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        // optional bool destroy_immediately = 1;
        private boolean destroyImmediately_ ;
        /**
         * optional bool destroy_immediately = 1;
         */
        public boolean hasDestroyImmediately() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional bool destroy_immediately = 1;
         */
        public boolean getDestroyImmediately() {
          return destroyImmediately_;
        }
        /**
         * optional bool destroy_immediately = 1;
         */
        public Builder setDestroyImmediately(boolean value) {
          bitField0_ |= 0x00000001;
          destroyImmediately_ = value;
          onChanged();
          return this;
        }
        /**
         * optional bool destroy_immediately = 1;
         */
        public Builder clearDestroyImmediately() {
          bitField0_ = (bitField0_ & ~0x00000001);
          destroyImmediately_ = false;
          onChanged();
          return this;
        }

        // optional int32 entity_handle = 3;
        private int entityHandle_ ;
        /**
         * optional int32 entity_handle = 3;
         */
        public boolean hasEntityHandle() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional int32 entity_handle = 3;
         */
        public int getEntityHandle() {
          return entityHandle_;
        }
        /**
         * optional int32 entity_handle = 3;
         */
        public Builder setEntityHandle(int value) {
          bitField0_ |= 0x00000002;
          entityHandle_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 entity_handle = 3;
         */
        public Builder clearEntityHandle() {
          bitField0_ = (bitField0_ & ~0x00000002);
          entityHandle_ = 0;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ParticleManager.DestroyParticleInvolving)
      }

      static {
        defaultInstance = new DestroyParticleInvolving(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ParticleManager.DestroyParticleInvolving)
    }

    public interface UpdateParticleOrBuilder
        extends com.google.protobuf.MessageOrBuilder {

      // optional int32 control_point = 1;
      /**
       * optional int32 control_point = 1;
       */
      boolean hasControlPoint();
      /**
       * optional int32 control_point = 1;
       */
      int getControlPoint();

      // optional .CMsgVector position = 2;
      /**
       * optional .CMsgVector position = 2;
       */
      boolean hasPosition();
      /**
       * optional .CMsgVector position = 2;
       */
      com.dota2.proto.Networkbasetypes.CMsgVector getPosition();
      /**
       * optional .CMsgVector position = 2;
       */
      com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder getPositionOrBuilder();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ParticleManager.UpdateParticle}
     */
    public static final class UpdateParticle extends
        com.google.protobuf.GeneratedMessage
        implements UpdateParticleOrBuilder {
      // Use UpdateParticle.newBuilder() to construct.
      private UpdateParticle(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private UpdateParticle(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final UpdateParticle defaultInstance;
      public static UpdateParticle getDefaultInstance() {
        return defaultInstance;
      }

      public UpdateParticle getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private UpdateParticle(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                controlPoint_ = input.readInt32();
                break;
              }
              case 18: {
                com.dota2.proto.Networkbasetypes.CMsgVector.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = position_.toBuilder();
                }
                position_ = input.readMessage(com.dota2.proto.Networkbasetypes.CMsgVector.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(position_);
                  position_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticle_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticle_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public UpdateParticle parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new UpdateParticle(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      // optional int32 control_point = 1;
      public static final int CONTROL_POINT_FIELD_NUMBER = 1;
      private int controlPoint_;
      /**
       * optional int32 control_point = 1;
       */
      public boolean hasControlPoint() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 control_point = 1;
       */
      public int getControlPoint() {
        return controlPoint_;
      }

      // optional .CMsgVector position = 2;
      public static final int POSITION_FIELD_NUMBER = 2;
      private com.dota2.proto.Networkbasetypes.CMsgVector position_;
      /**
       * optional .CMsgVector position = 2;
       */
      public boolean hasPosition() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .CMsgVector position = 2;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVector getPosition() {
        return position_;
      }
      /**
       * optional .CMsgVector position = 2;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder getPositionOrBuilder() {
        return position_;
      }

      private void initFields() {
        controlPoint_ = 0;
        position_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, controlPoint_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeMessage(2, position_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, controlPoint_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, position_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_ParticleManager.UpdateParticle}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder
         implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticle_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticle_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle.Builder.class);
        }

        // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getPositionFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          controlPoint_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          if (positionBuilder_ == null) {
            position_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
          } else {
            positionBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticle_descriptor;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle getDefaultInstanceForType() {
          return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle.getDefaultInstance();
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle build() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle buildPartial() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.controlPoint_ = controlPoint_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          if (positionBuilder_ == null) {
            result.position_ = position_;
          } else {
            result.position_ = positionBuilder_.build();
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle) {
            return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle other) {
          if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle.getDefaultInstance()) return this;
          if (other.hasControlPoint()) {
            setControlPoint(other.getControlPoint());
          }
          if (other.hasPosition()) {
            mergePosition(other.getPosition());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        // optional int32 control_point = 1;
        private int controlPoint_ ;
        /**
         * optional int32 control_point = 1;
         */
        public boolean hasControlPoint() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 control_point = 1;
         */
        public int getControlPoint() {
          return controlPoint_;
        }
        /**
         * optional int32 control_point = 1;
         */
        public Builder setControlPoint(int value) {
          bitField0_ |= 0x00000001;
          controlPoint_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 control_point = 1;
         */
        public Builder clearControlPoint() {
          bitField0_ = (bitField0_ & ~0x00000001);
          controlPoint_ = 0;
          onChanged();
          return this;
        }

        // optional .CMsgVector position = 2;
        private com.dota2.proto.Networkbasetypes.CMsgVector position_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            com.dota2.proto.Networkbasetypes.CMsgVector, com.dota2.proto.Networkbasetypes.CMsgVector.Builder, com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder> positionBuilder_;
        /**
         * optional .CMsgVector position = 2;
         */
        public boolean hasPosition() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional .CMsgVector position = 2;
         */
        public com.dota2.proto.Networkbasetypes.CMsgVector getPosition() {
          if (positionBuilder_ == null) {
            return position_;
          } else {
            return positionBuilder_.getMessage();
          }
        }
        /**
         * optional .CMsgVector position = 2;
         */
        public Builder setPosition(com.dota2.proto.Networkbasetypes.CMsgVector value) {
          if (positionBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            position_ = value;
            onChanged();
          } else {
            positionBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * optional .CMsgVector position = 2;
         */
        public Builder setPosition(
            com.dota2.proto.Networkbasetypes.CMsgVector.Builder builderForValue) {
          if (positionBuilder_ == null) {
            position_ = builderForValue.build();
            onChanged();
          } else {
            positionBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * optional .CMsgVector position = 2;
         */
        public Builder mergePosition(com.dota2.proto.Networkbasetypes.CMsgVector value) {
          if (positionBuilder_ == null) {
            if (((bitField0_ & 0x00000002) == 0x00000002) &&
                position_ != com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance()) {
              position_ =
                com.dota2.proto.Networkbasetypes.CMsgVector.newBuilder(position_).mergeFrom(value).buildPartial();
            } else {
              position_ = value;
            }
            onChanged();
          } else {
            positionBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * optional .CMsgVector position = 2;
         */
        public Builder clearPosition() {
          if (positionBuilder_ == null) {
            position_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
            onChanged();
          } else {
            positionBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }
        /**
         * optional .CMsgVector position = 2;
         */
        public com.dota2.proto.Networkbasetypes.CMsgVector.Builder getPositionBuilder() {
          bitField0_ |= 0x00000002;
          onChanged();
          return getPositionFieldBuilder().getBuilder();
        }
        /**
         * optional .CMsgVector position = 2;
         */
        public com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder getPositionOrBuilder() {
          if (positionBuilder_ != null) {
            return positionBuilder_.getMessageOrBuilder();
          } else {
            return position_;
          }
        }
        /**
         * optional .CMsgVector position = 2;
         */
        private com.google.protobuf.SingleFieldBuilder<
            com.dota2.proto.Networkbasetypes.CMsgVector, com.dota2.proto.Networkbasetypes.CMsgVector.Builder, com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder> 
            getPositionFieldBuilder() {
          if (positionBuilder_ == null) {
            positionBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                com.dota2.proto.Networkbasetypes.CMsgVector, com.dota2.proto.Networkbasetypes.CMsgVector.Builder, com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder>(
                    position_,
                    getParentForChildren(),
                    isClean());
            position_ = null;
          }
          return positionBuilder_;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ParticleManager.UpdateParticle)
      }

      static {
        defaultInstance = new UpdateParticle(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ParticleManager.UpdateParticle)
    }

    public interface UpdateParticleFwdOrBuilder
        extends com.google.protobuf.MessageOrBuilder {

      // optional int32 control_point = 1;
      /**
       * optional int32 control_point = 1;
       */
      boolean hasControlPoint();
      /**
       * optional int32 control_point = 1;
       */
      int getControlPoint();

      // optional .CMsgVector forward = 2;
      /**
       * optional .CMsgVector forward = 2;
       */
      boolean hasForward();
      /**
       * optional .CMsgVector forward = 2;
       */
      com.dota2.proto.Networkbasetypes.CMsgVector getForward();
      /**
       * optional .CMsgVector forward = 2;
       */
      com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder getForwardOrBuilder();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ParticleManager.UpdateParticleFwd}
     */
    public static final class UpdateParticleFwd extends
        com.google.protobuf.GeneratedMessage
        implements UpdateParticleFwdOrBuilder {
      // Use UpdateParticleFwd.newBuilder() to construct.
      private UpdateParticleFwd(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private UpdateParticleFwd(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final UpdateParticleFwd defaultInstance;
      public static UpdateParticleFwd getDefaultInstance() {
        return defaultInstance;
      }

      public UpdateParticleFwd getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private UpdateParticleFwd(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                controlPoint_ = input.readInt32();
                break;
              }
              case 18: {
                com.dota2.proto.Networkbasetypes.CMsgVector.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = forward_.toBuilder();
                }
                forward_ = input.readMessage(com.dota2.proto.Networkbasetypes.CMsgVector.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(forward_);
                  forward_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFwd_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFwd_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public UpdateParticleFwd parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new UpdateParticleFwd(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      // optional int32 control_point = 1;
      public static final int CONTROL_POINT_FIELD_NUMBER = 1;
      private int controlPoint_;
      /**
       * optional int32 control_point = 1;
       */
      public boolean hasControlPoint() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 control_point = 1;
       */
      public int getControlPoint() {
        return controlPoint_;
      }

      // optional .CMsgVector forward = 2;
      public static final int FORWARD_FIELD_NUMBER = 2;
      private com.dota2.proto.Networkbasetypes.CMsgVector forward_;
      /**
       * optional .CMsgVector forward = 2;
       */
      public boolean hasForward() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .CMsgVector forward = 2;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVector getForward() {
        return forward_;
      }
      /**
       * optional .CMsgVector forward = 2;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder getForwardOrBuilder() {
        return forward_;
      }

      private void initFields() {
        controlPoint_ = 0;
        forward_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, controlPoint_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeMessage(2, forward_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, controlPoint_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, forward_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_ParticleManager.UpdateParticleFwd}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder
         implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwdOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFwd_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFwd_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.Builder.class);
        }

        // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getForwardFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          controlPoint_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          if (forwardBuilder_ == null) {
            forward_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
          } else {
            forwardBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFwd_descriptor;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd getDefaultInstanceForType() {
          return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.getDefaultInstance();
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd build() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd buildPartial() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.controlPoint_ = controlPoint_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          if (forwardBuilder_ == null) {
            result.forward_ = forward_;
          } else {
            result.forward_ = forwardBuilder_.build();
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd) {
            return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd other) {
          if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.getDefaultInstance()) return this;
          if (other.hasControlPoint()) {
            setControlPoint(other.getControlPoint());
          }
          if (other.hasForward()) {
            mergeForward(other.getForward());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        // optional int32 control_point = 1;
        private int controlPoint_ ;
        /**
         * optional int32 control_point = 1;
         */
        public boolean hasControlPoint() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 control_point = 1;
         */
        public int getControlPoint() {
          return controlPoint_;
        }
        /**
         * optional int32 control_point = 1;
         */
        public Builder setControlPoint(int value) {
          bitField0_ |= 0x00000001;
          controlPoint_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 control_point = 1;
         */
        public Builder clearControlPoint() {
          bitField0_ = (bitField0_ & ~0x00000001);
          controlPoint_ = 0;
          onChanged();
          return this;
        }

        // optional .CMsgVector forward = 2;
        private com.dota2.proto.Networkbasetypes.CMsgVector forward_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            com.dota2.proto.Networkbasetypes.CMsgVector, com.dota2.proto.Networkbasetypes.CMsgVector.Builder, com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder> forwardBuilder_;
        /**
         * optional .CMsgVector forward = 2;
         */
        public boolean hasForward() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional .CMsgVector forward = 2;
         */
        public com.dota2.proto.Networkbasetypes.CMsgVector getForward() {
          if (forwardBuilder_ == null) {
            return forward_;
          } else {
            return forwardBuilder_.getMessage();
          }
        }
        /**
         * optional .CMsgVector forward = 2;
         */
        public Builder setForward(com.dota2.proto.Networkbasetypes.CMsgVector value) {
          if (forwardBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            forward_ = value;
            onChanged();
          } else {
            forwardBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * optional .CMsgVector forward = 2;
         */
        public Builder setForward(
            com.dota2.proto.Networkbasetypes.CMsgVector.Builder builderForValue) {
          if (forwardBuilder_ == null) {
            forward_ = builderForValue.build();
            onChanged();
          } else {
            forwardBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * optional .CMsgVector forward = 2;
         */
        public Builder mergeForward(com.dota2.proto.Networkbasetypes.CMsgVector value) {
          if (forwardBuilder_ == null) {
            if (((bitField0_ & 0x00000002) == 0x00000002) &&
                forward_ != com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance()) {
              forward_ =
                com.dota2.proto.Networkbasetypes.CMsgVector.newBuilder(forward_).mergeFrom(value).buildPartial();
            } else {
              forward_ = value;
            }
            onChanged();
          } else {
            forwardBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * optional .CMsgVector forward = 2;
         */
        public Builder clearForward() {
          if (forwardBuilder_ == null) {
            forward_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
            onChanged();
          } else {
            forwardBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }
        /**
         * optional .CMsgVector forward = 2;
         */
        public com.dota2.proto.Networkbasetypes.CMsgVector.Builder getForwardBuilder() {
          bitField0_ |= 0x00000002;
          onChanged();
          return getForwardFieldBuilder().getBuilder();
        }
        /**
         * optional .CMsgVector forward = 2;
         */
        public com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder getForwardOrBuilder() {
          if (forwardBuilder_ != null) {
            return forwardBuilder_.getMessageOrBuilder();
          } else {
            return forward_;
          }
        }
        /**
         * optional .CMsgVector forward = 2;
         */
        private com.google.protobuf.SingleFieldBuilder<
            com.dota2.proto.Networkbasetypes.CMsgVector, com.dota2.proto.Networkbasetypes.CMsgVector.Builder, com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder> 
            getForwardFieldBuilder() {
          if (forwardBuilder_ == null) {
            forwardBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                com.dota2.proto.Networkbasetypes.CMsgVector, com.dota2.proto.Networkbasetypes.CMsgVector.Builder, com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder>(
                    forward_,
                    getParentForChildren(),
                    isClean());
            forward_ = null;
          }
          return forwardBuilder_;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ParticleManager.UpdateParticleFwd)
      }

      static {
        defaultInstance = new UpdateParticleFwd(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ParticleManager.UpdateParticleFwd)
    }

    public interface UpdateParticleOrientOrBuilder
        extends com.google.protobuf.MessageOrBuilder {

      // optional int32 control_point = 1;
      /**
       * optional int32 control_point = 1;
       */
      boolean hasControlPoint();
      /**
       * optional int32 control_point = 1;
       */
      int getControlPoint();

      // optional .CMsgVector forward = 2;
      /**
       * optional .CMsgVector forward = 2;
       */
      boolean hasForward();
      /**
       * optional .CMsgVector forward = 2;
       */
      com.dota2.proto.Networkbasetypes.CMsgVector getForward();
      /**
       * optional .CMsgVector forward = 2;
       */
      com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder getForwardOrBuilder();

      // optional .CMsgVector right = 3;
      /**
       * optional .CMsgVector right = 3;
       */
      boolean hasRight();
      /**
       * optional .CMsgVector right = 3;
       */
      com.dota2.proto.Networkbasetypes.CMsgVector getRight();
      /**
       * optional .CMsgVector right = 3;
       */
      com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder getRightOrBuilder();

      // optional .CMsgVector up = 4;
      /**
       * optional .CMsgVector up = 4;
       */
      boolean hasUp();
      /**
       * optional .CMsgVector up = 4;
       */
      com.dota2.proto.Networkbasetypes.CMsgVector getUp();
      /**
       * optional .CMsgVector up = 4;
       */
      com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder getUpOrBuilder();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ParticleManager.UpdateParticleOrient}
     */
    public static final class UpdateParticleOrient extends
        com.google.protobuf.GeneratedMessage
        implements UpdateParticleOrientOrBuilder {
      // Use UpdateParticleOrient.newBuilder() to construct.
      private UpdateParticleOrient(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private UpdateParticleOrient(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final UpdateParticleOrient defaultInstance;
      public static UpdateParticleOrient getDefaultInstance() {
        return defaultInstance;
      }

      public UpdateParticleOrient getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private UpdateParticleOrient(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                controlPoint_ = input.readInt32();
                break;
              }
              case 18: {
                com.dota2.proto.Networkbasetypes.CMsgVector.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = forward_.toBuilder();
                }
                forward_ = input.readMessage(com.dota2.proto.Networkbasetypes.CMsgVector.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(forward_);
                  forward_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
              case 26: {
                com.dota2.proto.Networkbasetypes.CMsgVector.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = right_.toBuilder();
                }
                right_ = input.readMessage(com.dota2.proto.Networkbasetypes.CMsgVector.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(right_);
                  right_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
              case 34: {
                com.dota2.proto.Networkbasetypes.CMsgVector.Builder subBuilder = null;
                if (((bitField0_ & 0x00000008) == 0x00000008)) {
                  subBuilder = up_.toBuilder();
                }
                up_ = input.readMessage(com.dota2.proto.Networkbasetypes.CMsgVector.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(up_);
                  up_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000008;
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOrient_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOrient_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public UpdateParticleOrient parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new UpdateParticleOrient(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      // optional int32 control_point = 1;
      public static final int CONTROL_POINT_FIELD_NUMBER = 1;
      private int controlPoint_;
      /**
       * optional int32 control_point = 1;
       */
      public boolean hasControlPoint() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 control_point = 1;
       */
      public int getControlPoint() {
        return controlPoint_;
      }

      // optional .CMsgVector forward = 2;
      public static final int FORWARD_FIELD_NUMBER = 2;
      private com.dota2.proto.Networkbasetypes.CMsgVector forward_;
      /**
       * optional .CMsgVector forward = 2;
       */
      public boolean hasForward() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .CMsgVector forward = 2;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVector getForward() {
        return forward_;
      }
      /**
       * optional .CMsgVector forward = 2;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder getForwardOrBuilder() {
        return forward_;
      }

      // optional .CMsgVector right = 3;
      public static final int RIGHT_FIELD_NUMBER = 3;
      private com.dota2.proto.Networkbasetypes.CMsgVector right_;
      /**
       * optional .CMsgVector right = 3;
       */
      public boolean hasRight() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional .CMsgVector right = 3;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVector getRight() {
        return right_;
      }
      /**
       * optional .CMsgVector right = 3;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder getRightOrBuilder() {
        return right_;
      }

      // optional .CMsgVector up = 4;
      public static final int UP_FIELD_NUMBER = 4;
      private com.dota2.proto.Networkbasetypes.CMsgVector up_;
      /**
       * optional .CMsgVector up = 4;
       */
      public boolean hasUp() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional .CMsgVector up = 4;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVector getUp() {
        return up_;
      }
      /**
       * optional .CMsgVector up = 4;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder getUpOrBuilder() {
        return up_;
      }

      private void initFields() {
        controlPoint_ = 0;
        forward_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
        right_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
        up_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, controlPoint_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeMessage(2, forward_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeMessage(3, right_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeMessage(4, up_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, controlPoint_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, forward_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, right_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, up_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_ParticleManager.UpdateParticleOrient}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder
         implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrientOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOrient_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOrient_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.Builder.class);
        }

        // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getForwardFieldBuilder();
            getRightFieldBuilder();
            getUpFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          controlPoint_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          if (forwardBuilder_ == null) {
            forward_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
          } else {
            forwardBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          if (rightBuilder_ == null) {
            right_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
          } else {
            rightBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000004);
          if (upBuilder_ == null) {
            up_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
          } else {
            upBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000008);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOrient_descriptor;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient getDefaultInstanceForType() {
          return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.getDefaultInstance();
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient build() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient buildPartial() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.controlPoint_ = controlPoint_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          if (forwardBuilder_ == null) {
            result.forward_ = forward_;
          } else {
            result.forward_ = forwardBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          if (rightBuilder_ == null) {
            result.right_ = right_;
          } else {
            result.right_ = rightBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000008;
          }
          if (upBuilder_ == null) {
            result.up_ = up_;
          } else {
            result.up_ = upBuilder_.build();
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient) {
            return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient other) {
          if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.getDefaultInstance()) return this;
          if (other.hasControlPoint()) {
            setControlPoint(other.getControlPoint());
          }
          if (other.hasForward()) {
            mergeForward(other.getForward());
          }
          if (other.hasRight()) {
            mergeRight(other.getRight());
          }
          if (other.hasUp()) {
            mergeUp(other.getUp());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        // optional int32 control_point = 1;
        private int controlPoint_ ;
        /**
         * optional int32 control_point = 1;
         */
        public boolean hasControlPoint() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 control_point = 1;
         */
        public int getControlPoint() {
          return controlPoint_;
        }
        /**
         * optional int32 control_point = 1;
         */
        public Builder setControlPoint(int value) {
          bitField0_ |= 0x00000001;
          controlPoint_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 control_point = 1;
         */
        public Builder clearControlPoint() {
          bitField0_ = (bitField0_ & ~0x00000001);
          controlPoint_ = 0;
          onChanged();
          return this;
        }

        // optional .CMsgVector forward = 2;
        private com.dota2.proto.Networkbasetypes.CMsgVector forward_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            com.dota2.proto.Networkbasetypes.CMsgVector, com.dota2.proto.Networkbasetypes.CMsgVector.Builder, com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder> forwardBuilder_;
        /**
         * optional .CMsgVector forward = 2;
         */
        public boolean hasForward() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional .CMsgVector forward = 2;
         */
        public com.dota2.proto.Networkbasetypes.CMsgVector getForward() {
          if (forwardBuilder_ == null) {
            return forward_;
          } else {
            return forwardBuilder_.getMessage();
          }
        }
        /**
         * optional .CMsgVector forward = 2;
         */
        public Builder setForward(com.dota2.proto.Networkbasetypes.CMsgVector value) {
          if (forwardBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            forward_ = value;
            onChanged();
          } else {
            forwardBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * optional .CMsgVector forward = 2;
         */
        public Builder setForward(
            com.dota2.proto.Networkbasetypes.CMsgVector.Builder builderForValue) {
          if (forwardBuilder_ == null) {
            forward_ = builderForValue.build();
            onChanged();
          } else {
            forwardBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * optional .CMsgVector forward = 2;
         */
        public Builder mergeForward(com.dota2.proto.Networkbasetypes.CMsgVector value) {
          if (forwardBuilder_ == null) {
            if (((bitField0_ & 0x00000002) == 0x00000002) &&
                forward_ != com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance()) {
              forward_ =
                com.dota2.proto.Networkbasetypes.CMsgVector.newBuilder(forward_).mergeFrom(value).buildPartial();
            } else {
              forward_ = value;
            }
            onChanged();
          } else {
            forwardBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * optional .CMsgVector forward = 2;
         */
        public Builder clearForward() {
          if (forwardBuilder_ == null) {
            forward_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
            onChanged();
          } else {
            forwardBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }
        /**
         * optional .CMsgVector forward = 2;
         */
        public com.dota2.proto.Networkbasetypes.CMsgVector.Builder getForwardBuilder() {
          bitField0_ |= 0x00000002;
          onChanged();
          return getForwardFieldBuilder().getBuilder();
        }
        /**
         * optional .CMsgVector forward = 2;
         */
        public com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder getForwardOrBuilder() {
          if (forwardBuilder_ != null) {
            return forwardBuilder_.getMessageOrBuilder();
          } else {
            return forward_;
          }
        }
        /**
         * optional .CMsgVector forward = 2;
         */
        private com.google.protobuf.SingleFieldBuilder<
            com.dota2.proto.Networkbasetypes.CMsgVector, com.dota2.proto.Networkbasetypes.CMsgVector.Builder, com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder> 
            getForwardFieldBuilder() {
          if (forwardBuilder_ == null) {
            forwardBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                com.dota2.proto.Networkbasetypes.CMsgVector, com.dota2.proto.Networkbasetypes.CMsgVector.Builder, com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder>(
                    forward_,
                    getParentForChildren(),
                    isClean());
            forward_ = null;
          }
          return forwardBuilder_;
        }

        // optional .CMsgVector right = 3;
        private com.dota2.proto.Networkbasetypes.CMsgVector right_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            com.dota2.proto.Networkbasetypes.CMsgVector, com.dota2.proto.Networkbasetypes.CMsgVector.Builder, com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder> rightBuilder_;
        /**
         * optional .CMsgVector right = 3;
         */
        public boolean hasRight() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * optional .CMsgVector right = 3;
         */
        public com.dota2.proto.Networkbasetypes.CMsgVector getRight() {
          if (rightBuilder_ == null) {
            return right_;
          } else {
            return rightBuilder_.getMessage();
          }
        }
        /**
         * optional .CMsgVector right = 3;
         */
        public Builder setRight(com.dota2.proto.Networkbasetypes.CMsgVector value) {
          if (rightBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            right_ = value;
            onChanged();
          } else {
            rightBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000004;
          return this;
        }
        /**
         * optional .CMsgVector right = 3;
         */
        public Builder setRight(
            com.dota2.proto.Networkbasetypes.CMsgVector.Builder builderForValue) {
          if (rightBuilder_ == null) {
            right_ = builderForValue.build();
            onChanged();
          } else {
            rightBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000004;
          return this;
        }
        /**
         * optional .CMsgVector right = 3;
         */
        public Builder mergeRight(com.dota2.proto.Networkbasetypes.CMsgVector value) {
          if (rightBuilder_ == null) {
            if (((bitField0_ & 0x00000004) == 0x00000004) &&
                right_ != com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance()) {
              right_ =
                com.dota2.proto.Networkbasetypes.CMsgVector.newBuilder(right_).mergeFrom(value).buildPartial();
            } else {
              right_ = value;
            }
            onChanged();
          } else {
            rightBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000004;
          return this;
        }
        /**
         * optional .CMsgVector right = 3;
         */
        public Builder clearRight() {
          if (rightBuilder_ == null) {
            right_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
            onChanged();
          } else {
            rightBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000004);
          return this;
        }
        /**
         * optional .CMsgVector right = 3;
         */
        public com.dota2.proto.Networkbasetypes.CMsgVector.Builder getRightBuilder() {
          bitField0_ |= 0x00000004;
          onChanged();
          return getRightFieldBuilder().getBuilder();
        }
        /**
         * optional .CMsgVector right = 3;
         */
        public com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder getRightOrBuilder() {
          if (rightBuilder_ != null) {
            return rightBuilder_.getMessageOrBuilder();
          } else {
            return right_;
          }
        }
        /**
         * optional .CMsgVector right = 3;
         */
        private com.google.protobuf.SingleFieldBuilder<
            com.dota2.proto.Networkbasetypes.CMsgVector, com.dota2.proto.Networkbasetypes.CMsgVector.Builder, com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder> 
            getRightFieldBuilder() {
          if (rightBuilder_ == null) {
            rightBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                com.dota2.proto.Networkbasetypes.CMsgVector, com.dota2.proto.Networkbasetypes.CMsgVector.Builder, com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder>(
                    right_,
                    getParentForChildren(),
                    isClean());
            right_ = null;
          }
          return rightBuilder_;
        }

        // optional .CMsgVector up = 4;
        private com.dota2.proto.Networkbasetypes.CMsgVector up_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            com.dota2.proto.Networkbasetypes.CMsgVector, com.dota2.proto.Networkbasetypes.CMsgVector.Builder, com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder> upBuilder_;
        /**
         * optional .CMsgVector up = 4;
         */
        public boolean hasUp() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * optional .CMsgVector up = 4;
         */
        public com.dota2.proto.Networkbasetypes.CMsgVector getUp() {
          if (upBuilder_ == null) {
            return up_;
          } else {
            return upBuilder_.getMessage();
          }
        }
        /**
         * optional .CMsgVector up = 4;
         */
        public Builder setUp(com.dota2.proto.Networkbasetypes.CMsgVector value) {
          if (upBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            up_ = value;
            onChanged();
          } else {
            upBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000008;
          return this;
        }
        /**
         * optional .CMsgVector up = 4;
         */
        public Builder setUp(
            com.dota2.proto.Networkbasetypes.CMsgVector.Builder builderForValue) {
          if (upBuilder_ == null) {
            up_ = builderForValue.build();
            onChanged();
          } else {
            upBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000008;
          return this;
        }
        /**
         * optional .CMsgVector up = 4;
         */
        public Builder mergeUp(com.dota2.proto.Networkbasetypes.CMsgVector value) {
          if (upBuilder_ == null) {
            if (((bitField0_ & 0x00000008) == 0x00000008) &&
                up_ != com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance()) {
              up_ =
                com.dota2.proto.Networkbasetypes.CMsgVector.newBuilder(up_).mergeFrom(value).buildPartial();
            } else {
              up_ = value;
            }
            onChanged();
          } else {
            upBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000008;
          return this;
        }
        /**
         * optional .CMsgVector up = 4;
         */
        public Builder clearUp() {
          if (upBuilder_ == null) {
            up_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
            onChanged();
          } else {
            upBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000008);
          return this;
        }
        /**
         * optional .CMsgVector up = 4;
         */
        public com.dota2.proto.Networkbasetypes.CMsgVector.Builder getUpBuilder() {
          bitField0_ |= 0x00000008;
          onChanged();
          return getUpFieldBuilder().getBuilder();
        }
        /**
         * optional .CMsgVector up = 4;
         */
        public com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder getUpOrBuilder() {
          if (upBuilder_ != null) {
            return upBuilder_.getMessageOrBuilder();
          } else {
            return up_;
          }
        }
        /**
         * optional .CMsgVector up = 4;
         */
        private com.google.protobuf.SingleFieldBuilder<
            com.dota2.proto.Networkbasetypes.CMsgVector, com.dota2.proto.Networkbasetypes.CMsgVector.Builder, com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder> 
            getUpFieldBuilder() {
          if (upBuilder_ == null) {
            upBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                com.dota2.proto.Networkbasetypes.CMsgVector, com.dota2.proto.Networkbasetypes.CMsgVector.Builder, com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder>(
                    up_,
                    getParentForChildren(),
                    isClean());
            up_ = null;
          }
          return upBuilder_;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ParticleManager.UpdateParticleOrient)
      }

      static {
        defaultInstance = new UpdateParticleOrient(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ParticleManager.UpdateParticleOrient)
    }

    public interface UpdateParticleFallbackOrBuilder
        extends com.google.protobuf.MessageOrBuilder {

      // optional int32 control_point = 1;
      /**
       * optional int32 control_point = 1;
       */
      boolean hasControlPoint();
      /**
       * optional int32 control_point = 1;
       */
      int getControlPoint();

      // optional .CMsgVector position = 2;
      /**
       * optional .CMsgVector position = 2;
       */
      boolean hasPosition();
      /**
       * optional .CMsgVector position = 2;
       */
      com.dota2.proto.Networkbasetypes.CMsgVector getPosition();
      /**
       * optional .CMsgVector position = 2;
       */
      com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder getPositionOrBuilder();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ParticleManager.UpdateParticleFallback}
     */
    public static final class UpdateParticleFallback extends
        com.google.protobuf.GeneratedMessage
        implements UpdateParticleFallbackOrBuilder {
      // Use UpdateParticleFallback.newBuilder() to construct.
      private UpdateParticleFallback(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private UpdateParticleFallback(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final UpdateParticleFallback defaultInstance;
      public static UpdateParticleFallback getDefaultInstance() {
        return defaultInstance;
      }

      public UpdateParticleFallback getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private UpdateParticleFallback(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                controlPoint_ = input.readInt32();
                break;
              }
              case 18: {
                com.dota2.proto.Networkbasetypes.CMsgVector.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = position_.toBuilder();
                }
                position_ = input.readMessage(com.dota2.proto.Networkbasetypes.CMsgVector.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(position_);
                  position_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFallback_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFallback_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public UpdateParticleFallback parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new UpdateParticleFallback(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      // optional int32 control_point = 1;
      public static final int CONTROL_POINT_FIELD_NUMBER = 1;
      private int controlPoint_;
      /**
       * optional int32 control_point = 1;
       */
      public boolean hasControlPoint() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 control_point = 1;
       */
      public int getControlPoint() {
        return controlPoint_;
      }

      // optional .CMsgVector position = 2;
      public static final int POSITION_FIELD_NUMBER = 2;
      private com.dota2.proto.Networkbasetypes.CMsgVector position_;
      /**
       * optional .CMsgVector position = 2;
       */
      public boolean hasPosition() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .CMsgVector position = 2;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVector getPosition() {
        return position_;
      }
      /**
       * optional .CMsgVector position = 2;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder getPositionOrBuilder() {
        return position_;
      }

      private void initFields() {
        controlPoint_ = 0;
        position_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, controlPoint_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeMessage(2, position_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, controlPoint_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, position_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_ParticleManager.UpdateParticleFallback}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder
         implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallbackOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFallback_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFallback_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.Builder.class);
        }

        // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getPositionFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          controlPoint_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          if (positionBuilder_ == null) {
            position_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
          } else {
            positionBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFallback_descriptor;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback getDefaultInstanceForType() {
          return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.getDefaultInstance();
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback build() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback buildPartial() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.controlPoint_ = controlPoint_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          if (positionBuilder_ == null) {
            result.position_ = position_;
          } else {
            result.position_ = positionBuilder_.build();
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback) {
            return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback other) {
          if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.getDefaultInstance()) return this;
          if (other.hasControlPoint()) {
            setControlPoint(other.getControlPoint());
          }
          if (other.hasPosition()) {
            mergePosition(other.getPosition());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        // optional int32 control_point = 1;
        private int controlPoint_ ;
        /**
         * optional int32 control_point = 1;
         */
        public boolean hasControlPoint() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 control_point = 1;
         */
        public int getControlPoint() {
          return controlPoint_;
        }
        /**
         * optional int32 control_point = 1;
         */
        public Builder setControlPoint(int value) {
          bitField0_ |= 0x00000001;
          controlPoint_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 control_point = 1;
         */
        public Builder clearControlPoint() {
          bitField0_ = (bitField0_ & ~0x00000001);
          controlPoint_ = 0;
          onChanged();
          return this;
        }

        // optional .CMsgVector position = 2;
        private com.dota2.proto.Networkbasetypes.CMsgVector position_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            com.dota2.proto.Networkbasetypes.CMsgVector, com.dota2.proto.Networkbasetypes.CMsgVector.Builder, com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder> positionBuilder_;
        /**
         * optional .CMsgVector position = 2;
         */
        public boolean hasPosition() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional .CMsgVector position = 2;
         */
        public com.dota2.proto.Networkbasetypes.CMsgVector getPosition() {
          if (positionBuilder_ == null) {
            return position_;
          } else {
            return positionBuilder_.getMessage();
          }
        }
        /**
         * optional .CMsgVector position = 2;
         */
        public Builder setPosition(com.dota2.proto.Networkbasetypes.CMsgVector value) {
          if (positionBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            position_ = value;
            onChanged();
          } else {
            positionBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * optional .CMsgVector position = 2;
         */
        public Builder setPosition(
            com.dota2.proto.Networkbasetypes.CMsgVector.Builder builderForValue) {
          if (positionBuilder_ == null) {
            position_ = builderForValue.build();
            onChanged();
          } else {
            positionBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * optional .CMsgVector position = 2;
         */
        public Builder mergePosition(com.dota2.proto.Networkbasetypes.CMsgVector value) {
          if (positionBuilder_ == null) {
            if (((bitField0_ & 0x00000002) == 0x00000002) &&
                position_ != com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance()) {
              position_ =
                com.dota2.proto.Networkbasetypes.CMsgVector.newBuilder(position_).mergeFrom(value).buildPartial();
            } else {
              position_ = value;
            }
            onChanged();
          } else {
            positionBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * optional .CMsgVector position = 2;
         */
        public Builder clearPosition() {
          if (positionBuilder_ == null) {
            position_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
            onChanged();
          } else {
            positionBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }
        /**
         * optional .CMsgVector position = 2;
         */
        public com.dota2.proto.Networkbasetypes.CMsgVector.Builder getPositionBuilder() {
          bitField0_ |= 0x00000002;
          onChanged();
          return getPositionFieldBuilder().getBuilder();
        }
        /**
         * optional .CMsgVector position = 2;
         */
        public com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder getPositionOrBuilder() {
          if (positionBuilder_ != null) {
            return positionBuilder_.getMessageOrBuilder();
          } else {
            return position_;
          }
        }
        /**
         * optional .CMsgVector position = 2;
         */
        private com.google.protobuf.SingleFieldBuilder<
            com.dota2.proto.Networkbasetypes.CMsgVector, com.dota2.proto.Networkbasetypes.CMsgVector.Builder, com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder> 
            getPositionFieldBuilder() {
          if (positionBuilder_ == null) {
            positionBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                com.dota2.proto.Networkbasetypes.CMsgVector, com.dota2.proto.Networkbasetypes.CMsgVector.Builder, com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder>(
                    position_,
                    getParentForChildren(),
                    isClean());
            position_ = null;
          }
          return positionBuilder_;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ParticleManager.UpdateParticleFallback)
      }

      static {
        defaultInstance = new UpdateParticleFallback(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ParticleManager.UpdateParticleFallback)
    }

    public interface UpdateParticleOffsetOrBuilder
        extends com.google.protobuf.MessageOrBuilder {

      // optional int32 control_point = 1;
      /**
       * optional int32 control_point = 1;
       */
      boolean hasControlPoint();
      /**
       * optional int32 control_point = 1;
       */
      int getControlPoint();

      // optional .CMsgVector origin_offset = 2;
      /**
       * optional .CMsgVector origin_offset = 2;
       */
      boolean hasOriginOffset();
      /**
       * optional .CMsgVector origin_offset = 2;
       */
      com.dota2.proto.Networkbasetypes.CMsgVector getOriginOffset();
      /**
       * optional .CMsgVector origin_offset = 2;
       */
      com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder getOriginOffsetOrBuilder();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ParticleManager.UpdateParticleOffset}
     */
    public static final class UpdateParticleOffset extends
        com.google.protobuf.GeneratedMessage
        implements UpdateParticleOffsetOrBuilder {
      // Use UpdateParticleOffset.newBuilder() to construct.
      private UpdateParticleOffset(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private UpdateParticleOffset(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final UpdateParticleOffset defaultInstance;
      public static UpdateParticleOffset getDefaultInstance() {
        return defaultInstance;
      }

      public UpdateParticleOffset getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private UpdateParticleOffset(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                controlPoint_ = input.readInt32();
                break;
              }
              case 18: {
                com.dota2.proto.Networkbasetypes.CMsgVector.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = originOffset_.toBuilder();
                }
                originOffset_ = input.readMessage(com.dota2.proto.Networkbasetypes.CMsgVector.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(originOffset_);
                  originOffset_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOffset_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOffset_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public UpdateParticleOffset parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new UpdateParticleOffset(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      // optional int32 control_point = 1;
      public static final int CONTROL_POINT_FIELD_NUMBER = 1;
      private int controlPoint_;
      /**
       * optional int32 control_point = 1;
       */
      public boolean hasControlPoint() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 control_point = 1;
       */
      public int getControlPoint() {
        return controlPoint_;
      }

      // optional .CMsgVector origin_offset = 2;
      public static final int ORIGIN_OFFSET_FIELD_NUMBER = 2;
      private com.dota2.proto.Networkbasetypes.CMsgVector originOffset_;
      /**
       * optional .CMsgVector origin_offset = 2;
       */
      public boolean hasOriginOffset() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .CMsgVector origin_offset = 2;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVector getOriginOffset() {
        return originOffset_;
      }
      /**
       * optional .CMsgVector origin_offset = 2;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder getOriginOffsetOrBuilder() {
        return originOffset_;
      }

      private void initFields() {
        controlPoint_ = 0;
        originOffset_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, controlPoint_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeMessage(2, originOffset_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, controlPoint_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, originOffset_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_ParticleManager.UpdateParticleOffset}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder
         implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffsetOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOffset_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOffset_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.Builder.class);
        }

        // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getOriginOffsetFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          controlPoint_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          if (originOffsetBuilder_ == null) {
            originOffset_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
          } else {
            originOffsetBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOffset_descriptor;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset getDefaultInstanceForType() {
          return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.getDefaultInstance();
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset build() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset buildPartial() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.controlPoint_ = controlPoint_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          if (originOffsetBuilder_ == null) {
            result.originOffset_ = originOffset_;
          } else {
            result.originOffset_ = originOffsetBuilder_.build();
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset) {
            return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset other) {
          if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.getDefaultInstance()) return this;
          if (other.hasControlPoint()) {
            setControlPoint(other.getControlPoint());
          }
          if (other.hasOriginOffset()) {
            mergeOriginOffset(other.getOriginOffset());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        // optional int32 control_point = 1;
        private int controlPoint_ ;
        /**
         * optional int32 control_point = 1;
         */
        public boolean hasControlPoint() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 control_point = 1;
         */
        public int getControlPoint() {
          return controlPoint_;
        }
        /**
         * optional int32 control_point = 1;
         */
        public Builder setControlPoint(int value) {
          bitField0_ |= 0x00000001;
          controlPoint_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 control_point = 1;
         */
        public Builder clearControlPoint() {
          bitField0_ = (bitField0_ & ~0x00000001);
          controlPoint_ = 0;
          onChanged();
          return this;
        }

        // optional .CMsgVector origin_offset = 2;
        private com.dota2.proto.Networkbasetypes.CMsgVector originOffset_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            com.dota2.proto.Networkbasetypes.CMsgVector, com.dota2.proto.Networkbasetypes.CMsgVector.Builder, com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder> originOffsetBuilder_;
        /**
         * optional .CMsgVector origin_offset = 2;
         */
        public boolean hasOriginOffset() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional .CMsgVector origin_offset = 2;
         */
        public com.dota2.proto.Networkbasetypes.CMsgVector getOriginOffset() {
          if (originOffsetBuilder_ == null) {
            return originOffset_;
          } else {
            return originOffsetBuilder_.getMessage();
          }
        }
        /**
         * optional .CMsgVector origin_offset = 2;
         */
        public Builder setOriginOffset(com.dota2.proto.Networkbasetypes.CMsgVector value) {
          if (originOffsetBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            originOffset_ = value;
            onChanged();
          } else {
            originOffsetBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * optional .CMsgVector origin_offset = 2;
         */
        public Builder setOriginOffset(
            com.dota2.proto.Networkbasetypes.CMsgVector.Builder builderForValue) {
          if (originOffsetBuilder_ == null) {
            originOffset_ = builderForValue.build();
            onChanged();
          } else {
            originOffsetBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * optional .CMsgVector origin_offset = 2;
         */
        public Builder mergeOriginOffset(com.dota2.proto.Networkbasetypes.CMsgVector value) {
          if (originOffsetBuilder_ == null) {
            if (((bitField0_ & 0x00000002) == 0x00000002) &&
                originOffset_ != com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance()) {
              originOffset_ =
                com.dota2.proto.Networkbasetypes.CMsgVector.newBuilder(originOffset_).mergeFrom(value).buildPartial();
            } else {
              originOffset_ = value;
            }
            onChanged();
          } else {
            originOffsetBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * optional .CMsgVector origin_offset = 2;
         */
        public Builder clearOriginOffset() {
          if (originOffsetBuilder_ == null) {
            originOffset_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
            onChanged();
          } else {
            originOffsetBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }
        /**
         * optional .CMsgVector origin_offset = 2;
         */
        public com.dota2.proto.Networkbasetypes.CMsgVector.Builder getOriginOffsetBuilder() {
          bitField0_ |= 0x00000002;
          onChanged();
          return getOriginOffsetFieldBuilder().getBuilder();
        }
        /**
         * optional .CMsgVector origin_offset = 2;
         */
        public com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder getOriginOffsetOrBuilder() {
          if (originOffsetBuilder_ != null) {
            return originOffsetBuilder_.getMessageOrBuilder();
          } else {
            return originOffset_;
          }
        }
        /**
         * optional .CMsgVector origin_offset = 2;
         */
        private com.google.protobuf.SingleFieldBuilder<
            com.dota2.proto.Networkbasetypes.CMsgVector, com.dota2.proto.Networkbasetypes.CMsgVector.Builder, com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder> 
            getOriginOffsetFieldBuilder() {
          if (originOffsetBuilder_ == null) {
            originOffsetBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                com.dota2.proto.Networkbasetypes.CMsgVector, com.dota2.proto.Networkbasetypes.CMsgVector.Builder, com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder>(
                    originOffset_,
                    getParentForChildren(),
                    isClean());
            originOffset_ = null;
          }
          return originOffsetBuilder_;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ParticleManager.UpdateParticleOffset)
      }

      static {
        defaultInstance = new UpdateParticleOffset(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ParticleManager.UpdateParticleOffset)
    }

    public interface UpdateParticleEntOrBuilder
        extends com.google.protobuf.MessageOrBuilder {

      // optional int32 control_point = 1;
      /**
       * optional int32 control_point = 1;
       */
      boolean hasControlPoint();
      /**
       * optional int32 control_point = 1;
       */
      int getControlPoint();

      // optional int32 entity_handle = 2;
      /**
       * optional int32 entity_handle = 2;
       */
      boolean hasEntityHandle();
      /**
       * optional int32 entity_handle = 2;
       */
      int getEntityHandle();

      // optional int32 attach_type = 3;
      /**
       * optional int32 attach_type = 3;
       */
      boolean hasAttachType();
      /**
       * optional int32 attach_type = 3;
       */
      int getAttachType();

      // optional int32 attachment = 4;
      /**
       * optional int32 attachment = 4;
       */
      boolean hasAttachment();
      /**
       * optional int32 attachment = 4;
       */
      int getAttachment();

      // optional .CMsgVector fallback_position = 5;
      /**
       * optional .CMsgVector fallback_position = 5;
       */
      boolean hasFallbackPosition();
      /**
       * optional .CMsgVector fallback_position = 5;
       */
      com.dota2.proto.Networkbasetypes.CMsgVector getFallbackPosition();
      /**
       * optional .CMsgVector fallback_position = 5;
       */
      com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder getFallbackPositionOrBuilder();

      // optional bool include_wearables = 6;
      /**
       * optional bool include_wearables = 6;
       */
      boolean hasIncludeWearables();
      /**
       * optional bool include_wearables = 6;
       */
      boolean getIncludeWearables();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ParticleManager.UpdateParticleEnt}
     */
    public static final class UpdateParticleEnt extends
        com.google.protobuf.GeneratedMessage
        implements UpdateParticleEntOrBuilder {
      // Use UpdateParticleEnt.newBuilder() to construct.
      private UpdateParticleEnt(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private UpdateParticleEnt(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final UpdateParticleEnt defaultInstance;
      public static UpdateParticleEnt getDefaultInstance() {
        return defaultInstance;
      }

      public UpdateParticleEnt getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private UpdateParticleEnt(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                controlPoint_ = input.readInt32();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                entityHandle_ = input.readInt32();
                break;
              }
              case 24: {
                bitField0_ |= 0x00000004;
                attachType_ = input.readInt32();
                break;
              }
              case 32: {
                bitField0_ |= 0x00000008;
                attachment_ = input.readInt32();
                break;
              }
              case 42: {
                com.dota2.proto.Networkbasetypes.CMsgVector.Builder subBuilder = null;
                if (((bitField0_ & 0x00000010) == 0x00000010)) {
                  subBuilder = fallbackPosition_.toBuilder();
                }
                fallbackPosition_ = input.readMessage(com.dota2.proto.Networkbasetypes.CMsgVector.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(fallbackPosition_);
                  fallbackPosition_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000010;
                break;
              }
              case 48: {
                bitField0_ |= 0x00000020;
                includeWearables_ = input.readBool();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleEnt_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleEnt_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public UpdateParticleEnt parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new UpdateParticleEnt(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      // optional int32 control_point = 1;
      public static final int CONTROL_POINT_FIELD_NUMBER = 1;
      private int controlPoint_;
      /**
       * optional int32 control_point = 1;
       */
      public boolean hasControlPoint() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 control_point = 1;
       */
      public int getControlPoint() {
        return controlPoint_;
      }

      // optional int32 entity_handle = 2;
      public static final int ENTITY_HANDLE_FIELD_NUMBER = 2;
      private int entityHandle_;
      /**
       * optional int32 entity_handle = 2;
       */
      public boolean hasEntityHandle() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 entity_handle = 2;
       */
      public int getEntityHandle() {
        return entityHandle_;
      }

      // optional int32 attach_type = 3;
      public static final int ATTACH_TYPE_FIELD_NUMBER = 3;
      private int attachType_;
      /**
       * optional int32 attach_type = 3;
       */
      public boolean hasAttachType() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 attach_type = 3;
       */
      public int getAttachType() {
        return attachType_;
      }

      // optional int32 attachment = 4;
      public static final int ATTACHMENT_FIELD_NUMBER = 4;
      private int attachment_;
      /**
       * optional int32 attachment = 4;
       */
      public boolean hasAttachment() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 attachment = 4;
       */
      public int getAttachment() {
        return attachment_;
      }

      // optional .CMsgVector fallback_position = 5;
      public static final int FALLBACK_POSITION_FIELD_NUMBER = 5;
      private com.dota2.proto.Networkbasetypes.CMsgVector fallbackPosition_;
      /**
       * optional .CMsgVector fallback_position = 5;
       */
      public boolean hasFallbackPosition() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional .CMsgVector fallback_position = 5;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVector getFallbackPosition() {
        return fallbackPosition_;
      }
      /**
       * optional .CMsgVector fallback_position = 5;
       */
      public com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder getFallbackPositionOrBuilder() {
        return fallbackPosition_;
      }

      // optional bool include_wearables = 6;
      public static final int INCLUDE_WEARABLES_FIELD_NUMBER = 6;
      private boolean includeWearables_;
      /**
       * optional bool include_wearables = 6;
       */
      public boolean hasIncludeWearables() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional bool include_wearables = 6;
       */
      public boolean getIncludeWearables() {
        return includeWearables_;
      }

      private void initFields() {
        controlPoint_ = 0;
        entityHandle_ = 0;
        attachType_ = 0;
        attachment_ = 0;
        fallbackPosition_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
        includeWearables_ = false;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, controlPoint_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeInt32(2, entityHandle_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeInt32(3, attachType_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeInt32(4, attachment_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          output.writeMessage(5, fallbackPosition_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          output.writeBool(6, includeWearables_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, controlPoint_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(2, entityHandle_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(3, attachType_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(4, attachment_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(5, fallbackPosition_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(6, includeWearables_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_ParticleManager.UpdateParticleEnt}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder
         implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEntOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleEnt_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleEnt_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.Builder.class);
        }

        // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getFallbackPositionFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          controlPoint_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          entityHandle_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          attachType_ = 0;
          bitField0_ = (bitField0_ & ~0x00000004);
          attachment_ = 0;
          bitField0_ = (bitField0_ & ~0x00000008);
          if (fallbackPositionBuilder_ == null) {
            fallbackPosition_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
          } else {
            fallbackPositionBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000010);
          includeWearables_ = false;
          bitField0_ = (bitField0_ & ~0x00000020);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleEnt_descriptor;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt getDefaultInstanceForType() {
          return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.getDefaultInstance();
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt build() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt buildPartial() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.controlPoint_ = controlPoint_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.entityHandle_ = entityHandle_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.attachType_ = attachType_;
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000008;
          }
          result.attachment_ = attachment_;
          if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
            to_bitField0_ |= 0x00000010;
          }
          if (fallbackPositionBuilder_ == null) {
            result.fallbackPosition_ = fallbackPosition_;
          } else {
            result.fallbackPosition_ = fallbackPositionBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
            to_bitField0_ |= 0x00000020;
          }
          result.includeWearables_ = includeWearables_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt) {
            return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt other) {
          if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.getDefaultInstance()) return this;
          if (other.hasControlPoint()) {
            setControlPoint(other.getControlPoint());
          }
          if (other.hasEntityHandle()) {
            setEntityHandle(other.getEntityHandle());
          }
          if (other.hasAttachType()) {
            setAttachType(other.getAttachType());
          }
          if (other.hasAttachment()) {
            setAttachment(other.getAttachment());
          }
          if (other.hasFallbackPosition()) {
            mergeFallbackPosition(other.getFallbackPosition());
          }
          if (other.hasIncludeWearables()) {
            setIncludeWearables(other.getIncludeWearables());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        // optional int32 control_point = 1;
        private int controlPoint_ ;
        /**
         * optional int32 control_point = 1;
         */
        public boolean hasControlPoint() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 control_point = 1;
         */
        public int getControlPoint() {
          return controlPoint_;
        }
        /**
         * optional int32 control_point = 1;
         */
        public Builder setControlPoint(int value) {
          bitField0_ |= 0x00000001;
          controlPoint_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 control_point = 1;
         */
        public Builder clearControlPoint() {
          bitField0_ = (bitField0_ & ~0x00000001);
          controlPoint_ = 0;
          onChanged();
          return this;
        }

        // optional int32 entity_handle = 2;
        private int entityHandle_ ;
        /**
         * optional int32 entity_handle = 2;
         */
        public boolean hasEntityHandle() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional int32 entity_handle = 2;
         */
        public int getEntityHandle() {
          return entityHandle_;
        }
        /**
         * optional int32 entity_handle = 2;
         */
        public Builder setEntityHandle(int value) {
          bitField0_ |= 0x00000002;
          entityHandle_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 entity_handle = 2;
         */
        public Builder clearEntityHandle() {
          bitField0_ = (bitField0_ & ~0x00000002);
          entityHandle_ = 0;
          onChanged();
          return this;
        }

        // optional int32 attach_type = 3;
        private int attachType_ ;
        /**
         * optional int32 attach_type = 3;
         */
        public boolean hasAttachType() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * optional int32 attach_type = 3;
         */
        public int getAttachType() {
          return attachType_;
        }
        /**
         * optional int32 attach_type = 3;
         */
        public Builder setAttachType(int value) {
          bitField0_ |= 0x00000004;
          attachType_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 attach_type = 3;
         */
        public Builder clearAttachType() {
          bitField0_ = (bitField0_ & ~0x00000004);
          attachType_ = 0;
          onChanged();
          return this;
        }

        // optional int32 attachment = 4;
        private int attachment_ ;
        /**
         * optional int32 attachment = 4;
         */
        public boolean hasAttachment() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * optional int32 attachment = 4;
         */
        public int getAttachment() {
          return attachment_;
        }
        /**
         * optional int32 attachment = 4;
         */
        public Builder setAttachment(int value) {
          bitField0_ |= 0x00000008;
          attachment_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 attachment = 4;
         */
        public Builder clearAttachment() {
          bitField0_ = (bitField0_ & ~0x00000008);
          attachment_ = 0;
          onChanged();
          return this;
        }

        // optional .CMsgVector fallback_position = 5;
        private com.dota2.proto.Networkbasetypes.CMsgVector fallbackPosition_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            com.dota2.proto.Networkbasetypes.CMsgVector, com.dota2.proto.Networkbasetypes.CMsgVector.Builder, com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder> fallbackPositionBuilder_;
        /**
         * optional .CMsgVector fallback_position = 5;
         */
        public boolean hasFallbackPosition() {
          return ((bitField0_ & 0x00000010) == 0x00000010);
        }
        /**
         * optional .CMsgVector fallback_position = 5;
         */
        public com.dota2.proto.Networkbasetypes.CMsgVector getFallbackPosition() {
          if (fallbackPositionBuilder_ == null) {
            return fallbackPosition_;
          } else {
            return fallbackPositionBuilder_.getMessage();
          }
        }
        /**
         * optional .CMsgVector fallback_position = 5;
         */
        public Builder setFallbackPosition(com.dota2.proto.Networkbasetypes.CMsgVector value) {
          if (fallbackPositionBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            fallbackPosition_ = value;
            onChanged();
          } else {
            fallbackPositionBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000010;
          return this;
        }
        /**
         * optional .CMsgVector fallback_position = 5;
         */
        public Builder setFallbackPosition(
            com.dota2.proto.Networkbasetypes.CMsgVector.Builder builderForValue) {
          if (fallbackPositionBuilder_ == null) {
            fallbackPosition_ = builderForValue.build();
            onChanged();
          } else {
            fallbackPositionBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000010;
          return this;
        }
        /**
         * optional .CMsgVector fallback_position = 5;
         */
        public Builder mergeFallbackPosition(com.dota2.proto.Networkbasetypes.CMsgVector value) {
          if (fallbackPositionBuilder_ == null) {
            if (((bitField0_ & 0x00000010) == 0x00000010) &&
                fallbackPosition_ != com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance()) {
              fallbackPosition_ =
                com.dota2.proto.Networkbasetypes.CMsgVector.newBuilder(fallbackPosition_).mergeFrom(value).buildPartial();
            } else {
              fallbackPosition_ = value;
            }
            onChanged();
          } else {
            fallbackPositionBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000010;
          return this;
        }
        /**
         * optional .CMsgVector fallback_position = 5;
         */
        public Builder clearFallbackPosition() {
          if (fallbackPositionBuilder_ == null) {
            fallbackPosition_ = com.dota2.proto.Networkbasetypes.CMsgVector.getDefaultInstance();
            onChanged();
          } else {
            fallbackPositionBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000010);
          return this;
        }
        /**
         * optional .CMsgVector fallback_position = 5;
         */
        public com.dota2.proto.Networkbasetypes.CMsgVector.Builder getFallbackPositionBuilder() {
          bitField0_ |= 0x00000010;
          onChanged();
          return getFallbackPositionFieldBuilder().getBuilder();
        }
        /**
         * optional .CMsgVector fallback_position = 5;
         */
        public com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder getFallbackPositionOrBuilder() {
          if (fallbackPositionBuilder_ != null) {
            return fallbackPositionBuilder_.getMessageOrBuilder();
          } else {
            return fallbackPosition_;
          }
        }
        /**
         * optional .CMsgVector fallback_position = 5;
         */
        private com.google.protobuf.SingleFieldBuilder<
            com.dota2.proto.Networkbasetypes.CMsgVector, com.dota2.proto.Networkbasetypes.CMsgVector.Builder, com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder> 
            getFallbackPositionFieldBuilder() {
          if (fallbackPositionBuilder_ == null) {
            fallbackPositionBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                com.dota2.proto.Networkbasetypes.CMsgVector, com.dota2.proto.Networkbasetypes.CMsgVector.Builder, com.dota2.proto.Networkbasetypes.CMsgVectorOrBuilder>(
                    fallbackPosition_,
                    getParentForChildren(),
                    isClean());
            fallbackPosition_ = null;
          }
          return fallbackPositionBuilder_;
        }

        // optional bool include_wearables = 6;
        private boolean includeWearables_ ;
        /**
         * optional bool include_wearables = 6;
         */
        public boolean hasIncludeWearables() {
          return ((bitField0_ & 0x00000020) == 0x00000020);
        }
        /**
         * optional bool include_wearables = 6;
         */
        public boolean getIncludeWearables() {
          return includeWearables_;
        }
        /**
         * optional bool include_wearables = 6;
         */
        public Builder setIncludeWearables(boolean value) {
          bitField0_ |= 0x00000020;
          includeWearables_ = value;
          onChanged();
          return this;
        }
        /**
         * optional bool include_wearables = 6;
         */
        public Builder clearIncludeWearables() {
          bitField0_ = (bitField0_ & ~0x00000020);
          includeWearables_ = false;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ParticleManager.UpdateParticleEnt)
      }

      static {
        defaultInstance = new UpdateParticleEnt(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ParticleManager.UpdateParticleEnt)
    }

    public interface UpdateParticleSetFrozenOrBuilder
        extends com.google.protobuf.MessageOrBuilder {

      // optional bool set_frozen = 1;
      /**
       * optional bool set_frozen = 1;
       */
      boolean hasSetFrozen();
      /**
       * optional bool set_frozen = 1;
       */
      boolean getSetFrozen();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen}
     */
    public static final class UpdateParticleSetFrozen extends
        com.google.protobuf.GeneratedMessage
        implements UpdateParticleSetFrozenOrBuilder {
      // Use UpdateParticleSetFrozen.newBuilder() to construct.
      private UpdateParticleSetFrozen(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private UpdateParticleSetFrozen(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final UpdateParticleSetFrozen defaultInstance;
      public static UpdateParticleSetFrozen getDefaultInstance() {
        return defaultInstance;
      }

      public UpdateParticleSetFrozen getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private UpdateParticleSetFrozen(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                setFrozen_ = input.readBool();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleSetFrozen_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleSetFrozen_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public UpdateParticleSetFrozen parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new UpdateParticleSetFrozen(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      // optional bool set_frozen = 1;
      public static final int SET_FROZEN_FIELD_NUMBER = 1;
      private boolean setFrozen_;
      /**
       * optional bool set_frozen = 1;
       */
      public boolean hasSetFrozen() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional bool set_frozen = 1;
       */
      public boolean getSetFrozen() {
        return setFrozen_;
      }

      private void initFields() {
        setFrozen_ = false;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeBool(1, setFrozen_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(1, setFrozen_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder
         implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozenOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleSetFrozen_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleSetFrozen_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.Builder.class);
        }

        // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          setFrozen_ = false;
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleSetFrozen_descriptor;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen getDefaultInstanceForType() {
          return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.getDefaultInstance();
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen build() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen buildPartial() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.setFrozen_ = setFrozen_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen) {
            return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen other) {
          if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.getDefaultInstance()) return this;
          if (other.hasSetFrozen()) {
            setSetFrozen(other.getSetFrozen());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        // optional bool set_frozen = 1;
        private boolean setFrozen_ ;
        /**
         * optional bool set_frozen = 1;
         */
        public boolean hasSetFrozen() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional bool set_frozen = 1;
         */
        public boolean getSetFrozen() {
          return setFrozen_;
        }
        /**
         * optional bool set_frozen = 1;
         */
        public Builder setSetFrozen(boolean value) {
          bitField0_ |= 0x00000001;
          setFrozen_ = value;
          onChanged();
          return this;
        }
        /**
         * optional bool set_frozen = 1;
         */
        public Builder clearSetFrozen() {
          bitField0_ = (bitField0_ & ~0x00000001);
          setFrozen_ = false;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen)
      }

      static {
        defaultInstance = new UpdateParticleSetFrozen(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen)
    }

    public interface UpdateParticleShouldDrawOrBuilder
        extends com.google.protobuf.MessageOrBuilder {

      // optional bool should_draw = 1;
      /**
       * optional bool should_draw = 1;
       */
      boolean hasShouldDraw();
      /**
       * optional bool should_draw = 1;
       */
      boolean getShouldDraw();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw}
     */
    public static final class UpdateParticleShouldDraw extends
        com.google.protobuf.GeneratedMessage
        implements UpdateParticleShouldDrawOrBuilder {
      // Use UpdateParticleShouldDraw.newBuilder() to construct.
      private UpdateParticleShouldDraw(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private UpdateParticleShouldDraw(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final UpdateParticleShouldDraw defaultInstance;
      public static UpdateParticleShouldDraw getDefaultInstance() {
        return defaultInstance;
      }

      public UpdateParticleShouldDraw getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private UpdateParticleShouldDraw(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                shouldDraw_ = input.readBool();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleShouldDraw_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleShouldDraw_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public UpdateParticleShouldDraw parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new UpdateParticleShouldDraw(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      // optional bool should_draw = 1;
      public static final int SHOULD_DRAW_FIELD_NUMBER = 1;
      private boolean shouldDraw_;
      /**
       * optional bool should_draw = 1;
       */
      public boolean hasShouldDraw() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional bool should_draw = 1;
       */
      public boolean getShouldDraw() {
        return shouldDraw_;
      }

      private void initFields() {
        shouldDraw_ = false;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeBool(1, shouldDraw_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(1, shouldDraw_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder
         implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDrawOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleShouldDraw_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleShouldDraw_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.Builder.class);
        }

        // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          shouldDraw_ = false;
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleShouldDraw_descriptor;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw getDefaultInstanceForType() {
          return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.getDefaultInstance();
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw build() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw buildPartial() {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.shouldDraw_ = shouldDraw_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw) {
            return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw other) {
          if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.getDefaultInstance()) return this;
          if (other.hasShouldDraw()) {
            setShouldDraw(other.getShouldDraw());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        // optional bool should_draw = 1;
        private boolean shouldDraw_ ;
        /**
         * optional bool should_draw = 1;
         */
        public boolean hasShouldDraw() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional bool should_draw = 1;
         */
        public boolean getShouldDraw() {
          return shouldDraw_;
        }
        /**
         * optional bool should_draw = 1;
         */
        public Builder setShouldDraw(boolean value) {
          bitField0_ |= 0x00000001;
          shouldDraw_ = value;
          onChanged();
          return this;
        }
        /**
         * optional bool should_draw = 1;
         */
        public Builder clearShouldDraw() {
          bitField0_ = (bitField0_ & ~0x00000001);
          shouldDraw_ = false;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw)
      }

      static {
        defaultInstance = new UpdateParticleShouldDraw(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw)
    }

    private int bitField0_;
    // required .DOTA_PARTICLE_MESSAGE type = 1 [default = DOTA_PARTICLE_MANAGER_EVENT_CREATE];
    public static final int TYPE_FIELD_NUMBER = 1;
    private com.dota2.proto.DotaUsermessages.DOTA_PARTICLE_MESSAGE type_;
    /**
     * required .DOTA_PARTICLE_MESSAGE type = 1 [default = DOTA_PARTICLE_MANAGER_EVENT_CREATE];
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required .DOTA_PARTICLE_MESSAGE type = 1 [default = DOTA_PARTICLE_MANAGER_EVENT_CREATE];
     */
    public com.dota2.proto.DotaUsermessages.DOTA_PARTICLE_MESSAGE getType() {
      return type_;
    }

    // required uint32 index = 2;
    public static final int INDEX_FIELD_NUMBER = 2;
    private int index_;
    /**
     * required uint32 index = 2;
     */
    public boolean hasIndex() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required uint32 index = 2;
     */
    public int getIndex() {
      return index_;
    }

    // optional .CDOTAUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3;
    public static final int RELEASE_PARTICLE_INDEX_FIELD_NUMBER = 3;
    private com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex releaseParticleIndex_;
    /**
     * optional .CDOTAUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3;
     */
    public boolean hasReleaseParticleIndex() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex getReleaseParticleIndex() {
      return releaseParticleIndex_;
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndexOrBuilder getReleaseParticleIndexOrBuilder() {
      return releaseParticleIndex_;
    }

    // optional .CDOTAUserMsg_ParticleManager.CreateParticle create_particle = 4;
    public static final int CREATE_PARTICLE_FIELD_NUMBER = 4;
    private com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle createParticle_;
    /**
     * optional .CDOTAUserMsg_ParticleManager.CreateParticle create_particle = 4;
     */
    public boolean hasCreateParticle() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.CreateParticle create_particle = 4;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle getCreateParticle() {
      return createParticle_;
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.CreateParticle create_particle = 4;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticleOrBuilder getCreateParticleOrBuilder() {
      return createParticle_;
    }

    // optional .CDOTAUserMsg_ParticleManager.DestroyParticle destroy_particle = 5;
    public static final int DESTROY_PARTICLE_FIELD_NUMBER = 5;
    private com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle destroyParticle_;
    /**
     * optional .CDOTAUserMsg_ParticleManager.DestroyParticle destroy_particle = 5;
     */
    public boolean hasDestroyParticle() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.DestroyParticle destroy_particle = 5;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle getDestroyParticle() {
      return destroyParticle_;
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.DestroyParticle destroy_particle = 5;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleOrBuilder getDestroyParticleOrBuilder() {
      return destroyParticle_;
    }

    // optional .CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6;
    public static final int DESTROY_PARTICLE_INVOLVING_FIELD_NUMBER = 6;
    private com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroyParticleInvolving_;
    /**
     * optional .CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6;
     */
    public boolean hasDestroyParticleInvolving() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving getDestroyParticleInvolving() {
      return destroyParticleInvolving_;
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolvingOrBuilder getDestroyParticleInvolvingOrBuilder() {
      return destroyParticleInvolving_;
    }

    // optional .CDOTAUserMsg_ParticleManager.UpdateParticle update_particle = 7;
    public static final int UPDATE_PARTICLE_FIELD_NUMBER = 7;
    private com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle updateParticle_;
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticle update_particle = 7;
     */
    public boolean hasUpdateParticle() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticle update_particle = 7;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle getUpdateParticle() {
      return updateParticle_;
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticle update_particle = 7;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrBuilder getUpdateParticleOrBuilder() {
      return updateParticle_;
    }

    // optional .CDOTAUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8;
    public static final int UPDATE_PARTICLE_FWD_FIELD_NUMBER = 8;
    private com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd updateParticleFwd_;
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8;
     */
    public boolean hasUpdateParticleFwd() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd getUpdateParticleFwd() {
      return updateParticleFwd_;
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwdOrBuilder getUpdateParticleFwdOrBuilder() {
      return updateParticleFwd_;
    }

    // optional .CDOTAUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9;
    public static final int UPDATE_PARTICLE_ORIENT_FIELD_NUMBER = 9;
    private com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient updateParticleOrient_;
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9;
     */
    public boolean hasUpdateParticleOrient() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient getUpdateParticleOrient() {
      return updateParticleOrient_;
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrientOrBuilder getUpdateParticleOrientOrBuilder() {
      return updateParticleOrient_;
    }

    // optional .CDOTAUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10;
    public static final int UPDATE_PARTICLE_FALLBACK_FIELD_NUMBER = 10;
    private com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback updateParticleFallback_;
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10;
     */
    public boolean hasUpdateParticleFallback() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback getUpdateParticleFallback() {
      return updateParticleFallback_;
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallbackOrBuilder getUpdateParticleFallbackOrBuilder() {
      return updateParticleFallback_;
    }

    // optional .CDOTAUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11;
    public static final int UPDATE_PARTICLE_OFFSET_FIELD_NUMBER = 11;
    private com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset updateParticleOffset_;
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11;
     */
    public boolean hasUpdateParticleOffset() {
      return ((bitField0_ & 0x00000400) == 0x00000400);
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset getUpdateParticleOffset() {
      return updateParticleOffset_;
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffsetOrBuilder getUpdateParticleOffsetOrBuilder() {
      return updateParticleOffset_;
    }

    // optional .CDOTAUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12;
    public static final int UPDATE_PARTICLE_ENT_FIELD_NUMBER = 12;
    private com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt updateParticleEnt_;
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12;
     */
    public boolean hasUpdateParticleEnt() {
      return ((bitField0_ & 0x00000800) == 0x00000800);
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt getUpdateParticleEnt() {
      return updateParticleEnt_;
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEntOrBuilder getUpdateParticleEntOrBuilder() {
      return updateParticleEnt_;
    }

    // optional .CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14;
    public static final int UPDATE_PARTICLE_SHOULD_DRAW_FIELD_NUMBER = 14;
    private com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw updateParticleShouldDraw_;
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14;
     */
    public boolean hasUpdateParticleShouldDraw() {
      return ((bitField0_ & 0x00001000) == 0x00001000);
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw getUpdateParticleShouldDraw() {
      return updateParticleShouldDraw_;
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDrawOrBuilder getUpdateParticleShouldDrawOrBuilder() {
      return updateParticleShouldDraw_;
    }

    // optional .CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15;
    public static final int UPDATE_PARTICLE_SET_FROZEN_FIELD_NUMBER = 15;
    private com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen updateParticleSetFrozen_;
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15;
     */
    public boolean hasUpdateParticleSetFrozen() {
      return ((bitField0_ & 0x00002000) == 0x00002000);
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen getUpdateParticleSetFrozen() {
      return updateParticleSetFrozen_;
    }
    /**
     * optional .CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozenOrBuilder getUpdateParticleSetFrozenOrBuilder() {
      return updateParticleSetFrozen_;
    }

    private void initFields() {
      type_ = com.dota2.proto.DotaUsermessages.DOTA_PARTICLE_MESSAGE.DOTA_PARTICLE_MANAGER_EVENT_CREATE;
      index_ = 0;
      releaseParticleIndex_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.getDefaultInstance();
      createParticle_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle.getDefaultInstance();
      destroyParticle_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle.getDefaultInstance();
      destroyParticleInvolving_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.getDefaultInstance();
      updateParticle_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle.getDefaultInstance();
      updateParticleFwd_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.getDefaultInstance();
      updateParticleOrient_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.getDefaultInstance();
      updateParticleFallback_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.getDefaultInstance();
      updateParticleOffset_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.getDefaultInstance();
      updateParticleEnt_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.getDefaultInstance();
      updateParticleShouldDraw_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.getDefaultInstance();
      updateParticleSetFrozen_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasIndex()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, type_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, index_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, releaseParticleIndex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(4, createParticle_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(5, destroyParticle_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeMessage(6, destroyParticleInvolving_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeMessage(7, updateParticle_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeMessage(8, updateParticleFwd_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeMessage(9, updateParticleOrient_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeMessage(10, updateParticleFallback_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        output.writeMessage(11, updateParticleOffset_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        output.writeMessage(12, updateParticleEnt_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        output.writeMessage(14, updateParticleShouldDraw_);
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        output.writeMessage(15, updateParticleSetFrozen_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, type_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, index_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, releaseParticleIndex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, createParticle_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, destroyParticle_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, destroyParticleInvolving_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, updateParticle_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, updateParticleFwd_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, updateParticleOrient_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10, updateParticleFallback_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(11, updateParticleOffset_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(12, updateParticleEnt_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(14, updateParticleShouldDraw_);
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(15, updateParticleSetFrozen_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ParticleManager}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManagerOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getReleaseParticleIndexFieldBuilder();
          getCreateParticleFieldBuilder();
          getDestroyParticleFieldBuilder();
          getDestroyParticleInvolvingFieldBuilder();
          getUpdateParticleFieldBuilder();
          getUpdateParticleFwdFieldBuilder();
          getUpdateParticleOrientFieldBuilder();
          getUpdateParticleFallbackFieldBuilder();
          getUpdateParticleOffsetFieldBuilder();
          getUpdateParticleEntFieldBuilder();
          getUpdateParticleShouldDrawFieldBuilder();
          getUpdateParticleSetFrozenFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        type_ = com.dota2.proto.DotaUsermessages.DOTA_PARTICLE_MESSAGE.DOTA_PARTICLE_MANAGER_EVENT_CREATE;
        bitField0_ = (bitField0_ & ~0x00000001);
        index_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (releaseParticleIndexBuilder_ == null) {
          releaseParticleIndex_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.getDefaultInstance();
        } else {
          releaseParticleIndexBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        if (createParticleBuilder_ == null) {
          createParticle_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle.getDefaultInstance();
        } else {
          createParticleBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        if (destroyParticleBuilder_ == null) {
          destroyParticle_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle.getDefaultInstance();
        } else {
          destroyParticleBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        if (destroyParticleInvolvingBuilder_ == null) {
          destroyParticleInvolving_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.getDefaultInstance();
        } else {
          destroyParticleInvolvingBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        if (updateParticleBuilder_ == null) {
          updateParticle_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle.getDefaultInstance();
        } else {
          updateParticleBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        if (updateParticleFwdBuilder_ == null) {
          updateParticleFwd_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.getDefaultInstance();
        } else {
          updateParticleFwdBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        if (updateParticleOrientBuilder_ == null) {
          updateParticleOrient_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.getDefaultInstance();
        } else {
          updateParticleOrientBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        if (updateParticleFallbackBuilder_ == null) {
          updateParticleFallback_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.getDefaultInstance();
        } else {
          updateParticleFallbackBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000200);
        if (updateParticleOffsetBuilder_ == null) {
          updateParticleOffset_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.getDefaultInstance();
        } else {
          updateParticleOffsetBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000400);
        if (updateParticleEntBuilder_ == null) {
          updateParticleEnt_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.getDefaultInstance();
        } else {
          updateParticleEntBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000800);
        if (updateParticleShouldDrawBuilder_ == null) {
          updateParticleShouldDraw_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.getDefaultInstance();
        } else {
          updateParticleShouldDrawBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00001000);
        if (updateParticleSetFrozenBuilder_ == null) {
          updateParticleSetFrozen_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.getDefaultInstance();
        } else {
          updateParticleSetFrozenBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00002000);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ParticleManager_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.index_ = index_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (releaseParticleIndexBuilder_ == null) {
          result.releaseParticleIndex_ = releaseParticleIndex_;
        } else {
          result.releaseParticleIndex_ = releaseParticleIndexBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        if (createParticleBuilder_ == null) {
          result.createParticle_ = createParticle_;
        } else {
          result.createParticle_ = createParticleBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        if (destroyParticleBuilder_ == null) {
          result.destroyParticle_ = destroyParticle_;
        } else {
          result.destroyParticle_ = destroyParticleBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        if (destroyParticleInvolvingBuilder_ == null) {
          result.destroyParticleInvolving_ = destroyParticleInvolving_;
        } else {
          result.destroyParticleInvolving_ = destroyParticleInvolvingBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        if (updateParticleBuilder_ == null) {
          result.updateParticle_ = updateParticle_;
        } else {
          result.updateParticle_ = updateParticleBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        if (updateParticleFwdBuilder_ == null) {
          result.updateParticleFwd_ = updateParticleFwd_;
        } else {
          result.updateParticleFwd_ = updateParticleFwdBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        if (updateParticleOrientBuilder_ == null) {
          result.updateParticleOrient_ = updateParticleOrient_;
        } else {
          result.updateParticleOrient_ = updateParticleOrientBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000200;
        }
        if (updateParticleFallbackBuilder_ == null) {
          result.updateParticleFallback_ = updateParticleFallback_;
        } else {
          result.updateParticleFallback_ = updateParticleFallbackBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000400;
        }
        if (updateParticleOffsetBuilder_ == null) {
          result.updateParticleOffset_ = updateParticleOffset_;
        } else {
          result.updateParticleOffset_ = updateParticleOffsetBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000800;
        }
        if (updateParticleEntBuilder_ == null) {
          result.updateParticleEnt_ = updateParticleEnt_;
        } else {
          result.updateParticleEnt_ = updateParticleEntBuilder_.build();
        }
        if (((from_bitField0_ & 0x00001000) == 0x00001000)) {
          to_bitField0_ |= 0x00001000;
        }
        if (updateParticleShouldDrawBuilder_ == null) {
          result.updateParticleShouldDraw_ = updateParticleShouldDraw_;
        } else {
          result.updateParticleShouldDraw_ = updateParticleShouldDrawBuilder_.build();
        }
        if (((from_bitField0_ & 0x00002000) == 0x00002000)) {
          to_bitField0_ |= 0x00002000;
        }
        if (updateParticleSetFrozenBuilder_ == null) {
          result.updateParticleSetFrozen_ = updateParticleSetFrozen_;
        } else {
          result.updateParticleSetFrozen_ = updateParticleSetFrozenBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.getDefaultInstance()) return this;
        if (other.hasType()) {
          setType(other.getType());
        }
        if (other.hasIndex()) {
          setIndex(other.getIndex());
        }
        if (other.hasReleaseParticleIndex()) {
          mergeReleaseParticleIndex(other.getReleaseParticleIndex());
        }
        if (other.hasCreateParticle()) {
          mergeCreateParticle(other.getCreateParticle());
        }
        if (other.hasDestroyParticle()) {
          mergeDestroyParticle(other.getDestroyParticle());
        }
        if (other.hasDestroyParticleInvolving()) {
          mergeDestroyParticleInvolving(other.getDestroyParticleInvolving());
        }
        if (other.hasUpdateParticle()) {
          mergeUpdateParticle(other.getUpdateParticle());
        }
        if (other.hasUpdateParticleFwd()) {
          mergeUpdateParticleFwd(other.getUpdateParticleFwd());
        }
        if (other.hasUpdateParticleOrient()) {
          mergeUpdateParticleOrient(other.getUpdateParticleOrient());
        }
        if (other.hasUpdateParticleFallback()) {
          mergeUpdateParticleFallback(other.getUpdateParticleFallback());
        }
        if (other.hasUpdateParticleOffset()) {
          mergeUpdateParticleOffset(other.getUpdateParticleOffset());
        }
        if (other.hasUpdateParticleEnt()) {
          mergeUpdateParticleEnt(other.getUpdateParticleEnt());
        }
        if (other.hasUpdateParticleShouldDraw()) {
          mergeUpdateParticleShouldDraw(other.getUpdateParticleShouldDraw());
        }
        if (other.hasUpdateParticleSetFrozen()) {
          mergeUpdateParticleSetFrozen(other.getUpdateParticleSetFrozen());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasType()) {
          
          return false;
        }
        if (!hasIndex()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required .DOTA_PARTICLE_MESSAGE type = 1 [default = DOTA_PARTICLE_MANAGER_EVENT_CREATE];
      private com.dota2.proto.DotaUsermessages.DOTA_PARTICLE_MESSAGE type_ = com.dota2.proto.DotaUsermessages.DOTA_PARTICLE_MESSAGE.DOTA_PARTICLE_MANAGER_EVENT_CREATE;
      /**
       * required .DOTA_PARTICLE_MESSAGE type = 1 [default = DOTA_PARTICLE_MANAGER_EVENT_CREATE];
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required .DOTA_PARTICLE_MESSAGE type = 1 [default = DOTA_PARTICLE_MANAGER_EVENT_CREATE];
       */
      public com.dota2.proto.DotaUsermessages.DOTA_PARTICLE_MESSAGE getType() {
        return type_;
      }
      /**
       * required .DOTA_PARTICLE_MESSAGE type = 1 [default = DOTA_PARTICLE_MANAGER_EVENT_CREATE];
       */
      public Builder setType(com.dota2.proto.DotaUsermessages.DOTA_PARTICLE_MESSAGE value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * required .DOTA_PARTICLE_MESSAGE type = 1 [default = DOTA_PARTICLE_MANAGER_EVENT_CREATE];
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = com.dota2.proto.DotaUsermessages.DOTA_PARTICLE_MESSAGE.DOTA_PARTICLE_MANAGER_EVENT_CREATE;
        onChanged();
        return this;
      }

      // required uint32 index = 2;
      private int index_ ;
      /**
       * required uint32 index = 2;
       */
      public boolean hasIndex() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required uint32 index = 2;
       */
      public int getIndex() {
        return index_;
      }
      /**
       * required uint32 index = 2;
       */
      public Builder setIndex(int value) {
        bitField0_ |= 0x00000002;
        index_ = value;
        onChanged();
        return this;
      }
      /**
       * required uint32 index = 2;
       */
      public Builder clearIndex() {
        bitField0_ = (bitField0_ & ~0x00000002);
        index_ = 0;
        onChanged();
        return this;
      }

      // optional .CDOTAUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3;
      private com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex releaseParticleIndex_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndexOrBuilder> releaseParticleIndexBuilder_;
      /**
       * optional .CDOTAUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3;
       */
      public boolean hasReleaseParticleIndex() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex getReleaseParticleIndex() {
        if (releaseParticleIndexBuilder_ == null) {
          return releaseParticleIndex_;
        } else {
          return releaseParticleIndexBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3;
       */
      public Builder setReleaseParticleIndex(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex value) {
        if (releaseParticleIndexBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          releaseParticleIndex_ = value;
          onChanged();
        } else {
          releaseParticleIndexBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3;
       */
      public Builder setReleaseParticleIndex(
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.Builder builderForValue) {
        if (releaseParticleIndexBuilder_ == null) {
          releaseParticleIndex_ = builderForValue.build();
          onChanged();
        } else {
          releaseParticleIndexBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3;
       */
      public Builder mergeReleaseParticleIndex(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex value) {
        if (releaseParticleIndexBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004) &&
              releaseParticleIndex_ != com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.getDefaultInstance()) {
            releaseParticleIndex_ =
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.newBuilder(releaseParticleIndex_).mergeFrom(value).buildPartial();
          } else {
            releaseParticleIndex_ = value;
          }
          onChanged();
        } else {
          releaseParticleIndexBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3;
       */
      public Builder clearReleaseParticleIndex() {
        if (releaseParticleIndexBuilder_ == null) {
          releaseParticleIndex_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.getDefaultInstance();
          onChanged();
        } else {
          releaseParticleIndexBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.Builder getReleaseParticleIndexBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getReleaseParticleIndexFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndexOrBuilder getReleaseParticleIndexOrBuilder() {
        if (releaseParticleIndexBuilder_ != null) {
          return releaseParticleIndexBuilder_.getMessageOrBuilder();
        } else {
          return releaseParticleIndex_;
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.ReleaseParticleIndex release_particle_index = 3;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndexOrBuilder> 
          getReleaseParticleIndexFieldBuilder() {
        if (releaseParticleIndexBuilder_ == null) {
          releaseParticleIndexBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndex.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.ReleaseParticleIndexOrBuilder>(
                  releaseParticleIndex_,
                  getParentForChildren(),
                  isClean());
          releaseParticleIndex_ = null;
        }
        return releaseParticleIndexBuilder_;
      }

      // optional .CDOTAUserMsg_ParticleManager.CreateParticle create_particle = 4;
      private com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle createParticle_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticleOrBuilder> createParticleBuilder_;
      /**
       * optional .CDOTAUserMsg_ParticleManager.CreateParticle create_particle = 4;
       */
      public boolean hasCreateParticle() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.CreateParticle create_particle = 4;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle getCreateParticle() {
        if (createParticleBuilder_ == null) {
          return createParticle_;
        } else {
          return createParticleBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.CreateParticle create_particle = 4;
       */
      public Builder setCreateParticle(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle value) {
        if (createParticleBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          createParticle_ = value;
          onChanged();
        } else {
          createParticleBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.CreateParticle create_particle = 4;
       */
      public Builder setCreateParticle(
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle.Builder builderForValue) {
        if (createParticleBuilder_ == null) {
          createParticle_ = builderForValue.build();
          onChanged();
        } else {
          createParticleBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.CreateParticle create_particle = 4;
       */
      public Builder mergeCreateParticle(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle value) {
        if (createParticleBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008) &&
              createParticle_ != com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle.getDefaultInstance()) {
            createParticle_ =
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle.newBuilder(createParticle_).mergeFrom(value).buildPartial();
          } else {
            createParticle_ = value;
          }
          onChanged();
        } else {
          createParticleBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.CreateParticle create_particle = 4;
       */
      public Builder clearCreateParticle() {
        if (createParticleBuilder_ == null) {
          createParticle_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle.getDefaultInstance();
          onChanged();
        } else {
          createParticleBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.CreateParticle create_particle = 4;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle.Builder getCreateParticleBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getCreateParticleFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.CreateParticle create_particle = 4;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticleOrBuilder getCreateParticleOrBuilder() {
        if (createParticleBuilder_ != null) {
          return createParticleBuilder_.getMessageOrBuilder();
        } else {
          return createParticle_;
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.CreateParticle create_particle = 4;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticleOrBuilder> 
          getCreateParticleFieldBuilder() {
        if (createParticleBuilder_ == null) {
          createParticleBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticle.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.CreateParticleOrBuilder>(
                  createParticle_,
                  getParentForChildren(),
                  isClean());
          createParticle_ = null;
        }
        return createParticleBuilder_;
      }

      // optional .CDOTAUserMsg_ParticleManager.DestroyParticle destroy_particle = 5;
      private com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle destroyParticle_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleOrBuilder> destroyParticleBuilder_;
      /**
       * optional .CDOTAUserMsg_ParticleManager.DestroyParticle destroy_particle = 5;
       */
      public boolean hasDestroyParticle() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.DestroyParticle destroy_particle = 5;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle getDestroyParticle() {
        if (destroyParticleBuilder_ == null) {
          return destroyParticle_;
        } else {
          return destroyParticleBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.DestroyParticle destroy_particle = 5;
       */
      public Builder setDestroyParticle(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle value) {
        if (destroyParticleBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          destroyParticle_ = value;
          onChanged();
        } else {
          destroyParticleBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.DestroyParticle destroy_particle = 5;
       */
      public Builder setDestroyParticle(
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle.Builder builderForValue) {
        if (destroyParticleBuilder_ == null) {
          destroyParticle_ = builderForValue.build();
          onChanged();
        } else {
          destroyParticleBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.DestroyParticle destroy_particle = 5;
       */
      public Builder mergeDestroyParticle(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle value) {
        if (destroyParticleBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010) &&
              destroyParticle_ != com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle.getDefaultInstance()) {
            destroyParticle_ =
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle.newBuilder(destroyParticle_).mergeFrom(value).buildPartial();
          } else {
            destroyParticle_ = value;
          }
          onChanged();
        } else {
          destroyParticleBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.DestroyParticle destroy_particle = 5;
       */
      public Builder clearDestroyParticle() {
        if (destroyParticleBuilder_ == null) {
          destroyParticle_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle.getDefaultInstance();
          onChanged();
        } else {
          destroyParticleBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.DestroyParticle destroy_particle = 5;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle.Builder getDestroyParticleBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getDestroyParticleFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.DestroyParticle destroy_particle = 5;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleOrBuilder getDestroyParticleOrBuilder() {
        if (destroyParticleBuilder_ != null) {
          return destroyParticleBuilder_.getMessageOrBuilder();
        } else {
          return destroyParticle_;
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.DestroyParticle destroy_particle = 5;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleOrBuilder> 
          getDestroyParticleFieldBuilder() {
        if (destroyParticleBuilder_ == null) {
          destroyParticleBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticle.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleOrBuilder>(
                  destroyParticle_,
                  getParentForChildren(),
                  isClean());
          destroyParticle_ = null;
        }
        return destroyParticleBuilder_;
      }

      // optional .CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6;
      private com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroyParticleInvolving_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolvingOrBuilder> destroyParticleInvolvingBuilder_;
      /**
       * optional .CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6;
       */
      public boolean hasDestroyParticleInvolving() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving getDestroyParticleInvolving() {
        if (destroyParticleInvolvingBuilder_ == null) {
          return destroyParticleInvolving_;
        } else {
          return destroyParticleInvolvingBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6;
       */
      public Builder setDestroyParticleInvolving(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving value) {
        if (destroyParticleInvolvingBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          destroyParticleInvolving_ = value;
          onChanged();
        } else {
          destroyParticleInvolvingBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6;
       */
      public Builder setDestroyParticleInvolving(
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.Builder builderForValue) {
        if (destroyParticleInvolvingBuilder_ == null) {
          destroyParticleInvolving_ = builderForValue.build();
          onChanged();
        } else {
          destroyParticleInvolvingBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6;
       */
      public Builder mergeDestroyParticleInvolving(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving value) {
        if (destroyParticleInvolvingBuilder_ == null) {
          if (((bitField0_ & 0x00000020) == 0x00000020) &&
              destroyParticleInvolving_ != com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.getDefaultInstance()) {
            destroyParticleInvolving_ =
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.newBuilder(destroyParticleInvolving_).mergeFrom(value).buildPartial();
          } else {
            destroyParticleInvolving_ = value;
          }
          onChanged();
        } else {
          destroyParticleInvolvingBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6;
       */
      public Builder clearDestroyParticleInvolving() {
        if (destroyParticleInvolvingBuilder_ == null) {
          destroyParticleInvolving_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.getDefaultInstance();
          onChanged();
        } else {
          destroyParticleInvolvingBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.Builder getDestroyParticleInvolvingBuilder() {
        bitField0_ |= 0x00000020;
        onChanged();
        return getDestroyParticleInvolvingFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolvingOrBuilder getDestroyParticleInvolvingOrBuilder() {
        if (destroyParticleInvolvingBuilder_ != null) {
          return destroyParticleInvolvingBuilder_.getMessageOrBuilder();
        } else {
          return destroyParticleInvolving_;
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.DestroyParticleInvolving destroy_particle_involving = 6;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolvingOrBuilder> 
          getDestroyParticleInvolvingFieldBuilder() {
        if (destroyParticleInvolvingBuilder_ == null) {
          destroyParticleInvolvingBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolving.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.DestroyParticleInvolvingOrBuilder>(
                  destroyParticleInvolving_,
                  getParentForChildren(),
                  isClean());
          destroyParticleInvolving_ = null;
        }
        return destroyParticleInvolvingBuilder_;
      }

      // optional .CDOTAUserMsg_ParticleManager.UpdateParticle update_particle = 7;
      private com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle updateParticle_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrBuilder> updateParticleBuilder_;
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticle update_particle = 7;
       */
      public boolean hasUpdateParticle() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticle update_particle = 7;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle getUpdateParticle() {
        if (updateParticleBuilder_ == null) {
          return updateParticle_;
        } else {
          return updateParticleBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticle update_particle = 7;
       */
      public Builder setUpdateParticle(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle value) {
        if (updateParticleBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          updateParticle_ = value;
          onChanged();
        } else {
          updateParticleBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticle update_particle = 7;
       */
      public Builder setUpdateParticle(
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle.Builder builderForValue) {
        if (updateParticleBuilder_ == null) {
          updateParticle_ = builderForValue.build();
          onChanged();
        } else {
          updateParticleBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticle update_particle = 7;
       */
      public Builder mergeUpdateParticle(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle value) {
        if (updateParticleBuilder_ == null) {
          if (((bitField0_ & 0x00000040) == 0x00000040) &&
              updateParticle_ != com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle.getDefaultInstance()) {
            updateParticle_ =
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle.newBuilder(updateParticle_).mergeFrom(value).buildPartial();
          } else {
            updateParticle_ = value;
          }
          onChanged();
        } else {
          updateParticleBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticle update_particle = 7;
       */
      public Builder clearUpdateParticle() {
        if (updateParticleBuilder_ == null) {
          updateParticle_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle.getDefaultInstance();
          onChanged();
        } else {
          updateParticleBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticle update_particle = 7;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle.Builder getUpdateParticleBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return getUpdateParticleFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticle update_particle = 7;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrBuilder getUpdateParticleOrBuilder() {
        if (updateParticleBuilder_ != null) {
          return updateParticleBuilder_.getMessageOrBuilder();
        } else {
          return updateParticle_;
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticle update_particle = 7;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrBuilder> 
          getUpdateParticleFieldBuilder() {
        if (updateParticleBuilder_ == null) {
          updateParticleBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticle.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrBuilder>(
                  updateParticle_,
                  getParentForChildren(),
                  isClean());
          updateParticle_ = null;
        }
        return updateParticleBuilder_;
      }

      // optional .CDOTAUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8;
      private com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd updateParticleFwd_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwdOrBuilder> updateParticleFwdBuilder_;
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8;
       */
      public boolean hasUpdateParticleFwd() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd getUpdateParticleFwd() {
        if (updateParticleFwdBuilder_ == null) {
          return updateParticleFwd_;
        } else {
          return updateParticleFwdBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8;
       */
      public Builder setUpdateParticleFwd(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd value) {
        if (updateParticleFwdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          updateParticleFwd_ = value;
          onChanged();
        } else {
          updateParticleFwdBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8;
       */
      public Builder setUpdateParticleFwd(
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.Builder builderForValue) {
        if (updateParticleFwdBuilder_ == null) {
          updateParticleFwd_ = builderForValue.build();
          onChanged();
        } else {
          updateParticleFwdBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8;
       */
      public Builder mergeUpdateParticleFwd(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd value) {
        if (updateParticleFwdBuilder_ == null) {
          if (((bitField0_ & 0x00000080) == 0x00000080) &&
              updateParticleFwd_ != com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.getDefaultInstance()) {
            updateParticleFwd_ =
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.newBuilder(updateParticleFwd_).mergeFrom(value).buildPartial();
          } else {
            updateParticleFwd_ = value;
          }
          onChanged();
        } else {
          updateParticleFwdBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8;
       */
      public Builder clearUpdateParticleFwd() {
        if (updateParticleFwdBuilder_ == null) {
          updateParticleFwd_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.getDefaultInstance();
          onChanged();
        } else {
          updateParticleFwdBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.Builder getUpdateParticleFwdBuilder() {
        bitField0_ |= 0x00000080;
        onChanged();
        return getUpdateParticleFwdFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwdOrBuilder getUpdateParticleFwdOrBuilder() {
        if (updateParticleFwdBuilder_ != null) {
          return updateParticleFwdBuilder_.getMessageOrBuilder();
        } else {
          return updateParticleFwd_;
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFwd update_particle_fwd = 8;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwdOrBuilder> 
          getUpdateParticleFwdFieldBuilder() {
        if (updateParticleFwdBuilder_ == null) {
          updateParticleFwdBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwd.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFwdOrBuilder>(
                  updateParticleFwd_,
                  getParentForChildren(),
                  isClean());
          updateParticleFwd_ = null;
        }
        return updateParticleFwdBuilder_;
      }

      // optional .CDOTAUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9;
      private com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient updateParticleOrient_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrientOrBuilder> updateParticleOrientBuilder_;
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9;
       */
      public boolean hasUpdateParticleOrient() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient getUpdateParticleOrient() {
        if (updateParticleOrientBuilder_ == null) {
          return updateParticleOrient_;
        } else {
          return updateParticleOrientBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9;
       */
      public Builder setUpdateParticleOrient(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient value) {
        if (updateParticleOrientBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          updateParticleOrient_ = value;
          onChanged();
        } else {
          updateParticleOrientBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9;
       */
      public Builder setUpdateParticleOrient(
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.Builder builderForValue) {
        if (updateParticleOrientBuilder_ == null) {
          updateParticleOrient_ = builderForValue.build();
          onChanged();
        } else {
          updateParticleOrientBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9;
       */
      public Builder mergeUpdateParticleOrient(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient value) {
        if (updateParticleOrientBuilder_ == null) {
          if (((bitField0_ & 0x00000100) == 0x00000100) &&
              updateParticleOrient_ != com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.getDefaultInstance()) {
            updateParticleOrient_ =
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.newBuilder(updateParticleOrient_).mergeFrom(value).buildPartial();
          } else {
            updateParticleOrient_ = value;
          }
          onChanged();
        } else {
          updateParticleOrientBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9;
       */
      public Builder clearUpdateParticleOrient() {
        if (updateParticleOrientBuilder_ == null) {
          updateParticleOrient_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.getDefaultInstance();
          onChanged();
        } else {
          updateParticleOrientBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.Builder getUpdateParticleOrientBuilder() {
        bitField0_ |= 0x00000100;
        onChanged();
        return getUpdateParticleOrientFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrientOrBuilder getUpdateParticleOrientOrBuilder() {
        if (updateParticleOrientBuilder_ != null) {
          return updateParticleOrientBuilder_.getMessageOrBuilder();
        } else {
          return updateParticleOrient_;
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOrient update_particle_orient = 9;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrientOrBuilder> 
          getUpdateParticleOrientFieldBuilder() {
        if (updateParticleOrientBuilder_ == null) {
          updateParticleOrientBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrient.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOrientOrBuilder>(
                  updateParticleOrient_,
                  getParentForChildren(),
                  isClean());
          updateParticleOrient_ = null;
        }
        return updateParticleOrientBuilder_;
      }

      // optional .CDOTAUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10;
      private com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback updateParticleFallback_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallbackOrBuilder> updateParticleFallbackBuilder_;
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10;
       */
      public boolean hasUpdateParticleFallback() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback getUpdateParticleFallback() {
        if (updateParticleFallbackBuilder_ == null) {
          return updateParticleFallback_;
        } else {
          return updateParticleFallbackBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10;
       */
      public Builder setUpdateParticleFallback(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback value) {
        if (updateParticleFallbackBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          updateParticleFallback_ = value;
          onChanged();
        } else {
          updateParticleFallbackBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000200;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10;
       */
      public Builder setUpdateParticleFallback(
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.Builder builderForValue) {
        if (updateParticleFallbackBuilder_ == null) {
          updateParticleFallback_ = builderForValue.build();
          onChanged();
        } else {
          updateParticleFallbackBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000200;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10;
       */
      public Builder mergeUpdateParticleFallback(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback value) {
        if (updateParticleFallbackBuilder_ == null) {
          if (((bitField0_ & 0x00000200) == 0x00000200) &&
              updateParticleFallback_ != com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.getDefaultInstance()) {
            updateParticleFallback_ =
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.newBuilder(updateParticleFallback_).mergeFrom(value).buildPartial();
          } else {
            updateParticleFallback_ = value;
          }
          onChanged();
        } else {
          updateParticleFallbackBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000200;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10;
       */
      public Builder clearUpdateParticleFallback() {
        if (updateParticleFallbackBuilder_ == null) {
          updateParticleFallback_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.getDefaultInstance();
          onChanged();
        } else {
          updateParticleFallbackBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000200);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.Builder getUpdateParticleFallbackBuilder() {
        bitField0_ |= 0x00000200;
        onChanged();
        return getUpdateParticleFallbackFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallbackOrBuilder getUpdateParticleFallbackOrBuilder() {
        if (updateParticleFallbackBuilder_ != null) {
          return updateParticleFallbackBuilder_.getMessageOrBuilder();
        } else {
          return updateParticleFallback_;
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleFallback update_particle_fallback = 10;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallbackOrBuilder> 
          getUpdateParticleFallbackFieldBuilder() {
        if (updateParticleFallbackBuilder_ == null) {
          updateParticleFallbackBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallback.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleFallbackOrBuilder>(
                  updateParticleFallback_,
                  getParentForChildren(),
                  isClean());
          updateParticleFallback_ = null;
        }
        return updateParticleFallbackBuilder_;
      }

      // optional .CDOTAUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11;
      private com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset updateParticleOffset_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffsetOrBuilder> updateParticleOffsetBuilder_;
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11;
       */
      public boolean hasUpdateParticleOffset() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset getUpdateParticleOffset() {
        if (updateParticleOffsetBuilder_ == null) {
          return updateParticleOffset_;
        } else {
          return updateParticleOffsetBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11;
       */
      public Builder setUpdateParticleOffset(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset value) {
        if (updateParticleOffsetBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          updateParticleOffset_ = value;
          onChanged();
        } else {
          updateParticleOffsetBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000400;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11;
       */
      public Builder setUpdateParticleOffset(
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.Builder builderForValue) {
        if (updateParticleOffsetBuilder_ == null) {
          updateParticleOffset_ = builderForValue.build();
          onChanged();
        } else {
          updateParticleOffsetBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000400;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11;
       */
      public Builder mergeUpdateParticleOffset(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset value) {
        if (updateParticleOffsetBuilder_ == null) {
          if (((bitField0_ & 0x00000400) == 0x00000400) &&
              updateParticleOffset_ != com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.getDefaultInstance()) {
            updateParticleOffset_ =
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.newBuilder(updateParticleOffset_).mergeFrom(value).buildPartial();
          } else {
            updateParticleOffset_ = value;
          }
          onChanged();
        } else {
          updateParticleOffsetBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000400;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11;
       */
      public Builder clearUpdateParticleOffset() {
        if (updateParticleOffsetBuilder_ == null) {
          updateParticleOffset_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.getDefaultInstance();
          onChanged();
        } else {
          updateParticleOffsetBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000400);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.Builder getUpdateParticleOffsetBuilder() {
        bitField0_ |= 0x00000400;
        onChanged();
        return getUpdateParticleOffsetFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffsetOrBuilder getUpdateParticleOffsetOrBuilder() {
        if (updateParticleOffsetBuilder_ != null) {
          return updateParticleOffsetBuilder_.getMessageOrBuilder();
        } else {
          return updateParticleOffset_;
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleOffset update_particle_offset = 11;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffsetOrBuilder> 
          getUpdateParticleOffsetFieldBuilder() {
        if (updateParticleOffsetBuilder_ == null) {
          updateParticleOffsetBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffset.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleOffsetOrBuilder>(
                  updateParticleOffset_,
                  getParentForChildren(),
                  isClean());
          updateParticleOffset_ = null;
        }
        return updateParticleOffsetBuilder_;
      }

      // optional .CDOTAUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12;
      private com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt updateParticleEnt_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEntOrBuilder> updateParticleEntBuilder_;
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12;
       */
      public boolean hasUpdateParticleEnt() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt getUpdateParticleEnt() {
        if (updateParticleEntBuilder_ == null) {
          return updateParticleEnt_;
        } else {
          return updateParticleEntBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12;
       */
      public Builder setUpdateParticleEnt(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt value) {
        if (updateParticleEntBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          updateParticleEnt_ = value;
          onChanged();
        } else {
          updateParticleEntBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000800;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12;
       */
      public Builder setUpdateParticleEnt(
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.Builder builderForValue) {
        if (updateParticleEntBuilder_ == null) {
          updateParticleEnt_ = builderForValue.build();
          onChanged();
        } else {
          updateParticleEntBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000800;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12;
       */
      public Builder mergeUpdateParticleEnt(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt value) {
        if (updateParticleEntBuilder_ == null) {
          if (((bitField0_ & 0x00000800) == 0x00000800) &&
              updateParticleEnt_ != com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.getDefaultInstance()) {
            updateParticleEnt_ =
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.newBuilder(updateParticleEnt_).mergeFrom(value).buildPartial();
          } else {
            updateParticleEnt_ = value;
          }
          onChanged();
        } else {
          updateParticleEntBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000800;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12;
       */
      public Builder clearUpdateParticleEnt() {
        if (updateParticleEntBuilder_ == null) {
          updateParticleEnt_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.getDefaultInstance();
          onChanged();
        } else {
          updateParticleEntBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000800);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.Builder getUpdateParticleEntBuilder() {
        bitField0_ |= 0x00000800;
        onChanged();
        return getUpdateParticleEntFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEntOrBuilder getUpdateParticleEntOrBuilder() {
        if (updateParticleEntBuilder_ != null) {
          return updateParticleEntBuilder_.getMessageOrBuilder();
        } else {
          return updateParticleEnt_;
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleEnt update_particle_ent = 12;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEntOrBuilder> 
          getUpdateParticleEntFieldBuilder() {
        if (updateParticleEntBuilder_ == null) {
          updateParticleEntBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEnt.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleEntOrBuilder>(
                  updateParticleEnt_,
                  getParentForChildren(),
                  isClean());
          updateParticleEnt_ = null;
        }
        return updateParticleEntBuilder_;
      }

      // optional .CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14;
      private com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw updateParticleShouldDraw_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDrawOrBuilder> updateParticleShouldDrawBuilder_;
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14;
       */
      public boolean hasUpdateParticleShouldDraw() {
        return ((bitField0_ & 0x00001000) == 0x00001000);
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw getUpdateParticleShouldDraw() {
        if (updateParticleShouldDrawBuilder_ == null) {
          return updateParticleShouldDraw_;
        } else {
          return updateParticleShouldDrawBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14;
       */
      public Builder setUpdateParticleShouldDraw(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw value) {
        if (updateParticleShouldDrawBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          updateParticleShouldDraw_ = value;
          onChanged();
        } else {
          updateParticleShouldDrawBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00001000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14;
       */
      public Builder setUpdateParticleShouldDraw(
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.Builder builderForValue) {
        if (updateParticleShouldDrawBuilder_ == null) {
          updateParticleShouldDraw_ = builderForValue.build();
          onChanged();
        } else {
          updateParticleShouldDrawBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00001000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14;
       */
      public Builder mergeUpdateParticleShouldDraw(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw value) {
        if (updateParticleShouldDrawBuilder_ == null) {
          if (((bitField0_ & 0x00001000) == 0x00001000) &&
              updateParticleShouldDraw_ != com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.getDefaultInstance()) {
            updateParticleShouldDraw_ =
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.newBuilder(updateParticleShouldDraw_).mergeFrom(value).buildPartial();
          } else {
            updateParticleShouldDraw_ = value;
          }
          onChanged();
        } else {
          updateParticleShouldDrawBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00001000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14;
       */
      public Builder clearUpdateParticleShouldDraw() {
        if (updateParticleShouldDrawBuilder_ == null) {
          updateParticleShouldDraw_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.getDefaultInstance();
          onChanged();
        } else {
          updateParticleShouldDrawBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00001000);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.Builder getUpdateParticleShouldDrawBuilder() {
        bitField0_ |= 0x00001000;
        onChanged();
        return getUpdateParticleShouldDrawFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDrawOrBuilder getUpdateParticleShouldDrawOrBuilder() {
        if (updateParticleShouldDrawBuilder_ != null) {
          return updateParticleShouldDrawBuilder_.getMessageOrBuilder();
        } else {
          return updateParticleShouldDraw_;
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw update_particle_should_draw = 14;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDrawOrBuilder> 
          getUpdateParticleShouldDrawFieldBuilder() {
        if (updateParticleShouldDrawBuilder_ == null) {
          updateParticleShouldDrawBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDraw.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleShouldDrawOrBuilder>(
                  updateParticleShouldDraw_,
                  getParentForChildren(),
                  isClean());
          updateParticleShouldDraw_ = null;
        }
        return updateParticleShouldDrawBuilder_;
      }

      // optional .CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15;
      private com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen updateParticleSetFrozen_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozenOrBuilder> updateParticleSetFrozenBuilder_;
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15;
       */
      public boolean hasUpdateParticleSetFrozen() {
        return ((bitField0_ & 0x00002000) == 0x00002000);
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen getUpdateParticleSetFrozen() {
        if (updateParticleSetFrozenBuilder_ == null) {
          return updateParticleSetFrozen_;
        } else {
          return updateParticleSetFrozenBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15;
       */
      public Builder setUpdateParticleSetFrozen(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen value) {
        if (updateParticleSetFrozenBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          updateParticleSetFrozen_ = value;
          onChanged();
        } else {
          updateParticleSetFrozenBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00002000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15;
       */
      public Builder setUpdateParticleSetFrozen(
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.Builder builderForValue) {
        if (updateParticleSetFrozenBuilder_ == null) {
          updateParticleSetFrozen_ = builderForValue.build();
          onChanged();
        } else {
          updateParticleSetFrozenBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00002000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15;
       */
      public Builder mergeUpdateParticleSetFrozen(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen value) {
        if (updateParticleSetFrozenBuilder_ == null) {
          if (((bitField0_ & 0x00002000) == 0x00002000) &&
              updateParticleSetFrozen_ != com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.getDefaultInstance()) {
            updateParticleSetFrozen_ =
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.newBuilder(updateParticleSetFrozen_).mergeFrom(value).buildPartial();
          } else {
            updateParticleSetFrozen_ = value;
          }
          onChanged();
        } else {
          updateParticleSetFrozenBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00002000;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15;
       */
      public Builder clearUpdateParticleSetFrozen() {
        if (updateParticleSetFrozenBuilder_ == null) {
          updateParticleSetFrozen_ = com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.getDefaultInstance();
          onChanged();
        } else {
          updateParticleSetFrozenBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00002000);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.Builder getUpdateParticleSetFrozenBuilder() {
        bitField0_ |= 0x00002000;
        onChanged();
        return getUpdateParticleSetFrozenFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozenOrBuilder getUpdateParticleSetFrozenOrBuilder() {
        if (updateParticleSetFrozenBuilder_ != null) {
          return updateParticleSetFrozenBuilder_.getMessageOrBuilder();
        } else {
          return updateParticleSetFrozen_;
        }
      }
      /**
       * optional .CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen update_particle_set_frozen = 15;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozenOrBuilder> 
          getUpdateParticleSetFrozenFieldBuilder() {
        if (updateParticleSetFrozenBuilder_ == null) {
          updateParticleSetFrozenBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozen.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ParticleManager.UpdateParticleSetFrozenOrBuilder>(
                  updateParticleSetFrozen_,
                  getParentForChildren(),
                  isClean());
          updateParticleSetFrozen_ = null;
        }
        return updateParticleSetFrozenBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ParticleManager)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ParticleManager(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ParticleManager)
  }

  public interface CDOTAUserMsg_OverheadEventOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // required .DOTA_OVERHEAD_ALERT message_type = 1 [default = OVERHEAD_ALERT_GOLD];
    /**
     * required .DOTA_OVERHEAD_ALERT message_type = 1 [default = OVERHEAD_ALERT_GOLD];
     */
    boolean hasMessageType();
    /**
     * required .DOTA_OVERHEAD_ALERT message_type = 1 [default = OVERHEAD_ALERT_GOLD];
     */
    com.dota2.proto.DotaUsermessages.DOTA_OVERHEAD_ALERT getMessageType();

    // optional int32 value = 2;
    /**
     * optional int32 value = 2;
     */
    boolean hasValue();
    /**
     * optional int32 value = 2;
     */
    int getValue();

    // optional int32 target_player_entindex = 3;
    /**
     * optional int32 target_player_entindex = 3;
     */
    boolean hasTargetPlayerEntindex();
    /**
     * optional int32 target_player_entindex = 3;
     */
    int getTargetPlayerEntindex();

    // optional int32 target_entindex = 4;
    /**
     * optional int32 target_entindex = 4;
     */
    boolean hasTargetEntindex();
    /**
     * optional int32 target_entindex = 4;
     */
    int getTargetEntindex();

    // optional int32 source_player_entindex = 5;
    /**
     * optional int32 source_player_entindex = 5;
     */
    boolean hasSourcePlayerEntindex();
    /**
     * optional int32 source_player_entindex = 5;
     */
    int getSourcePlayerEntindex();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_OverheadEvent}
   */
  public static final class CDOTAUserMsg_OverheadEvent extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_OverheadEventOrBuilder {
    // Use CDOTAUserMsg_OverheadEvent.newBuilder() to construct.
    private CDOTAUserMsg_OverheadEvent(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_OverheadEvent(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_OverheadEvent defaultInstance;
    public static CDOTAUserMsg_OverheadEvent getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_OverheadEvent getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_OverheadEvent(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              com.dota2.proto.DotaUsermessages.DOTA_OVERHEAD_ALERT value = com.dota2.proto.DotaUsermessages.DOTA_OVERHEAD_ALERT.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                messageType_ = value;
              }
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              value_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              targetPlayerEntindex_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              targetEntindex_ = input.readInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              sourcePlayerEntindex_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_OverheadEvent_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_OverheadEvent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_OverheadEvent.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_OverheadEvent.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_OverheadEvent parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_OverheadEvent(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // required .DOTA_OVERHEAD_ALERT message_type = 1 [default = OVERHEAD_ALERT_GOLD];
    public static final int MESSAGE_TYPE_FIELD_NUMBER = 1;
    private com.dota2.proto.DotaUsermessages.DOTA_OVERHEAD_ALERT messageType_;
    /**
     * required .DOTA_OVERHEAD_ALERT message_type = 1 [default = OVERHEAD_ALERT_GOLD];
     */
    public boolean hasMessageType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required .DOTA_OVERHEAD_ALERT message_type = 1 [default = OVERHEAD_ALERT_GOLD];
     */
    public com.dota2.proto.DotaUsermessages.DOTA_OVERHEAD_ALERT getMessageType() {
      return messageType_;
    }

    // optional int32 value = 2;
    public static final int VALUE_FIELD_NUMBER = 2;
    private int value_;
    /**
     * optional int32 value = 2;
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 value = 2;
     */
    public int getValue() {
      return value_;
    }

    // optional int32 target_player_entindex = 3;
    public static final int TARGET_PLAYER_ENTINDEX_FIELD_NUMBER = 3;
    private int targetPlayerEntindex_;
    /**
     * optional int32 target_player_entindex = 3;
     */
    public boolean hasTargetPlayerEntindex() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 target_player_entindex = 3;
     */
    public int getTargetPlayerEntindex() {
      return targetPlayerEntindex_;
    }

    // optional int32 target_entindex = 4;
    public static final int TARGET_ENTINDEX_FIELD_NUMBER = 4;
    private int targetEntindex_;
    /**
     * optional int32 target_entindex = 4;
     */
    public boolean hasTargetEntindex() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 target_entindex = 4;
     */
    public int getTargetEntindex() {
      return targetEntindex_;
    }

    // optional int32 source_player_entindex = 5;
    public static final int SOURCE_PLAYER_ENTINDEX_FIELD_NUMBER = 5;
    private int sourcePlayerEntindex_;
    /**
     * optional int32 source_player_entindex = 5;
     */
    public boolean hasSourcePlayerEntindex() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional int32 source_player_entindex = 5;
     */
    public int getSourcePlayerEntindex() {
      return sourcePlayerEntindex_;
    }

    private void initFields() {
      messageType_ = com.dota2.proto.DotaUsermessages.DOTA_OVERHEAD_ALERT.OVERHEAD_ALERT_GOLD;
      value_ = 0;
      targetPlayerEntindex_ = 0;
      targetEntindex_ = 0;
      sourcePlayerEntindex_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasMessageType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, messageType_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, value_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, targetPlayerEntindex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, targetEntindex_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt32(5, sourcePlayerEntindex_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, messageType_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, value_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, targetPlayerEntindex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, targetEntindex_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, sourcePlayerEntindex_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_OverheadEvent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_OverheadEvent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_OverheadEvent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_OverheadEvent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_OverheadEvent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_OverheadEvent parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_OverheadEvent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_OverheadEvent parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_OverheadEvent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_OverheadEvent parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_OverheadEvent prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_OverheadEvent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_OverheadEventOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_OverheadEvent_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_OverheadEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_OverheadEvent.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_OverheadEvent.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_OverheadEvent.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        messageType_ = com.dota2.proto.DotaUsermessages.DOTA_OVERHEAD_ALERT.OVERHEAD_ALERT_GOLD;
        bitField0_ = (bitField0_ & ~0x00000001);
        value_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        targetPlayerEntindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        targetEntindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        sourcePlayerEntindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_OverheadEvent_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_OverheadEvent getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_OverheadEvent.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_OverheadEvent build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_OverheadEvent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_OverheadEvent buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_OverheadEvent result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_OverheadEvent(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.messageType_ = messageType_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.value_ = value_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.targetPlayerEntindex_ = targetPlayerEntindex_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.targetEntindex_ = targetEntindex_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.sourcePlayerEntindex_ = sourcePlayerEntindex_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_OverheadEvent) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_OverheadEvent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_OverheadEvent other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_OverheadEvent.getDefaultInstance()) return this;
        if (other.hasMessageType()) {
          setMessageType(other.getMessageType());
        }
        if (other.hasValue()) {
          setValue(other.getValue());
        }
        if (other.hasTargetPlayerEntindex()) {
          setTargetPlayerEntindex(other.getTargetPlayerEntindex());
        }
        if (other.hasTargetEntindex()) {
          setTargetEntindex(other.getTargetEntindex());
        }
        if (other.hasSourcePlayerEntindex()) {
          setSourcePlayerEntindex(other.getSourcePlayerEntindex());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasMessageType()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_OverheadEvent parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_OverheadEvent) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required .DOTA_OVERHEAD_ALERT message_type = 1 [default = OVERHEAD_ALERT_GOLD];
      private com.dota2.proto.DotaUsermessages.DOTA_OVERHEAD_ALERT messageType_ = com.dota2.proto.DotaUsermessages.DOTA_OVERHEAD_ALERT.OVERHEAD_ALERT_GOLD;
      /**
       * required .DOTA_OVERHEAD_ALERT message_type = 1 [default = OVERHEAD_ALERT_GOLD];
       */
      public boolean hasMessageType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required .DOTA_OVERHEAD_ALERT message_type = 1 [default = OVERHEAD_ALERT_GOLD];
       */
      public com.dota2.proto.DotaUsermessages.DOTA_OVERHEAD_ALERT getMessageType() {
        return messageType_;
      }
      /**
       * required .DOTA_OVERHEAD_ALERT message_type = 1 [default = OVERHEAD_ALERT_GOLD];
       */
      public Builder setMessageType(com.dota2.proto.DotaUsermessages.DOTA_OVERHEAD_ALERT value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        messageType_ = value;
        onChanged();
        return this;
      }
      /**
       * required .DOTA_OVERHEAD_ALERT message_type = 1 [default = OVERHEAD_ALERT_GOLD];
       */
      public Builder clearMessageType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        messageType_ = com.dota2.proto.DotaUsermessages.DOTA_OVERHEAD_ALERT.OVERHEAD_ALERT_GOLD;
        onChanged();
        return this;
      }

      // optional int32 value = 2;
      private int value_ ;
      /**
       * optional int32 value = 2;
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 value = 2;
       */
      public int getValue() {
        return value_;
      }
      /**
       * optional int32 value = 2;
       */
      public Builder setValue(int value) {
        bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 value = 2;
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        value_ = 0;
        onChanged();
        return this;
      }

      // optional int32 target_player_entindex = 3;
      private int targetPlayerEntindex_ ;
      /**
       * optional int32 target_player_entindex = 3;
       */
      public boolean hasTargetPlayerEntindex() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 target_player_entindex = 3;
       */
      public int getTargetPlayerEntindex() {
        return targetPlayerEntindex_;
      }
      /**
       * optional int32 target_player_entindex = 3;
       */
      public Builder setTargetPlayerEntindex(int value) {
        bitField0_ |= 0x00000004;
        targetPlayerEntindex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 target_player_entindex = 3;
       */
      public Builder clearTargetPlayerEntindex() {
        bitField0_ = (bitField0_ & ~0x00000004);
        targetPlayerEntindex_ = 0;
        onChanged();
        return this;
      }

      // optional int32 target_entindex = 4;
      private int targetEntindex_ ;
      /**
       * optional int32 target_entindex = 4;
       */
      public boolean hasTargetEntindex() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 target_entindex = 4;
       */
      public int getTargetEntindex() {
        return targetEntindex_;
      }
      /**
       * optional int32 target_entindex = 4;
       */
      public Builder setTargetEntindex(int value) {
        bitField0_ |= 0x00000008;
        targetEntindex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 target_entindex = 4;
       */
      public Builder clearTargetEntindex() {
        bitField0_ = (bitField0_ & ~0x00000008);
        targetEntindex_ = 0;
        onChanged();
        return this;
      }

      // optional int32 source_player_entindex = 5;
      private int sourcePlayerEntindex_ ;
      /**
       * optional int32 source_player_entindex = 5;
       */
      public boolean hasSourcePlayerEntindex() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional int32 source_player_entindex = 5;
       */
      public int getSourcePlayerEntindex() {
        return sourcePlayerEntindex_;
      }
      /**
       * optional int32 source_player_entindex = 5;
       */
      public Builder setSourcePlayerEntindex(int value) {
        bitField0_ |= 0x00000010;
        sourcePlayerEntindex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 source_player_entindex = 5;
       */
      public Builder clearSourcePlayerEntindex() {
        bitField0_ = (bitField0_ & ~0x00000010);
        sourcePlayerEntindex_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_OverheadEvent)
    }

    static {
      defaultInstance = new CDOTAUserMsg_OverheadEvent(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_OverheadEvent)
  }

  public interface CDOTAUserMsg_TutorialTipInfoOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional string name = 1;
    /**
     * optional string name = 1;
     */
    boolean hasName();
    /**
     * optional string name = 1;
     */
    java.lang.String getName();
    /**
     * optional string name = 1;
     */
    com.google.protobuf.ByteString
        getNameBytes();

    // optional int32 progress = 2;
    /**
     * optional int32 progress = 2;
     */
    boolean hasProgress();
    /**
     * optional int32 progress = 2;
     */
    int getProgress();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_TutorialTipInfo}
   */
  public static final class CDOTAUserMsg_TutorialTipInfo extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_TutorialTipInfoOrBuilder {
    // Use CDOTAUserMsg_TutorialTipInfo.newBuilder() to construct.
    private CDOTAUserMsg_TutorialTipInfo(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_TutorialTipInfo(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_TutorialTipInfo defaultInstance;
    public static CDOTAUserMsg_TutorialTipInfo getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_TutorialTipInfo getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_TutorialTipInfo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              name_ = input.readBytes();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              progress_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_TutorialTipInfo_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_TutorialTipInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialTipInfo.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialTipInfo.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_TutorialTipInfo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_TutorialTipInfo(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional string name = 1;
    public static final int NAME_FIELD_NUMBER = 1;
    private java.lang.Object name_;
    /**
     * optional string name = 1;
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional string name = 1;
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     * optional string name = 1;
     */
    public com.google.protobuf.ByteString
        getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional int32 progress = 2;
    public static final int PROGRESS_FIELD_NUMBER = 2;
    private int progress_;
    /**
     * optional int32 progress = 2;
     */
    public boolean hasProgress() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 progress = 2;
     */
    public int getProgress() {
      return progress_;
    }

    private void initFields() {
      name_ = "";
      progress_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getNameBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, progress_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getNameBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, progress_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialTipInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialTipInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialTipInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialTipInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialTipInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialTipInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialTipInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialTipInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialTipInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialTipInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialTipInfo prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_TutorialTipInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialTipInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_TutorialTipInfo_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_TutorialTipInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialTipInfo.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialTipInfo.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialTipInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        progress_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_TutorialTipInfo_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialTipInfo getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialTipInfo.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialTipInfo build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialTipInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialTipInfo buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialTipInfo result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialTipInfo(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.name_ = name_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.progress_ = progress_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialTipInfo) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialTipInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialTipInfo other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialTipInfo.getDefaultInstance()) return this;
        if (other.hasName()) {
          bitField0_ |= 0x00000001;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasProgress()) {
          setProgress(other.getProgress());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialTipInfo parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialTipInfo) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional string name = 1;
      private java.lang.Object name_ = "";
      /**
       * optional string name = 1;
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional string name = 1;
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          name_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string name = 1;
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string name = 1;
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string name = 1;
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * optional string name = 1;
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }

      // optional int32 progress = 2;
      private int progress_ ;
      /**
       * optional int32 progress = 2;
       */
      public boolean hasProgress() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 progress = 2;
       */
      public int getProgress() {
        return progress_;
      }
      /**
       * optional int32 progress = 2;
       */
      public Builder setProgress(int value) {
        bitField0_ |= 0x00000002;
        progress_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 progress = 2;
       */
      public Builder clearProgress() {
        bitField0_ = (bitField0_ & ~0x00000002);
        progress_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_TutorialTipInfo)
    }

    static {
      defaultInstance = new CDOTAUserMsg_TutorialTipInfo(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_TutorialTipInfo)
  }

  public interface CDOTAUserMsg_TutorialFinishOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional string heading = 1;
    /**
     * optional string heading = 1;
     */
    boolean hasHeading();
    /**
     * optional string heading = 1;
     */
    java.lang.String getHeading();
    /**
     * optional string heading = 1;
     */
    com.google.protobuf.ByteString
        getHeadingBytes();

    // optional string emblem = 2;
    /**
     * optional string emblem = 2;
     */
    boolean hasEmblem();
    /**
     * optional string emblem = 2;
     */
    java.lang.String getEmblem();
    /**
     * optional string emblem = 2;
     */
    com.google.protobuf.ByteString
        getEmblemBytes();

    // optional string body = 3;
    /**
     * optional string body = 3;
     */
    boolean hasBody();
    /**
     * optional string body = 3;
     */
    java.lang.String getBody();
    /**
     * optional string body = 3;
     */
    com.google.protobuf.ByteString
        getBodyBytes();

    // optional bool success = 4;
    /**
     * optional bool success = 4;
     */
    boolean hasSuccess();
    /**
     * optional bool success = 4;
     */
    boolean getSuccess();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_TutorialFinish}
   */
  public static final class CDOTAUserMsg_TutorialFinish extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_TutorialFinishOrBuilder {
    // Use CDOTAUserMsg_TutorialFinish.newBuilder() to construct.
    private CDOTAUserMsg_TutorialFinish(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_TutorialFinish(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_TutorialFinish defaultInstance;
    public static CDOTAUserMsg_TutorialFinish getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_TutorialFinish getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_TutorialFinish(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              heading_ = input.readBytes();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              emblem_ = input.readBytes();
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              body_ = input.readBytes();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              success_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_TutorialFinish_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_TutorialFinish_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFinish.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFinish.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_TutorialFinish parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_TutorialFinish(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional string heading = 1;
    public static final int HEADING_FIELD_NUMBER = 1;
    private java.lang.Object heading_;
    /**
     * optional string heading = 1;
     */
    public boolean hasHeading() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional string heading = 1;
     */
    public java.lang.String getHeading() {
      java.lang.Object ref = heading_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          heading_ = s;
        }
        return s;
      }
    }
    /**
     * optional string heading = 1;
     */
    public com.google.protobuf.ByteString
        getHeadingBytes() {
      java.lang.Object ref = heading_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        heading_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional string emblem = 2;
    public static final int EMBLEM_FIELD_NUMBER = 2;
    private java.lang.Object emblem_;
    /**
     * optional string emblem = 2;
     */
    public boolean hasEmblem() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional string emblem = 2;
     */
    public java.lang.String getEmblem() {
      java.lang.Object ref = emblem_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          emblem_ = s;
        }
        return s;
      }
    }
    /**
     * optional string emblem = 2;
     */
    public com.google.protobuf.ByteString
        getEmblemBytes() {
      java.lang.Object ref = emblem_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        emblem_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional string body = 3;
    public static final int BODY_FIELD_NUMBER = 3;
    private java.lang.Object body_;
    /**
     * optional string body = 3;
     */
    public boolean hasBody() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional string body = 3;
     */
    public java.lang.String getBody() {
      java.lang.Object ref = body_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          body_ = s;
        }
        return s;
      }
    }
    /**
     * optional string body = 3;
     */
    public com.google.protobuf.ByteString
        getBodyBytes() {
      java.lang.Object ref = body_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        body_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional bool success = 4;
    public static final int SUCCESS_FIELD_NUMBER = 4;
    private boolean success_;
    /**
     * optional bool success = 4;
     */
    public boolean hasSuccess() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional bool success = 4;
     */
    public boolean getSuccess() {
      return success_;
    }

    private void initFields() {
      heading_ = "";
      emblem_ = "";
      body_ = "";
      success_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getHeadingBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getEmblemBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getBodyBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBool(4, success_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getHeadingBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getEmblemBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getBodyBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, success_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFinish parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFinish parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFinish parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFinish parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFinish parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFinish parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFinish parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFinish parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFinish parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFinish parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFinish prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_TutorialFinish}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFinishOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_TutorialFinish_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_TutorialFinish_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFinish.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFinish.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFinish.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        heading_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        emblem_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        body_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        success_ = false;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_TutorialFinish_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFinish getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFinish.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFinish build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFinish result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFinish buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFinish result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFinish(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.heading_ = heading_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.emblem_ = emblem_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.body_ = body_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.success_ = success_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFinish) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFinish)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFinish other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFinish.getDefaultInstance()) return this;
        if (other.hasHeading()) {
          bitField0_ |= 0x00000001;
          heading_ = other.heading_;
          onChanged();
        }
        if (other.hasEmblem()) {
          bitField0_ |= 0x00000002;
          emblem_ = other.emblem_;
          onChanged();
        }
        if (other.hasBody()) {
          bitField0_ |= 0x00000004;
          body_ = other.body_;
          onChanged();
        }
        if (other.hasSuccess()) {
          setSuccess(other.getSuccess());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFinish parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFinish) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional string heading = 1;
      private java.lang.Object heading_ = "";
      /**
       * optional string heading = 1;
       */
      public boolean hasHeading() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional string heading = 1;
       */
      public java.lang.String getHeading() {
        java.lang.Object ref = heading_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          heading_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string heading = 1;
       */
      public com.google.protobuf.ByteString
          getHeadingBytes() {
        java.lang.Object ref = heading_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          heading_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string heading = 1;
       */
      public Builder setHeading(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        heading_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string heading = 1;
       */
      public Builder clearHeading() {
        bitField0_ = (bitField0_ & ~0x00000001);
        heading_ = getDefaultInstance().getHeading();
        onChanged();
        return this;
      }
      /**
       * optional string heading = 1;
       */
      public Builder setHeadingBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        heading_ = value;
        onChanged();
        return this;
      }

      // optional string emblem = 2;
      private java.lang.Object emblem_ = "";
      /**
       * optional string emblem = 2;
       */
      public boolean hasEmblem() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional string emblem = 2;
       */
      public java.lang.String getEmblem() {
        java.lang.Object ref = emblem_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          emblem_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string emblem = 2;
       */
      public com.google.protobuf.ByteString
          getEmblemBytes() {
        java.lang.Object ref = emblem_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          emblem_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string emblem = 2;
       */
      public Builder setEmblem(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        emblem_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string emblem = 2;
       */
      public Builder clearEmblem() {
        bitField0_ = (bitField0_ & ~0x00000002);
        emblem_ = getDefaultInstance().getEmblem();
        onChanged();
        return this;
      }
      /**
       * optional string emblem = 2;
       */
      public Builder setEmblemBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        emblem_ = value;
        onChanged();
        return this;
      }

      // optional string body = 3;
      private java.lang.Object body_ = "";
      /**
       * optional string body = 3;
       */
      public boolean hasBody() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional string body = 3;
       */
      public java.lang.String getBody() {
        java.lang.Object ref = body_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          body_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string body = 3;
       */
      public com.google.protobuf.ByteString
          getBodyBytes() {
        java.lang.Object ref = body_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          body_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string body = 3;
       */
      public Builder setBody(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        body_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string body = 3;
       */
      public Builder clearBody() {
        bitField0_ = (bitField0_ & ~0x00000004);
        body_ = getDefaultInstance().getBody();
        onChanged();
        return this;
      }
      /**
       * optional string body = 3;
       */
      public Builder setBodyBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        body_ = value;
        onChanged();
        return this;
      }

      // optional bool success = 4;
      private boolean success_ ;
      /**
       * optional bool success = 4;
       */
      public boolean hasSuccess() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional bool success = 4;
       */
      public boolean getSuccess() {
        return success_;
      }
      /**
       * optional bool success = 4;
       */
      public Builder setSuccess(boolean value) {
        bitField0_ |= 0x00000008;
        success_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool success = 4;
       */
      public Builder clearSuccess() {
        bitField0_ = (bitField0_ & ~0x00000008);
        success_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_TutorialFinish)
    }

    static {
      defaultInstance = new CDOTAUserMsg_TutorialFinish(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_TutorialFinish)
  }

  public interface CDOTAUserMsg_TutorialMinimapPositionOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_TutorialMinimapPosition}
   */
  public static final class CDOTAUserMsg_TutorialMinimapPosition extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_TutorialMinimapPositionOrBuilder {
    // Use CDOTAUserMsg_TutorialMinimapPosition.newBuilder() to construct.
    private CDOTAUserMsg_TutorialMinimapPosition(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_TutorialMinimapPosition(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_TutorialMinimapPosition defaultInstance;
    public static CDOTAUserMsg_TutorialMinimapPosition getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_TutorialMinimapPosition getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_TutorialMinimapPosition(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_TutorialMinimapPosition_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_TutorialMinimapPosition_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialMinimapPosition.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialMinimapPosition.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_TutorialMinimapPosition parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_TutorialMinimapPosition(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private void initFields() {
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialMinimapPosition parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialMinimapPosition parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialMinimapPosition parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialMinimapPosition parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialMinimapPosition parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialMinimapPosition parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialMinimapPosition parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialMinimapPosition parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialMinimapPosition parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialMinimapPosition parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialMinimapPosition prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_TutorialMinimapPosition}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialMinimapPositionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_TutorialMinimapPosition_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_TutorialMinimapPosition_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialMinimapPosition.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialMinimapPosition.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialMinimapPosition.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_TutorialMinimapPosition_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialMinimapPosition getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialMinimapPosition.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialMinimapPosition build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialMinimapPosition result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialMinimapPosition buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialMinimapPosition result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialMinimapPosition(this);
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialMinimapPosition) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialMinimapPosition)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialMinimapPosition other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialMinimapPosition.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialMinimapPosition parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialMinimapPosition) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_TutorialMinimapPosition)
    }

    static {
      defaultInstance = new CDOTAUserMsg_TutorialMinimapPosition(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_TutorialMinimapPosition)
  }

  public interface CDOTAUserMsg_SendGenericToolTipOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional string title = 1;
    /**
     * optional string title = 1;
     */
    boolean hasTitle();
    /**
     * optional string title = 1;
     */
    java.lang.String getTitle();
    /**
     * optional string title = 1;
     */
    com.google.protobuf.ByteString
        getTitleBytes();

    // optional string text = 2;
    /**
     * optional string text = 2;
     */
    boolean hasText();
    /**
     * optional string text = 2;
     */
    java.lang.String getText();
    /**
     * optional string text = 2;
     */
    com.google.protobuf.ByteString
        getTextBytes();

    // optional int32 entindex = 3;
    /**
     * optional int32 entindex = 3;
     */
    boolean hasEntindex();
    /**
     * optional int32 entindex = 3;
     */
    int getEntindex();

    // optional bool close = 4;
    /**
     * optional bool close = 4;
     */
    boolean hasClose();
    /**
     * optional bool close = 4;
     */
    boolean getClose();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_SendGenericToolTip}
   */
  public static final class CDOTAUserMsg_SendGenericToolTip extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_SendGenericToolTipOrBuilder {
    // Use CDOTAUserMsg_SendGenericToolTip.newBuilder() to construct.
    private CDOTAUserMsg_SendGenericToolTip(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_SendGenericToolTip(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_SendGenericToolTip defaultInstance;
    public static CDOTAUserMsg_SendGenericToolTip getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_SendGenericToolTip getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_SendGenericToolTip(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              title_ = input.readBytes();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              text_ = input.readBytes();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              entindex_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              close_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SendGenericToolTip_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SendGenericToolTip_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendGenericToolTip.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendGenericToolTip.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_SendGenericToolTip parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_SendGenericToolTip(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional string title = 1;
    public static final int TITLE_FIELD_NUMBER = 1;
    private java.lang.Object title_;
    /**
     * optional string title = 1;
     */
    public boolean hasTitle() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional string title = 1;
     */
    public java.lang.String getTitle() {
      java.lang.Object ref = title_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          title_ = s;
        }
        return s;
      }
    }
    /**
     * optional string title = 1;
     */
    public com.google.protobuf.ByteString
        getTitleBytes() {
      java.lang.Object ref = title_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        title_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional string text = 2;
    public static final int TEXT_FIELD_NUMBER = 2;
    private java.lang.Object text_;
    /**
     * optional string text = 2;
     */
    public boolean hasText() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional string text = 2;
     */
    public java.lang.String getText() {
      java.lang.Object ref = text_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          text_ = s;
        }
        return s;
      }
    }
    /**
     * optional string text = 2;
     */
    public com.google.protobuf.ByteString
        getTextBytes() {
      java.lang.Object ref = text_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        text_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional int32 entindex = 3;
    public static final int ENTINDEX_FIELD_NUMBER = 3;
    private int entindex_;
    /**
     * optional int32 entindex = 3;
     */
    public boolean hasEntindex() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 entindex = 3;
     */
    public int getEntindex() {
      return entindex_;
    }

    // optional bool close = 4;
    public static final int CLOSE_FIELD_NUMBER = 4;
    private boolean close_;
    /**
     * optional bool close = 4;
     */
    public boolean hasClose() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional bool close = 4;
     */
    public boolean getClose() {
      return close_;
    }

    private void initFields() {
      title_ = "";
      text_ = "";
      entindex_ = 0;
      close_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getTitleBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getTextBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, entindex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBool(4, close_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getTitleBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getTextBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, entindex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, close_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendGenericToolTip parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendGenericToolTip parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendGenericToolTip parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendGenericToolTip parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendGenericToolTip parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendGenericToolTip parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendGenericToolTip parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendGenericToolTip parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendGenericToolTip parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendGenericToolTip parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendGenericToolTip prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_SendGenericToolTip}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendGenericToolTipOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SendGenericToolTip_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SendGenericToolTip_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendGenericToolTip.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendGenericToolTip.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendGenericToolTip.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        title_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        text_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        entindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        close_ = false;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SendGenericToolTip_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendGenericToolTip getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendGenericToolTip.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendGenericToolTip build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendGenericToolTip result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendGenericToolTip buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendGenericToolTip result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendGenericToolTip(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.title_ = title_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.text_ = text_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.entindex_ = entindex_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.close_ = close_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendGenericToolTip) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendGenericToolTip)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendGenericToolTip other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendGenericToolTip.getDefaultInstance()) return this;
        if (other.hasTitle()) {
          bitField0_ |= 0x00000001;
          title_ = other.title_;
          onChanged();
        }
        if (other.hasText()) {
          bitField0_ |= 0x00000002;
          text_ = other.text_;
          onChanged();
        }
        if (other.hasEntindex()) {
          setEntindex(other.getEntindex());
        }
        if (other.hasClose()) {
          setClose(other.getClose());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendGenericToolTip parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendGenericToolTip) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional string title = 1;
      private java.lang.Object title_ = "";
      /**
       * optional string title = 1;
       */
      public boolean hasTitle() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional string title = 1;
       */
      public java.lang.String getTitle() {
        java.lang.Object ref = title_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          title_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string title = 1;
       */
      public com.google.protobuf.ByteString
          getTitleBytes() {
        java.lang.Object ref = title_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          title_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string title = 1;
       */
      public Builder setTitle(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        title_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string title = 1;
       */
      public Builder clearTitle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        title_ = getDefaultInstance().getTitle();
        onChanged();
        return this;
      }
      /**
       * optional string title = 1;
       */
      public Builder setTitleBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        title_ = value;
        onChanged();
        return this;
      }

      // optional string text = 2;
      private java.lang.Object text_ = "";
      /**
       * optional string text = 2;
       */
      public boolean hasText() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional string text = 2;
       */
      public java.lang.String getText() {
        java.lang.Object ref = text_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          text_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string text = 2;
       */
      public com.google.protobuf.ByteString
          getTextBytes() {
        java.lang.Object ref = text_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          text_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string text = 2;
       */
      public Builder setText(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        text_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string text = 2;
       */
      public Builder clearText() {
        bitField0_ = (bitField0_ & ~0x00000002);
        text_ = getDefaultInstance().getText();
        onChanged();
        return this;
      }
      /**
       * optional string text = 2;
       */
      public Builder setTextBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        text_ = value;
        onChanged();
        return this;
      }

      // optional int32 entindex = 3;
      private int entindex_ ;
      /**
       * optional int32 entindex = 3;
       */
      public boolean hasEntindex() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 entindex = 3;
       */
      public int getEntindex() {
        return entindex_;
      }
      /**
       * optional int32 entindex = 3;
       */
      public Builder setEntindex(int value) {
        bitField0_ |= 0x00000004;
        entindex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 entindex = 3;
       */
      public Builder clearEntindex() {
        bitField0_ = (bitField0_ & ~0x00000004);
        entindex_ = 0;
        onChanged();
        return this;
      }

      // optional bool close = 4;
      private boolean close_ ;
      /**
       * optional bool close = 4;
       */
      public boolean hasClose() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional bool close = 4;
       */
      public boolean getClose() {
        return close_;
      }
      /**
       * optional bool close = 4;
       */
      public Builder setClose(boolean value) {
        bitField0_ |= 0x00000008;
        close_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool close = 4;
       */
      public Builder clearClose() {
        bitField0_ = (bitField0_ & ~0x00000008);
        close_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_SendGenericToolTip)
    }

    static {
      defaultInstance = new CDOTAUserMsg_SendGenericToolTip(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_SendGenericToolTip)
  }

  public interface CDOTAUserMsg_WorldLineOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional int32 player_id = 1;
    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    // optional .CDOTAMsg_WorldLine worldline = 2;
    /**
     * optional .CDOTAMsg_WorldLine worldline = 2;
     */
    boolean hasWorldline();
    /**
     * optional .CDOTAMsg_WorldLine worldline = 2;
     */
    com.dota2.proto.DotaCommonmessages.CDOTAMsg_WorldLine getWorldline();
    /**
     * optional .CDOTAMsg_WorldLine worldline = 2;
     */
    com.dota2.proto.DotaCommonmessages.CDOTAMsg_WorldLineOrBuilder getWorldlineOrBuilder();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_WorldLine}
   */
  public static final class CDOTAUserMsg_WorldLine extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_WorldLineOrBuilder {
    // Use CDOTAUserMsg_WorldLine.newBuilder() to construct.
    private CDOTAUserMsg_WorldLine(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_WorldLine(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_WorldLine defaultInstance;
    public static CDOTAUserMsg_WorldLine getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_WorldLine getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_WorldLine(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 18: {
              com.dota2.proto.DotaCommonmessages.CDOTAMsg_WorldLine.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = worldline_.toBuilder();
              }
              worldline_ = input.readMessage(com.dota2.proto.DotaCommonmessages.CDOTAMsg_WorldLine.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(worldline_);
                worldline_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_WorldLine_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_WorldLine_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WorldLine.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WorldLine.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_WorldLine parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_WorldLine(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional int32 player_id = 1;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    // optional .CDOTAMsg_WorldLine worldline = 2;
    public static final int WORLDLINE_FIELD_NUMBER = 2;
    private com.dota2.proto.DotaCommonmessages.CDOTAMsg_WorldLine worldline_;
    /**
     * optional .CDOTAMsg_WorldLine worldline = 2;
     */
    public boolean hasWorldline() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional .CDOTAMsg_WorldLine worldline = 2;
     */
    public com.dota2.proto.DotaCommonmessages.CDOTAMsg_WorldLine getWorldline() {
      return worldline_;
    }
    /**
     * optional .CDOTAMsg_WorldLine worldline = 2;
     */
    public com.dota2.proto.DotaCommonmessages.CDOTAMsg_WorldLineOrBuilder getWorldlineOrBuilder() {
      return worldline_;
    }

    private void initFields() {
      playerId_ = 0;
      worldline_ = com.dota2.proto.DotaCommonmessages.CDOTAMsg_WorldLine.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, worldline_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, worldline_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WorldLine parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WorldLine parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WorldLine parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WorldLine parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WorldLine parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WorldLine parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WorldLine parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WorldLine parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WorldLine parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WorldLine parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WorldLine prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_WorldLine}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WorldLineOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_WorldLine_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_WorldLine_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WorldLine.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WorldLine.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WorldLine.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getWorldlineFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (worldlineBuilder_ == null) {
          worldline_ = com.dota2.proto.DotaCommonmessages.CDOTAMsg_WorldLine.getDefaultInstance();
        } else {
          worldlineBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_WorldLine_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WorldLine getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WorldLine.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WorldLine build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WorldLine result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WorldLine buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WorldLine result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WorldLine(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (worldlineBuilder_ == null) {
          result.worldline_ = worldline_;
        } else {
          result.worldline_ = worldlineBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WorldLine) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WorldLine)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WorldLine other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WorldLine.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasWorldline()) {
          mergeWorldline(other.getWorldline());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WorldLine parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_WorldLine) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional int32 player_id = 1;
      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      // optional .CDOTAMsg_WorldLine worldline = 2;
      private com.dota2.proto.DotaCommonmessages.CDOTAMsg_WorldLine worldline_ = com.dota2.proto.DotaCommonmessages.CDOTAMsg_WorldLine.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaCommonmessages.CDOTAMsg_WorldLine, com.dota2.proto.DotaCommonmessages.CDOTAMsg_WorldLine.Builder, com.dota2.proto.DotaCommonmessages.CDOTAMsg_WorldLineOrBuilder> worldlineBuilder_;
      /**
       * optional .CDOTAMsg_WorldLine worldline = 2;
       */
      public boolean hasWorldline() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .CDOTAMsg_WorldLine worldline = 2;
       */
      public com.dota2.proto.DotaCommonmessages.CDOTAMsg_WorldLine getWorldline() {
        if (worldlineBuilder_ == null) {
          return worldline_;
        } else {
          return worldlineBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAMsg_WorldLine worldline = 2;
       */
      public Builder setWorldline(com.dota2.proto.DotaCommonmessages.CDOTAMsg_WorldLine value) {
        if (worldlineBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          worldline_ = value;
          onChanged();
        } else {
          worldlineBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_WorldLine worldline = 2;
       */
      public Builder setWorldline(
          com.dota2.proto.DotaCommonmessages.CDOTAMsg_WorldLine.Builder builderForValue) {
        if (worldlineBuilder_ == null) {
          worldline_ = builderForValue.build();
          onChanged();
        } else {
          worldlineBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_WorldLine worldline = 2;
       */
      public Builder mergeWorldline(com.dota2.proto.DotaCommonmessages.CDOTAMsg_WorldLine value) {
        if (worldlineBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              worldline_ != com.dota2.proto.DotaCommonmessages.CDOTAMsg_WorldLine.getDefaultInstance()) {
            worldline_ =
              com.dota2.proto.DotaCommonmessages.CDOTAMsg_WorldLine.newBuilder(worldline_).mergeFrom(value).buildPartial();
          } else {
            worldline_ = value;
          }
          onChanged();
        } else {
          worldlineBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_WorldLine worldline = 2;
       */
      public Builder clearWorldline() {
        if (worldlineBuilder_ == null) {
          worldline_ = com.dota2.proto.DotaCommonmessages.CDOTAMsg_WorldLine.getDefaultInstance();
          onChanged();
        } else {
          worldlineBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * optional .CDOTAMsg_WorldLine worldline = 2;
       */
      public com.dota2.proto.DotaCommonmessages.CDOTAMsg_WorldLine.Builder getWorldlineBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getWorldlineFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAMsg_WorldLine worldline = 2;
       */
      public com.dota2.proto.DotaCommonmessages.CDOTAMsg_WorldLineOrBuilder getWorldlineOrBuilder() {
        if (worldlineBuilder_ != null) {
          return worldlineBuilder_.getMessageOrBuilder();
        } else {
          return worldline_;
        }
      }
      /**
       * optional .CDOTAMsg_WorldLine worldline = 2;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaCommonmessages.CDOTAMsg_WorldLine, com.dota2.proto.DotaCommonmessages.CDOTAMsg_WorldLine.Builder, com.dota2.proto.DotaCommonmessages.CDOTAMsg_WorldLineOrBuilder> 
          getWorldlineFieldBuilder() {
        if (worldlineBuilder_ == null) {
          worldlineBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.dota2.proto.DotaCommonmessages.CDOTAMsg_WorldLine, com.dota2.proto.DotaCommonmessages.CDOTAMsg_WorldLine.Builder, com.dota2.proto.DotaCommonmessages.CDOTAMsg_WorldLineOrBuilder>(
                  worldline_,
                  getParentForChildren(),
                  isClean());
          worldline_ = null;
        }
        return worldlineBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_WorldLine)
    }

    static {
      defaultInstance = new CDOTAUserMsg_WorldLine(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_WorldLine)
  }

  public interface CDOTAUserMsg_ChatWheelOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional .EDOTAChatWheelMessage chat_message = 1 [default = k_EDOTA_CW_Ok];
    /**
     * optional .EDOTAChatWheelMessage chat_message = 1 [default = k_EDOTA_CW_Ok];
     */
    boolean hasChatMessage();
    /**
     * optional .EDOTAChatWheelMessage chat_message = 1 [default = k_EDOTA_CW_Ok];
     */
    com.dota2.proto.DotaCommonmessages.EDOTAChatWheelMessage getChatMessage();

    // optional uint32 player_id = 2;
    /**
     * optional uint32 player_id = 2;
     */
    boolean hasPlayerId();
    /**
     * optional uint32 player_id = 2;
     */
    int getPlayerId();

    // optional uint32 account_id = 3;
    /**
     * optional uint32 account_id = 3;
     */
    boolean hasAccountId();
    /**
     * optional uint32 account_id = 3;
     */
    int getAccountId();

    // optional uint32 param_hero_id = 4;
    /**
     * optional uint32 param_hero_id = 4;
     */
    boolean hasParamHeroId();
    /**
     * optional uint32 param_hero_id = 4;
     */
    int getParamHeroId();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ChatWheel}
   */
  public static final class CDOTAUserMsg_ChatWheel extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_ChatWheelOrBuilder {
    // Use CDOTAUserMsg_ChatWheel.newBuilder() to construct.
    private CDOTAUserMsg_ChatWheel(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ChatWheel(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ChatWheel defaultInstance;
    public static CDOTAUserMsg_ChatWheel getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ChatWheel getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ChatWheel(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              com.dota2.proto.DotaCommonmessages.EDOTAChatWheelMessage value = com.dota2.proto.DotaCommonmessages.EDOTAChatWheelMessage.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                chatMessage_ = value;
              }
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              accountId_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              paramHeroId_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ChatWheel_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ChatWheel_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatWheel.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatWheel.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ChatWheel parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ChatWheel(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional .EDOTAChatWheelMessage chat_message = 1 [default = k_EDOTA_CW_Ok];
    public static final int CHAT_MESSAGE_FIELD_NUMBER = 1;
    private com.dota2.proto.DotaCommonmessages.EDOTAChatWheelMessage chatMessage_;
    /**
     * optional .EDOTAChatWheelMessage chat_message = 1 [default = k_EDOTA_CW_Ok];
     */
    public boolean hasChatMessage() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional .EDOTAChatWheelMessage chat_message = 1 [default = k_EDOTA_CW_Ok];
     */
    public com.dota2.proto.DotaCommonmessages.EDOTAChatWheelMessage getChatMessage() {
      return chatMessage_;
    }

    // optional uint32 player_id = 2;
    public static final int PLAYER_ID_FIELD_NUMBER = 2;
    private int playerId_;
    /**
     * optional uint32 player_id = 2;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 player_id = 2;
     */
    public int getPlayerId() {
      return playerId_;
    }

    // optional uint32 account_id = 3;
    public static final int ACCOUNT_ID_FIELD_NUMBER = 3;
    private int accountId_;
    /**
     * optional uint32 account_id = 3;
     */
    public boolean hasAccountId() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 account_id = 3;
     */
    public int getAccountId() {
      return accountId_;
    }

    // optional uint32 param_hero_id = 4;
    public static final int PARAM_HERO_ID_FIELD_NUMBER = 4;
    private int paramHeroId_;
    /**
     * optional uint32 param_hero_id = 4;
     */
    public boolean hasParamHeroId() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 param_hero_id = 4;
     */
    public int getParamHeroId() {
      return paramHeroId_;
    }

    private void initFields() {
      chatMessage_ = com.dota2.proto.DotaCommonmessages.EDOTAChatWheelMessage.k_EDOTA_CW_Ok;
      playerId_ = 0;
      accountId_ = 0;
      paramHeroId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, chatMessage_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, accountId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, paramHeroId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, chatMessage_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, accountId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, paramHeroId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatWheel parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatWheel parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatWheel parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatWheel parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatWheel parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatWheel parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatWheel parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatWheel parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatWheel parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatWheel parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatWheel prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ChatWheel}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatWheelOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ChatWheel_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ChatWheel_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatWheel.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatWheel.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatWheel.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        chatMessage_ = com.dota2.proto.DotaCommonmessages.EDOTAChatWheelMessage.k_EDOTA_CW_Ok;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        accountId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        paramHeroId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ChatWheel_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatWheel getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatWheel.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatWheel build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatWheel result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatWheel buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatWheel result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatWheel(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.chatMessage_ = chatMessage_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.accountId_ = accountId_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.paramHeroId_ = paramHeroId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatWheel) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatWheel)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatWheel other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatWheel.getDefaultInstance()) return this;
        if (other.hasChatMessage()) {
          setChatMessage(other.getChatMessage());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasAccountId()) {
          setAccountId(other.getAccountId());
        }
        if (other.hasParamHeroId()) {
          setParamHeroId(other.getParamHeroId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatWheel parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ChatWheel) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional .EDOTAChatWheelMessage chat_message = 1 [default = k_EDOTA_CW_Ok];
      private com.dota2.proto.DotaCommonmessages.EDOTAChatWheelMessage chatMessage_ = com.dota2.proto.DotaCommonmessages.EDOTAChatWheelMessage.k_EDOTA_CW_Ok;
      /**
       * optional .EDOTAChatWheelMessage chat_message = 1 [default = k_EDOTA_CW_Ok];
       */
      public boolean hasChatMessage() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .EDOTAChatWheelMessage chat_message = 1 [default = k_EDOTA_CW_Ok];
       */
      public com.dota2.proto.DotaCommonmessages.EDOTAChatWheelMessage getChatMessage() {
        return chatMessage_;
      }
      /**
       * optional .EDOTAChatWheelMessage chat_message = 1 [default = k_EDOTA_CW_Ok];
       */
      public Builder setChatMessage(com.dota2.proto.DotaCommonmessages.EDOTAChatWheelMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        chatMessage_ = value;
        onChanged();
        return this;
      }
      /**
       * optional .EDOTAChatWheelMessage chat_message = 1 [default = k_EDOTA_CW_Ok];
       */
      public Builder clearChatMessage() {
        bitField0_ = (bitField0_ & ~0x00000001);
        chatMessage_ = com.dota2.proto.DotaCommonmessages.EDOTAChatWheelMessage.k_EDOTA_CW_Ok;
        onChanged();
        return this;
      }

      // optional uint32 player_id = 2;
      private int playerId_ ;
      /**
       * optional uint32 player_id = 2;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 player_id = 2;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional uint32 player_id = 2;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id = 2;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        onChanged();
        return this;
      }

      // optional uint32 account_id = 3;
      private int accountId_ ;
      /**
       * optional uint32 account_id = 3;
       */
      public boolean hasAccountId() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 account_id = 3;
       */
      public int getAccountId() {
        return accountId_;
      }
      /**
       * optional uint32 account_id = 3;
       */
      public Builder setAccountId(int value) {
        bitField0_ |= 0x00000004;
        accountId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 account_id = 3;
       */
      public Builder clearAccountId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        accountId_ = 0;
        onChanged();
        return this;
      }

      // optional uint32 param_hero_id = 4;
      private int paramHeroId_ ;
      /**
       * optional uint32 param_hero_id = 4;
       */
      public boolean hasParamHeroId() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 param_hero_id = 4;
       */
      public int getParamHeroId() {
        return paramHeroId_;
      }
      /**
       * optional uint32 param_hero_id = 4;
       */
      public Builder setParamHeroId(int value) {
        bitField0_ |= 0x00000008;
        paramHeroId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 param_hero_id = 4;
       */
      public Builder clearParamHeroId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        paramHeroId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ChatWheel)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ChatWheel(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ChatWheel)
  }

  public interface CDOTAUserMsg_ReceivedXmasGiftOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional int32 player_id = 1;
    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    // optional string item_name = 2;
    /**
     * optional string item_name = 2;
     */
    boolean hasItemName();
    /**
     * optional string item_name = 2;
     */
    java.lang.String getItemName();
    /**
     * optional string item_name = 2;
     */
    com.google.protobuf.ByteString
        getItemNameBytes();

    // optional int32 inventory_slot = 3;
    /**
     * optional int32 inventory_slot = 3;
     */
    boolean hasInventorySlot();
    /**
     * optional int32 inventory_slot = 3;
     */
    int getInventorySlot();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ReceivedXmasGift}
   */
  public static final class CDOTAUserMsg_ReceivedXmasGift extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_ReceivedXmasGiftOrBuilder {
    // Use CDOTAUserMsg_ReceivedXmasGift.newBuilder() to construct.
    private CDOTAUserMsg_ReceivedXmasGift(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ReceivedXmasGift(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ReceivedXmasGift defaultInstance;
    public static CDOTAUserMsg_ReceivedXmasGift getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ReceivedXmasGift getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ReceivedXmasGift(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              itemName_ = input.readBytes();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              inventorySlot_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ReceivedXmasGift_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ReceivedXmasGift_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ReceivedXmasGift.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ReceivedXmasGift.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ReceivedXmasGift parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ReceivedXmasGift(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional int32 player_id = 1;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    // optional string item_name = 2;
    public static final int ITEM_NAME_FIELD_NUMBER = 2;
    private java.lang.Object itemName_;
    /**
     * optional string item_name = 2;
     */
    public boolean hasItemName() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional string item_name = 2;
     */
    public java.lang.String getItemName() {
      java.lang.Object ref = itemName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          itemName_ = s;
        }
        return s;
      }
    }
    /**
     * optional string item_name = 2;
     */
    public com.google.protobuf.ByteString
        getItemNameBytes() {
      java.lang.Object ref = itemName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        itemName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional int32 inventory_slot = 3;
    public static final int INVENTORY_SLOT_FIELD_NUMBER = 3;
    private int inventorySlot_;
    /**
     * optional int32 inventory_slot = 3;
     */
    public boolean hasInventorySlot() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 inventory_slot = 3;
     */
    public int getInventorySlot() {
      return inventorySlot_;
    }

    private void initFields() {
      playerId_ = 0;
      itemName_ = "";
      inventorySlot_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getItemNameBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, inventorySlot_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getItemNameBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, inventorySlot_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ReceivedXmasGift parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ReceivedXmasGift parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ReceivedXmasGift parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ReceivedXmasGift parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ReceivedXmasGift parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ReceivedXmasGift parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ReceivedXmasGift parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ReceivedXmasGift parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ReceivedXmasGift parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ReceivedXmasGift parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ReceivedXmasGift prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ReceivedXmasGift}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ReceivedXmasGiftOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ReceivedXmasGift_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ReceivedXmasGift_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ReceivedXmasGift.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ReceivedXmasGift.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ReceivedXmasGift.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        itemName_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        inventorySlot_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ReceivedXmasGift_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ReceivedXmasGift getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ReceivedXmasGift.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ReceivedXmasGift build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ReceivedXmasGift result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ReceivedXmasGift buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ReceivedXmasGift result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ReceivedXmasGift(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.itemName_ = itemName_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.inventorySlot_ = inventorySlot_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ReceivedXmasGift) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ReceivedXmasGift)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ReceivedXmasGift other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ReceivedXmasGift.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasItemName()) {
          bitField0_ |= 0x00000002;
          itemName_ = other.itemName_;
          onChanged();
        }
        if (other.hasInventorySlot()) {
          setInventorySlot(other.getInventorySlot());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ReceivedXmasGift parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ReceivedXmasGift) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional int32 player_id = 1;
      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      // optional string item_name = 2;
      private java.lang.Object itemName_ = "";
      /**
       * optional string item_name = 2;
       */
      public boolean hasItemName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional string item_name = 2;
       */
      public java.lang.String getItemName() {
        java.lang.Object ref = itemName_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          itemName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string item_name = 2;
       */
      public com.google.protobuf.ByteString
          getItemNameBytes() {
        java.lang.Object ref = itemName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          itemName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string item_name = 2;
       */
      public Builder setItemName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        itemName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string item_name = 2;
       */
      public Builder clearItemName() {
        bitField0_ = (bitField0_ & ~0x00000002);
        itemName_ = getDefaultInstance().getItemName();
        onChanged();
        return this;
      }
      /**
       * optional string item_name = 2;
       */
      public Builder setItemNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        itemName_ = value;
        onChanged();
        return this;
      }

      // optional int32 inventory_slot = 3;
      private int inventorySlot_ ;
      /**
       * optional int32 inventory_slot = 3;
       */
      public boolean hasInventorySlot() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 inventory_slot = 3;
       */
      public int getInventorySlot() {
        return inventorySlot_;
      }
      /**
       * optional int32 inventory_slot = 3;
       */
      public Builder setInventorySlot(int value) {
        bitField0_ |= 0x00000004;
        inventorySlot_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 inventory_slot = 3;
       */
      public Builder clearInventorySlot() {
        bitField0_ = (bitField0_ & ~0x00000004);
        inventorySlot_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ReceivedXmasGift)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ReceivedXmasGift(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ReceivedXmasGift)
  }

  public interface CDOTAUserMsg_ShowSurveyOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional int32 survey_id = 1;
    /**
     * optional int32 survey_id = 1;
     */
    boolean hasSurveyId();
    /**
     * optional int32 survey_id = 1;
     */
    int getSurveyId();

    // optional uint32 match_id = 2;
    /**
     * optional uint32 match_id = 2;
     */
    boolean hasMatchId();
    /**
     * optional uint32 match_id = 2;
     */
    int getMatchId();

    // optional string response_style = 3;
    /**
     * optional string response_style = 3;
     */
    boolean hasResponseStyle();
    /**
     * optional string response_style = 3;
     */
    java.lang.String getResponseStyle();
    /**
     * optional string response_style = 3;
     */
    com.google.protobuf.ByteString
        getResponseStyleBytes();

    // optional uint32 teammate_hero_id = 4;
    /**
     * optional uint32 teammate_hero_id = 4;
     */
    boolean hasTeammateHeroId();
    /**
     * optional uint32 teammate_hero_id = 4;
     */
    int getTeammateHeroId();

    // optional string teammate_name = 5;
    /**
     * optional string teammate_name = 5;
     */
    boolean hasTeammateName();
    /**
     * optional string teammate_name = 5;
     */
    java.lang.String getTeammateName();
    /**
     * optional string teammate_name = 5;
     */
    com.google.protobuf.ByteString
        getTeammateNameBytes();

    // optional uint32 teammate_account_id = 6;
    /**
     * optional uint32 teammate_account_id = 6;
     */
    boolean hasTeammateAccountId();
    /**
     * optional uint32 teammate_account_id = 6;
     */
    int getTeammateAccountId();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ShowSurvey}
   */
  public static final class CDOTAUserMsg_ShowSurvey extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_ShowSurveyOrBuilder {
    // Use CDOTAUserMsg_ShowSurvey.newBuilder() to construct.
    private CDOTAUserMsg_ShowSurvey(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ShowSurvey(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ShowSurvey defaultInstance;
    public static CDOTAUserMsg_ShowSurvey getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ShowSurvey getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ShowSurvey(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              surveyId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              matchId_ = input.readUInt32();
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              responseStyle_ = input.readBytes();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              teammateHeroId_ = input.readUInt32();
              break;
            }
            case 42: {
              bitField0_ |= 0x00000010;
              teammateName_ = input.readBytes();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              teammateAccountId_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ShowSurvey_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ShowSurvey_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowSurvey.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowSurvey.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ShowSurvey parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ShowSurvey(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional int32 survey_id = 1;
    public static final int SURVEY_ID_FIELD_NUMBER = 1;
    private int surveyId_;
    /**
     * optional int32 survey_id = 1;
     */
    public boolean hasSurveyId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 survey_id = 1;
     */
    public int getSurveyId() {
      return surveyId_;
    }

    // optional uint32 match_id = 2;
    public static final int MATCH_ID_FIELD_NUMBER = 2;
    private int matchId_;
    /**
     * optional uint32 match_id = 2;
     */
    public boolean hasMatchId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 match_id = 2;
     */
    public int getMatchId() {
      return matchId_;
    }

    // optional string response_style = 3;
    public static final int RESPONSE_STYLE_FIELD_NUMBER = 3;
    private java.lang.Object responseStyle_;
    /**
     * optional string response_style = 3;
     */
    public boolean hasResponseStyle() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional string response_style = 3;
     */
    public java.lang.String getResponseStyle() {
      java.lang.Object ref = responseStyle_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          responseStyle_ = s;
        }
        return s;
      }
    }
    /**
     * optional string response_style = 3;
     */
    public com.google.protobuf.ByteString
        getResponseStyleBytes() {
      java.lang.Object ref = responseStyle_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        responseStyle_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional uint32 teammate_hero_id = 4;
    public static final int TEAMMATE_HERO_ID_FIELD_NUMBER = 4;
    private int teammateHeroId_;
    /**
     * optional uint32 teammate_hero_id = 4;
     */
    public boolean hasTeammateHeroId() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 teammate_hero_id = 4;
     */
    public int getTeammateHeroId() {
      return teammateHeroId_;
    }

    // optional string teammate_name = 5;
    public static final int TEAMMATE_NAME_FIELD_NUMBER = 5;
    private java.lang.Object teammateName_;
    /**
     * optional string teammate_name = 5;
     */
    public boolean hasTeammateName() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional string teammate_name = 5;
     */
    public java.lang.String getTeammateName() {
      java.lang.Object ref = teammateName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          teammateName_ = s;
        }
        return s;
      }
    }
    /**
     * optional string teammate_name = 5;
     */
    public com.google.protobuf.ByteString
        getTeammateNameBytes() {
      java.lang.Object ref = teammateName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        teammateName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional uint32 teammate_account_id = 6;
    public static final int TEAMMATE_ACCOUNT_ID_FIELD_NUMBER = 6;
    private int teammateAccountId_;
    /**
     * optional uint32 teammate_account_id = 6;
     */
    public boolean hasTeammateAccountId() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional uint32 teammate_account_id = 6;
     */
    public int getTeammateAccountId() {
      return teammateAccountId_;
    }

    private void initFields() {
      surveyId_ = 0;
      matchId_ = 0;
      responseStyle_ = "";
      teammateHeroId_ = 0;
      teammateName_ = "";
      teammateAccountId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, surveyId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, matchId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getResponseStyleBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, teammateHeroId_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBytes(5, getTeammateNameBytes());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeUInt32(6, teammateAccountId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, surveyId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, matchId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getResponseStyleBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, teammateHeroId_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(5, getTeammateNameBytes());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, teammateAccountId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowSurvey parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowSurvey parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowSurvey parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowSurvey parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowSurvey parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowSurvey parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowSurvey parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowSurvey parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowSurvey parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowSurvey parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowSurvey prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ShowSurvey}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowSurveyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ShowSurvey_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ShowSurvey_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowSurvey.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowSurvey.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowSurvey.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        surveyId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        matchId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        responseStyle_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        teammateHeroId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        teammateName_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        teammateAccountId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ShowSurvey_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowSurvey getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowSurvey.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowSurvey build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowSurvey result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowSurvey buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowSurvey result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowSurvey(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.surveyId_ = surveyId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.matchId_ = matchId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.responseStyle_ = responseStyle_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.teammateHeroId_ = teammateHeroId_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.teammateName_ = teammateName_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.teammateAccountId_ = teammateAccountId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowSurvey) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowSurvey)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowSurvey other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowSurvey.getDefaultInstance()) return this;
        if (other.hasSurveyId()) {
          setSurveyId(other.getSurveyId());
        }
        if (other.hasMatchId()) {
          setMatchId(other.getMatchId());
        }
        if (other.hasResponseStyle()) {
          bitField0_ |= 0x00000004;
          responseStyle_ = other.responseStyle_;
          onChanged();
        }
        if (other.hasTeammateHeroId()) {
          setTeammateHeroId(other.getTeammateHeroId());
        }
        if (other.hasTeammateName()) {
          bitField0_ |= 0x00000010;
          teammateName_ = other.teammateName_;
          onChanged();
        }
        if (other.hasTeammateAccountId()) {
          setTeammateAccountId(other.getTeammateAccountId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowSurvey parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowSurvey) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional int32 survey_id = 1;
      private int surveyId_ ;
      /**
       * optional int32 survey_id = 1;
       */
      public boolean hasSurveyId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 survey_id = 1;
       */
      public int getSurveyId() {
        return surveyId_;
      }
      /**
       * optional int32 survey_id = 1;
       */
      public Builder setSurveyId(int value) {
        bitField0_ |= 0x00000001;
        surveyId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 survey_id = 1;
       */
      public Builder clearSurveyId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        surveyId_ = 0;
        onChanged();
        return this;
      }

      // optional uint32 match_id = 2;
      private int matchId_ ;
      /**
       * optional uint32 match_id = 2;
       */
      public boolean hasMatchId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 match_id = 2;
       */
      public int getMatchId() {
        return matchId_;
      }
      /**
       * optional uint32 match_id = 2;
       */
      public Builder setMatchId(int value) {
        bitField0_ |= 0x00000002;
        matchId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 match_id = 2;
       */
      public Builder clearMatchId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        matchId_ = 0;
        onChanged();
        return this;
      }

      // optional string response_style = 3;
      private java.lang.Object responseStyle_ = "";
      /**
       * optional string response_style = 3;
       */
      public boolean hasResponseStyle() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional string response_style = 3;
       */
      public java.lang.String getResponseStyle() {
        java.lang.Object ref = responseStyle_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          responseStyle_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string response_style = 3;
       */
      public com.google.protobuf.ByteString
          getResponseStyleBytes() {
        java.lang.Object ref = responseStyle_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          responseStyle_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string response_style = 3;
       */
      public Builder setResponseStyle(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        responseStyle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string response_style = 3;
       */
      public Builder clearResponseStyle() {
        bitField0_ = (bitField0_ & ~0x00000004);
        responseStyle_ = getDefaultInstance().getResponseStyle();
        onChanged();
        return this;
      }
      /**
       * optional string response_style = 3;
       */
      public Builder setResponseStyleBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        responseStyle_ = value;
        onChanged();
        return this;
      }

      // optional uint32 teammate_hero_id = 4;
      private int teammateHeroId_ ;
      /**
       * optional uint32 teammate_hero_id = 4;
       */
      public boolean hasTeammateHeroId() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 teammate_hero_id = 4;
       */
      public int getTeammateHeroId() {
        return teammateHeroId_;
      }
      /**
       * optional uint32 teammate_hero_id = 4;
       */
      public Builder setTeammateHeroId(int value) {
        bitField0_ |= 0x00000008;
        teammateHeroId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 teammate_hero_id = 4;
       */
      public Builder clearTeammateHeroId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        teammateHeroId_ = 0;
        onChanged();
        return this;
      }

      // optional string teammate_name = 5;
      private java.lang.Object teammateName_ = "";
      /**
       * optional string teammate_name = 5;
       */
      public boolean hasTeammateName() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional string teammate_name = 5;
       */
      public java.lang.String getTeammateName() {
        java.lang.Object ref = teammateName_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          teammateName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string teammate_name = 5;
       */
      public com.google.protobuf.ByteString
          getTeammateNameBytes() {
        java.lang.Object ref = teammateName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          teammateName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string teammate_name = 5;
       */
      public Builder setTeammateName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        teammateName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string teammate_name = 5;
       */
      public Builder clearTeammateName() {
        bitField0_ = (bitField0_ & ~0x00000010);
        teammateName_ = getDefaultInstance().getTeammateName();
        onChanged();
        return this;
      }
      /**
       * optional string teammate_name = 5;
       */
      public Builder setTeammateNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        teammateName_ = value;
        onChanged();
        return this;
      }

      // optional uint32 teammate_account_id = 6;
      private int teammateAccountId_ ;
      /**
       * optional uint32 teammate_account_id = 6;
       */
      public boolean hasTeammateAccountId() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional uint32 teammate_account_id = 6;
       */
      public int getTeammateAccountId() {
        return teammateAccountId_;
      }
      /**
       * optional uint32 teammate_account_id = 6;
       */
      public Builder setTeammateAccountId(int value) {
        bitField0_ |= 0x00000020;
        teammateAccountId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 teammate_account_id = 6;
       */
      public Builder clearTeammateAccountId() {
        bitField0_ = (bitField0_ & ~0x00000020);
        teammateAccountId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ShowSurvey)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ShowSurvey(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ShowSurvey)
  }

  public interface CDOTAUserMsg_UpdateSharedContentOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional int32 slot_type = 1;
    /**
     * optional int32 slot_type = 1;
     */
    boolean hasSlotType();
    /**
     * optional int32 slot_type = 1;
     */
    int getSlotType();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_UpdateSharedContent}
   */
  public static final class CDOTAUserMsg_UpdateSharedContent extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_UpdateSharedContentOrBuilder {
    // Use CDOTAUserMsg_UpdateSharedContent.newBuilder() to construct.
    private CDOTAUserMsg_UpdateSharedContent(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_UpdateSharedContent(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_UpdateSharedContent defaultInstance;
    public static CDOTAUserMsg_UpdateSharedContent getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_UpdateSharedContent getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_UpdateSharedContent(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              slotType_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UpdateSharedContent_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UpdateSharedContent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UpdateSharedContent.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UpdateSharedContent.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_UpdateSharedContent parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_UpdateSharedContent(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional int32 slot_type = 1;
    public static final int SLOT_TYPE_FIELD_NUMBER = 1;
    private int slotType_;
    /**
     * optional int32 slot_type = 1;
     */
    public boolean hasSlotType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 slot_type = 1;
     */
    public int getSlotType() {
      return slotType_;
    }

    private void initFields() {
      slotType_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, slotType_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, slotType_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UpdateSharedContent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UpdateSharedContent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UpdateSharedContent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UpdateSharedContent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UpdateSharedContent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UpdateSharedContent parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UpdateSharedContent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UpdateSharedContent parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UpdateSharedContent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UpdateSharedContent parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UpdateSharedContent prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_UpdateSharedContent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UpdateSharedContentOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UpdateSharedContent_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UpdateSharedContent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UpdateSharedContent.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UpdateSharedContent.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UpdateSharedContent.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        slotType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_UpdateSharedContent_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UpdateSharedContent getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UpdateSharedContent.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UpdateSharedContent build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UpdateSharedContent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UpdateSharedContent buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UpdateSharedContent result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UpdateSharedContent(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.slotType_ = slotType_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UpdateSharedContent) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UpdateSharedContent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UpdateSharedContent other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UpdateSharedContent.getDefaultInstance()) return this;
        if (other.hasSlotType()) {
          setSlotType(other.getSlotType());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UpdateSharedContent parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_UpdateSharedContent) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional int32 slot_type = 1;
      private int slotType_ ;
      /**
       * optional int32 slot_type = 1;
       */
      public boolean hasSlotType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 slot_type = 1;
       */
      public int getSlotType() {
        return slotType_;
      }
      /**
       * optional int32 slot_type = 1;
       */
      public Builder setSlotType(int value) {
        bitField0_ |= 0x00000001;
        slotType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 slot_type = 1;
       */
      public Builder clearSlotType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        slotType_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_UpdateSharedContent)
    }

    static {
      defaultInstance = new CDOTAUserMsg_UpdateSharedContent(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_UpdateSharedContent)
  }

  public interface CDOTAUserMsg_TutorialRequestExpOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_TutorialRequestExp}
   */
  public static final class CDOTAUserMsg_TutorialRequestExp extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_TutorialRequestExpOrBuilder {
    // Use CDOTAUserMsg_TutorialRequestExp.newBuilder() to construct.
    private CDOTAUserMsg_TutorialRequestExp(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_TutorialRequestExp(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_TutorialRequestExp defaultInstance;
    public static CDOTAUserMsg_TutorialRequestExp getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_TutorialRequestExp getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_TutorialRequestExp(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_TutorialRequestExp_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_TutorialRequestExp_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialRequestExp.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialRequestExp.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_TutorialRequestExp parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_TutorialRequestExp(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private void initFields() {
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialRequestExp parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialRequestExp parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialRequestExp parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialRequestExp parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialRequestExp parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialRequestExp parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialRequestExp parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialRequestExp parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialRequestExp parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialRequestExp parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialRequestExp prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_TutorialRequestExp}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialRequestExpOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_TutorialRequestExp_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_TutorialRequestExp_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialRequestExp.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialRequestExp.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialRequestExp.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_TutorialRequestExp_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialRequestExp getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialRequestExp.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialRequestExp build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialRequestExp result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialRequestExp buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialRequestExp result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialRequestExp(this);
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialRequestExp) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialRequestExp)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialRequestExp other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialRequestExp.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialRequestExp parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialRequestExp) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_TutorialRequestExp)
    }

    static {
      defaultInstance = new CDOTAUserMsg_TutorialRequestExp(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_TutorialRequestExp)
  }

  public interface CDOTAUserMsg_TutorialFadeOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional int32 tgt_alpha = 1;
    /**
     * optional int32 tgt_alpha = 1;
     */
    boolean hasTgtAlpha();
    /**
     * optional int32 tgt_alpha = 1;
     */
    int getTgtAlpha();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_TutorialFade}
   */
  public static final class CDOTAUserMsg_TutorialFade extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_TutorialFadeOrBuilder {
    // Use CDOTAUserMsg_TutorialFade.newBuilder() to construct.
    private CDOTAUserMsg_TutorialFade(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_TutorialFade(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_TutorialFade defaultInstance;
    public static CDOTAUserMsg_TutorialFade getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_TutorialFade getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_TutorialFade(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              tgtAlpha_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_TutorialFade_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_TutorialFade_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFade.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFade.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_TutorialFade parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_TutorialFade(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional int32 tgt_alpha = 1;
    public static final int TGT_ALPHA_FIELD_NUMBER = 1;
    private int tgtAlpha_;
    /**
     * optional int32 tgt_alpha = 1;
     */
    public boolean hasTgtAlpha() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 tgt_alpha = 1;
     */
    public int getTgtAlpha() {
      return tgtAlpha_;
    }

    private void initFields() {
      tgtAlpha_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, tgtAlpha_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, tgtAlpha_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFade parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFade parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFade parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFade parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFade parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFade parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFade parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFade parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFade parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFade parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFade prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_TutorialFade}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFadeOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_TutorialFade_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_TutorialFade_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFade.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFade.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFade.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        tgtAlpha_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_TutorialFade_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFade getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFade.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFade build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFade result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFade buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFade result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFade(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.tgtAlpha_ = tgtAlpha_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFade) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFade)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFade other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFade.getDefaultInstance()) return this;
        if (other.hasTgtAlpha()) {
          setTgtAlpha(other.getTgtAlpha());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFade parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialFade) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional int32 tgt_alpha = 1;
      private int tgtAlpha_ ;
      /**
       * optional int32 tgt_alpha = 1;
       */
      public boolean hasTgtAlpha() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 tgt_alpha = 1;
       */
      public int getTgtAlpha() {
        return tgtAlpha_;
      }
      /**
       * optional int32 tgt_alpha = 1;
       */
      public Builder setTgtAlpha(int value) {
        bitField0_ |= 0x00000001;
        tgtAlpha_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 tgt_alpha = 1;
       */
      public Builder clearTgtAlpha() {
        bitField0_ = (bitField0_ & ~0x00000001);
        tgtAlpha_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_TutorialFade)
    }

    static {
      defaultInstance = new CDOTAUserMsg_TutorialFade(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_TutorialFade)
  }

  public interface CDOTAUserMsg_TutorialPingMinimapOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional uint32 player_id = 1;
    /**
     * optional uint32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional uint32 player_id = 1;
     */
    int getPlayerId();

    // optional float pos_x = 2;
    /**
     * optional float pos_x = 2;
     */
    boolean hasPosX();
    /**
     * optional float pos_x = 2;
     */
    float getPosX();

    // optional float pos_y = 3;
    /**
     * optional float pos_y = 3;
     */
    boolean hasPosY();
    /**
     * optional float pos_y = 3;
     */
    float getPosY();

    // optional float pos_z = 4;
    /**
     * optional float pos_z = 4;
     */
    boolean hasPosZ();
    /**
     * optional float pos_z = 4;
     */
    float getPosZ();

    // optional int32 entity_index = 5;
    /**
     * optional int32 entity_index = 5;
     */
    boolean hasEntityIndex();
    /**
     * optional int32 entity_index = 5;
     */
    int getEntityIndex();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_TutorialPingMinimap}
   */
  public static final class CDOTAUserMsg_TutorialPingMinimap extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_TutorialPingMinimapOrBuilder {
    // Use CDOTAUserMsg_TutorialPingMinimap.newBuilder() to construct.
    private CDOTAUserMsg_TutorialPingMinimap(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_TutorialPingMinimap(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_TutorialPingMinimap defaultInstance;
    public static CDOTAUserMsg_TutorialPingMinimap getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_TutorialPingMinimap getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_TutorialPingMinimap(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
            case 21: {
              bitField0_ |= 0x00000002;
              posX_ = input.readFloat();
              break;
            }
            case 29: {
              bitField0_ |= 0x00000004;
              posY_ = input.readFloat();
              break;
            }
            case 37: {
              bitField0_ |= 0x00000008;
              posZ_ = input.readFloat();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              entityIndex_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_TutorialPingMinimap_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_TutorialPingMinimap_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialPingMinimap.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialPingMinimap.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_TutorialPingMinimap parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_TutorialPingMinimap(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional uint32 player_id = 1;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional uint32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    // optional float pos_x = 2;
    public static final int POS_X_FIELD_NUMBER = 2;
    private float posX_;
    /**
     * optional float pos_x = 2;
     */
    public boolean hasPosX() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional float pos_x = 2;
     */
    public float getPosX() {
      return posX_;
    }

    // optional float pos_y = 3;
    public static final int POS_Y_FIELD_NUMBER = 3;
    private float posY_;
    /**
     * optional float pos_y = 3;
     */
    public boolean hasPosY() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional float pos_y = 3;
     */
    public float getPosY() {
      return posY_;
    }

    // optional float pos_z = 4;
    public static final int POS_Z_FIELD_NUMBER = 4;
    private float posZ_;
    /**
     * optional float pos_z = 4;
     */
    public boolean hasPosZ() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional float pos_z = 4;
     */
    public float getPosZ() {
      return posZ_;
    }

    // optional int32 entity_index = 5;
    public static final int ENTITY_INDEX_FIELD_NUMBER = 5;
    private int entityIndex_;
    /**
     * optional int32 entity_index = 5;
     */
    public boolean hasEntityIndex() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional int32 entity_index = 5;
     */
    public int getEntityIndex() {
      return entityIndex_;
    }

    private void initFields() {
      playerId_ = 0;
      posX_ = 0F;
      posY_ = 0F;
      posZ_ = 0F;
      entityIndex_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeFloat(2, posX_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeFloat(3, posY_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeFloat(4, posZ_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt32(5, entityIndex_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(2, posX_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(3, posY_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(4, posZ_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, entityIndex_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialPingMinimap parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialPingMinimap parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialPingMinimap parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialPingMinimap parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialPingMinimap parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialPingMinimap parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialPingMinimap parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialPingMinimap parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialPingMinimap parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialPingMinimap parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialPingMinimap prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_TutorialPingMinimap}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialPingMinimapOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_TutorialPingMinimap_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_TutorialPingMinimap_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialPingMinimap.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialPingMinimap.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialPingMinimap.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        posX_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000002);
        posY_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000004);
        posZ_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000008);
        entityIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_TutorialPingMinimap_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialPingMinimap getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialPingMinimap.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialPingMinimap build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialPingMinimap result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialPingMinimap buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialPingMinimap result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialPingMinimap(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.posX_ = posX_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.posY_ = posY_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.posZ_ = posZ_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.entityIndex_ = entityIndex_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialPingMinimap) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialPingMinimap)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialPingMinimap other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialPingMinimap.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasPosX()) {
          setPosX(other.getPosX());
        }
        if (other.hasPosY()) {
          setPosY(other.getPosY());
        }
        if (other.hasPosZ()) {
          setPosZ(other.getPosZ());
        }
        if (other.hasEntityIndex()) {
          setEntityIndex(other.getEntityIndex());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialPingMinimap parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_TutorialPingMinimap) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional uint32 player_id = 1;
      private int playerId_ ;
      /**
       * optional uint32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      // optional float pos_x = 2;
      private float posX_ ;
      /**
       * optional float pos_x = 2;
       */
      public boolean hasPosX() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional float pos_x = 2;
       */
      public float getPosX() {
        return posX_;
      }
      /**
       * optional float pos_x = 2;
       */
      public Builder setPosX(float value) {
        bitField0_ |= 0x00000002;
        posX_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float pos_x = 2;
       */
      public Builder clearPosX() {
        bitField0_ = (bitField0_ & ~0x00000002);
        posX_ = 0F;
        onChanged();
        return this;
      }

      // optional float pos_y = 3;
      private float posY_ ;
      /**
       * optional float pos_y = 3;
       */
      public boolean hasPosY() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional float pos_y = 3;
       */
      public float getPosY() {
        return posY_;
      }
      /**
       * optional float pos_y = 3;
       */
      public Builder setPosY(float value) {
        bitField0_ |= 0x00000004;
        posY_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float pos_y = 3;
       */
      public Builder clearPosY() {
        bitField0_ = (bitField0_ & ~0x00000004);
        posY_ = 0F;
        onChanged();
        return this;
      }

      // optional float pos_z = 4;
      private float posZ_ ;
      /**
       * optional float pos_z = 4;
       */
      public boolean hasPosZ() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional float pos_z = 4;
       */
      public float getPosZ() {
        return posZ_;
      }
      /**
       * optional float pos_z = 4;
       */
      public Builder setPosZ(float value) {
        bitField0_ |= 0x00000008;
        posZ_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float pos_z = 4;
       */
      public Builder clearPosZ() {
        bitField0_ = (bitField0_ & ~0x00000008);
        posZ_ = 0F;
        onChanged();
        return this;
      }

      // optional int32 entity_index = 5;
      private int entityIndex_ ;
      /**
       * optional int32 entity_index = 5;
       */
      public boolean hasEntityIndex() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional int32 entity_index = 5;
       */
      public int getEntityIndex() {
        return entityIndex_;
      }
      /**
       * optional int32 entity_index = 5;
       */
      public Builder setEntityIndex(int value) {
        bitField0_ |= 0x00000010;
        entityIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 entity_index = 5;
       */
      public Builder clearEntityIndex() {
        bitField0_ = (bitField0_ & ~0x00000010);
        entityIndex_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_TutorialPingMinimap)
    }

    static {
      defaultInstance = new CDOTAUserMsg_TutorialPingMinimap(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_TutorialPingMinimap)
  }

  public interface CDOTA_UM_GamerulesStateChangedOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional uint32 state = 1;
    /**
     * optional uint32 state = 1;
     */
    boolean hasState();
    /**
     * optional uint32 state = 1;
     */
    int getState();
  }
  /**
   * Protobuf type {@code CDOTA_UM_GamerulesStateChanged}
   */
  public static final class CDOTA_UM_GamerulesStateChanged extends
      com.google.protobuf.GeneratedMessage
      implements CDOTA_UM_GamerulesStateChangedOrBuilder {
    // Use CDOTA_UM_GamerulesStateChanged.newBuilder() to construct.
    private CDOTA_UM_GamerulesStateChanged(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTA_UM_GamerulesStateChanged(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTA_UM_GamerulesStateChanged defaultInstance;
    public static CDOTA_UM_GamerulesStateChanged getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTA_UM_GamerulesStateChanged getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTA_UM_GamerulesStateChanged(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              state_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTA_UM_GamerulesStateChanged_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTA_UM_GamerulesStateChanged_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTA_UM_GamerulesStateChanged.class, com.dota2.proto.DotaUsermessages.CDOTA_UM_GamerulesStateChanged.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTA_UM_GamerulesStateChanged parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTA_UM_GamerulesStateChanged(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional uint32 state = 1;
    public static final int STATE_FIELD_NUMBER = 1;
    private int state_;
    /**
     * optional uint32 state = 1;
     */
    public boolean hasState() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 state = 1;
     */
    public int getState() {
      return state_;
    }

    private void initFields() {
      state_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, state_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, state_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTA_UM_GamerulesStateChanged parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTA_UM_GamerulesStateChanged parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTA_UM_GamerulesStateChanged parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTA_UM_GamerulesStateChanged parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTA_UM_GamerulesStateChanged parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTA_UM_GamerulesStateChanged parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTA_UM_GamerulesStateChanged parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTA_UM_GamerulesStateChanged parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTA_UM_GamerulesStateChanged parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTA_UM_GamerulesStateChanged parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTA_UM_GamerulesStateChanged prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTA_UM_GamerulesStateChanged}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTA_UM_GamerulesStateChangedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTA_UM_GamerulesStateChanged_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTA_UM_GamerulesStateChanged_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTA_UM_GamerulesStateChanged.class, com.dota2.proto.DotaUsermessages.CDOTA_UM_GamerulesStateChanged.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTA_UM_GamerulesStateChanged.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        state_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTA_UM_GamerulesStateChanged_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTA_UM_GamerulesStateChanged getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTA_UM_GamerulesStateChanged.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTA_UM_GamerulesStateChanged build() {
        com.dota2.proto.DotaUsermessages.CDOTA_UM_GamerulesStateChanged result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTA_UM_GamerulesStateChanged buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTA_UM_GamerulesStateChanged result = new com.dota2.proto.DotaUsermessages.CDOTA_UM_GamerulesStateChanged(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.state_ = state_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTA_UM_GamerulesStateChanged) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTA_UM_GamerulesStateChanged)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTA_UM_GamerulesStateChanged other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTA_UM_GamerulesStateChanged.getDefaultInstance()) return this;
        if (other.hasState()) {
          setState(other.getState());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTA_UM_GamerulesStateChanged parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTA_UM_GamerulesStateChanged) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional uint32 state = 1;
      private int state_ ;
      /**
       * optional uint32 state = 1;
       */
      public boolean hasState() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 state = 1;
       */
      public int getState() {
        return state_;
      }
      /**
       * optional uint32 state = 1;
       */
      public Builder setState(int value) {
        bitField0_ |= 0x00000001;
        state_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 state = 1;
       */
      public Builder clearState() {
        bitField0_ = (bitField0_ & ~0x00000001);
        state_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTA_UM_GamerulesStateChanged)
    }

    static {
      defaultInstance = new CDOTA_UM_GamerulesStateChanged(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTA_UM_GamerulesStateChanged)
  }

  public interface CDOTAUserMsg_AddQuestLogEntryOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional string npc_name = 1;
    /**
     * optional string npc_name = 1;
     */
    boolean hasNpcName();
    /**
     * optional string npc_name = 1;
     */
    java.lang.String getNpcName();
    /**
     * optional string npc_name = 1;
     */
    com.google.protobuf.ByteString
        getNpcNameBytes();

    // optional string npc_dialog = 2;
    /**
     * optional string npc_dialog = 2;
     */
    boolean hasNpcDialog();
    /**
     * optional string npc_dialog = 2;
     */
    java.lang.String getNpcDialog();
    /**
     * optional string npc_dialog = 2;
     */
    com.google.protobuf.ByteString
        getNpcDialogBytes();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_AddQuestLogEntry}
   */
  public static final class CDOTAUserMsg_AddQuestLogEntry extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_AddQuestLogEntryOrBuilder {
    // Use CDOTAUserMsg_AddQuestLogEntry.newBuilder() to construct.
    private CDOTAUserMsg_AddQuestLogEntry(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_AddQuestLogEntry(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_AddQuestLogEntry defaultInstance;
    public static CDOTAUserMsg_AddQuestLogEntry getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_AddQuestLogEntry getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_AddQuestLogEntry(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              npcName_ = input.readBytes();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              npcDialog_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_AddQuestLogEntry_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_AddQuestLogEntry_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AddQuestLogEntry.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AddQuestLogEntry.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_AddQuestLogEntry parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_AddQuestLogEntry(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional string npc_name = 1;
    public static final int NPC_NAME_FIELD_NUMBER = 1;
    private java.lang.Object npcName_;
    /**
     * optional string npc_name = 1;
     */
    public boolean hasNpcName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional string npc_name = 1;
     */
    public java.lang.String getNpcName() {
      java.lang.Object ref = npcName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          npcName_ = s;
        }
        return s;
      }
    }
    /**
     * optional string npc_name = 1;
     */
    public com.google.protobuf.ByteString
        getNpcNameBytes() {
      java.lang.Object ref = npcName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        npcName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional string npc_dialog = 2;
    public static final int NPC_DIALOG_FIELD_NUMBER = 2;
    private java.lang.Object npcDialog_;
    /**
     * optional string npc_dialog = 2;
     */
    public boolean hasNpcDialog() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional string npc_dialog = 2;
     */
    public java.lang.String getNpcDialog() {
      java.lang.Object ref = npcDialog_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          npcDialog_ = s;
        }
        return s;
      }
    }
    /**
     * optional string npc_dialog = 2;
     */
    public com.google.protobuf.ByteString
        getNpcDialogBytes() {
      java.lang.Object ref = npcDialog_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        npcDialog_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      npcName_ = "";
      npcDialog_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getNpcNameBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getNpcDialogBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getNpcNameBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getNpcDialogBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AddQuestLogEntry parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AddQuestLogEntry parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AddQuestLogEntry parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AddQuestLogEntry parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AddQuestLogEntry parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AddQuestLogEntry parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AddQuestLogEntry parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AddQuestLogEntry parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AddQuestLogEntry parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AddQuestLogEntry parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AddQuestLogEntry prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_AddQuestLogEntry}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AddQuestLogEntryOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_AddQuestLogEntry_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_AddQuestLogEntry_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AddQuestLogEntry.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AddQuestLogEntry.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AddQuestLogEntry.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        npcName_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        npcDialog_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_AddQuestLogEntry_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AddQuestLogEntry getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AddQuestLogEntry.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AddQuestLogEntry build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AddQuestLogEntry result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AddQuestLogEntry buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AddQuestLogEntry result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AddQuestLogEntry(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.npcName_ = npcName_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.npcDialog_ = npcDialog_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AddQuestLogEntry) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AddQuestLogEntry)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AddQuestLogEntry other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AddQuestLogEntry.getDefaultInstance()) return this;
        if (other.hasNpcName()) {
          bitField0_ |= 0x00000001;
          npcName_ = other.npcName_;
          onChanged();
        }
        if (other.hasNpcDialog()) {
          bitField0_ |= 0x00000002;
          npcDialog_ = other.npcDialog_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AddQuestLogEntry parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AddQuestLogEntry) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional string npc_name = 1;
      private java.lang.Object npcName_ = "";
      /**
       * optional string npc_name = 1;
       */
      public boolean hasNpcName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional string npc_name = 1;
       */
      public java.lang.String getNpcName() {
        java.lang.Object ref = npcName_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          npcName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string npc_name = 1;
       */
      public com.google.protobuf.ByteString
          getNpcNameBytes() {
        java.lang.Object ref = npcName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          npcName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string npc_name = 1;
       */
      public Builder setNpcName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        npcName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string npc_name = 1;
       */
      public Builder clearNpcName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        npcName_ = getDefaultInstance().getNpcName();
        onChanged();
        return this;
      }
      /**
       * optional string npc_name = 1;
       */
      public Builder setNpcNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        npcName_ = value;
        onChanged();
        return this;
      }

      // optional string npc_dialog = 2;
      private java.lang.Object npcDialog_ = "";
      /**
       * optional string npc_dialog = 2;
       */
      public boolean hasNpcDialog() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional string npc_dialog = 2;
       */
      public java.lang.String getNpcDialog() {
        java.lang.Object ref = npcDialog_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          npcDialog_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string npc_dialog = 2;
       */
      public com.google.protobuf.ByteString
          getNpcDialogBytes() {
        java.lang.Object ref = npcDialog_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          npcDialog_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string npc_dialog = 2;
       */
      public Builder setNpcDialog(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        npcDialog_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string npc_dialog = 2;
       */
      public Builder clearNpcDialog() {
        bitField0_ = (bitField0_ & ~0x00000002);
        npcDialog_ = getDefaultInstance().getNpcDialog();
        onChanged();
        return this;
      }
      /**
       * optional string npc_dialog = 2;
       */
      public Builder setNpcDialogBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        npcDialog_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_AddQuestLogEntry)
    }

    static {
      defaultInstance = new CDOTAUserMsg_AddQuestLogEntry(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_AddQuestLogEntry)
  }

  public interface CDOTAUserMsg_SendStatPopupOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional int32 player_id = 1;
    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    // optional .CDOTAMsg_SendStatPopup statpopup = 2;
    /**
     * optional .CDOTAMsg_SendStatPopup statpopup = 2;
     */
    boolean hasStatpopup();
    /**
     * optional .CDOTAMsg_SendStatPopup statpopup = 2;
     */
    com.dota2.proto.DotaCommonmessages.CDOTAMsg_SendStatPopup getStatpopup();
    /**
     * optional .CDOTAMsg_SendStatPopup statpopup = 2;
     */
    com.dota2.proto.DotaCommonmessages.CDOTAMsg_SendStatPopupOrBuilder getStatpopupOrBuilder();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_SendStatPopup}
   */
  public static final class CDOTAUserMsg_SendStatPopup extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_SendStatPopupOrBuilder {
    // Use CDOTAUserMsg_SendStatPopup.newBuilder() to construct.
    private CDOTAUserMsg_SendStatPopup(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_SendStatPopup(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_SendStatPopup defaultInstance;
    public static CDOTAUserMsg_SendStatPopup getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_SendStatPopup getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_SendStatPopup(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 18: {
              com.dota2.proto.DotaCommonmessages.CDOTAMsg_SendStatPopup.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = statpopup_.toBuilder();
              }
              statpopup_ = input.readMessage(com.dota2.proto.DotaCommonmessages.CDOTAMsg_SendStatPopup.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(statpopup_);
                statpopup_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SendStatPopup_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SendStatPopup_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendStatPopup.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendStatPopup.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_SendStatPopup parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_SendStatPopup(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional int32 player_id = 1;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    // optional .CDOTAMsg_SendStatPopup statpopup = 2;
    public static final int STATPOPUP_FIELD_NUMBER = 2;
    private com.dota2.proto.DotaCommonmessages.CDOTAMsg_SendStatPopup statpopup_;
    /**
     * optional .CDOTAMsg_SendStatPopup statpopup = 2;
     */
    public boolean hasStatpopup() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional .CDOTAMsg_SendStatPopup statpopup = 2;
     */
    public com.dota2.proto.DotaCommonmessages.CDOTAMsg_SendStatPopup getStatpopup() {
      return statpopup_;
    }
    /**
     * optional .CDOTAMsg_SendStatPopup statpopup = 2;
     */
    public com.dota2.proto.DotaCommonmessages.CDOTAMsg_SendStatPopupOrBuilder getStatpopupOrBuilder() {
      return statpopup_;
    }

    private void initFields() {
      playerId_ = 0;
      statpopup_ = com.dota2.proto.DotaCommonmessages.CDOTAMsg_SendStatPopup.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, statpopup_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, statpopup_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendStatPopup parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendStatPopup parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendStatPopup parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendStatPopup parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendStatPopup parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendStatPopup parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendStatPopup parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendStatPopup parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendStatPopup parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendStatPopup parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendStatPopup prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_SendStatPopup}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendStatPopupOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SendStatPopup_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SendStatPopup_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendStatPopup.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendStatPopup.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendStatPopup.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getStatpopupFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (statpopupBuilder_ == null) {
          statpopup_ = com.dota2.proto.DotaCommonmessages.CDOTAMsg_SendStatPopup.getDefaultInstance();
        } else {
          statpopupBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SendStatPopup_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendStatPopup getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendStatPopup.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendStatPopup build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendStatPopup result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendStatPopup buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendStatPopup result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendStatPopup(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (statpopupBuilder_ == null) {
          result.statpopup_ = statpopup_;
        } else {
          result.statpopup_ = statpopupBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendStatPopup) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendStatPopup)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendStatPopup other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendStatPopup.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasStatpopup()) {
          mergeStatpopup(other.getStatpopup());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendStatPopup parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendStatPopup) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional int32 player_id = 1;
      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      // optional .CDOTAMsg_SendStatPopup statpopup = 2;
      private com.dota2.proto.DotaCommonmessages.CDOTAMsg_SendStatPopup statpopup_ = com.dota2.proto.DotaCommonmessages.CDOTAMsg_SendStatPopup.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaCommonmessages.CDOTAMsg_SendStatPopup, com.dota2.proto.DotaCommonmessages.CDOTAMsg_SendStatPopup.Builder, com.dota2.proto.DotaCommonmessages.CDOTAMsg_SendStatPopupOrBuilder> statpopupBuilder_;
      /**
       * optional .CDOTAMsg_SendStatPopup statpopup = 2;
       */
      public boolean hasStatpopup() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .CDOTAMsg_SendStatPopup statpopup = 2;
       */
      public com.dota2.proto.DotaCommonmessages.CDOTAMsg_SendStatPopup getStatpopup() {
        if (statpopupBuilder_ == null) {
          return statpopup_;
        } else {
          return statpopupBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAMsg_SendStatPopup statpopup = 2;
       */
      public Builder setStatpopup(com.dota2.proto.DotaCommonmessages.CDOTAMsg_SendStatPopup value) {
        if (statpopupBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          statpopup_ = value;
          onChanged();
        } else {
          statpopupBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_SendStatPopup statpopup = 2;
       */
      public Builder setStatpopup(
          com.dota2.proto.DotaCommonmessages.CDOTAMsg_SendStatPopup.Builder builderForValue) {
        if (statpopupBuilder_ == null) {
          statpopup_ = builderForValue.build();
          onChanged();
        } else {
          statpopupBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_SendStatPopup statpopup = 2;
       */
      public Builder mergeStatpopup(com.dota2.proto.DotaCommonmessages.CDOTAMsg_SendStatPopup value) {
        if (statpopupBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              statpopup_ != com.dota2.proto.DotaCommonmessages.CDOTAMsg_SendStatPopup.getDefaultInstance()) {
            statpopup_ =
              com.dota2.proto.DotaCommonmessages.CDOTAMsg_SendStatPopup.newBuilder(statpopup_).mergeFrom(value).buildPartial();
          } else {
            statpopup_ = value;
          }
          onChanged();
        } else {
          statpopupBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_SendStatPopup statpopup = 2;
       */
      public Builder clearStatpopup() {
        if (statpopupBuilder_ == null) {
          statpopup_ = com.dota2.proto.DotaCommonmessages.CDOTAMsg_SendStatPopup.getDefaultInstance();
          onChanged();
        } else {
          statpopupBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * optional .CDOTAMsg_SendStatPopup statpopup = 2;
       */
      public com.dota2.proto.DotaCommonmessages.CDOTAMsg_SendStatPopup.Builder getStatpopupBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getStatpopupFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAMsg_SendStatPopup statpopup = 2;
       */
      public com.dota2.proto.DotaCommonmessages.CDOTAMsg_SendStatPopupOrBuilder getStatpopupOrBuilder() {
        if (statpopupBuilder_ != null) {
          return statpopupBuilder_.getMessageOrBuilder();
        } else {
          return statpopup_;
        }
      }
      /**
       * optional .CDOTAMsg_SendStatPopup statpopup = 2;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaCommonmessages.CDOTAMsg_SendStatPopup, com.dota2.proto.DotaCommonmessages.CDOTAMsg_SendStatPopup.Builder, com.dota2.proto.DotaCommonmessages.CDOTAMsg_SendStatPopupOrBuilder> 
          getStatpopupFieldBuilder() {
        if (statpopupBuilder_ == null) {
          statpopupBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.dota2.proto.DotaCommonmessages.CDOTAMsg_SendStatPopup, com.dota2.proto.DotaCommonmessages.CDOTAMsg_SendStatPopup.Builder, com.dota2.proto.DotaCommonmessages.CDOTAMsg_SendStatPopupOrBuilder>(
                  statpopup_,
                  getParentForChildren(),
                  isClean());
          statpopup_ = null;
        }
        return statpopupBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_SendStatPopup)
    }

    static {
      defaultInstance = new CDOTAUserMsg_SendStatPopup(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_SendStatPopup)
  }

  public interface CDOTAUserMsg_SendRoshanPopupOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional bool reclaimed = 1;
    /**
     * optional bool reclaimed = 1;
     */
    boolean hasReclaimed();
    /**
     * optional bool reclaimed = 1;
     */
    boolean getReclaimed();

    // optional int32 gametime = 2;
    /**
     * optional int32 gametime = 2;
     */
    boolean hasGametime();
    /**
     * optional int32 gametime = 2;
     */
    int getGametime();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_SendRoshanPopup}
   */
  public static final class CDOTAUserMsg_SendRoshanPopup extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_SendRoshanPopupOrBuilder {
    // Use CDOTAUserMsg_SendRoshanPopup.newBuilder() to construct.
    private CDOTAUserMsg_SendRoshanPopup(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_SendRoshanPopup(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_SendRoshanPopup defaultInstance;
    public static CDOTAUserMsg_SendRoshanPopup getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_SendRoshanPopup getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_SendRoshanPopup(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              reclaimed_ = input.readBool();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              gametime_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SendRoshanPopup_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SendRoshanPopup_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendRoshanPopup.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendRoshanPopup.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_SendRoshanPopup parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_SendRoshanPopup(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional bool reclaimed = 1;
    public static final int RECLAIMED_FIELD_NUMBER = 1;
    private boolean reclaimed_;
    /**
     * optional bool reclaimed = 1;
     */
    public boolean hasReclaimed() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional bool reclaimed = 1;
     */
    public boolean getReclaimed() {
      return reclaimed_;
    }

    // optional int32 gametime = 2;
    public static final int GAMETIME_FIELD_NUMBER = 2;
    private int gametime_;
    /**
     * optional int32 gametime = 2;
     */
    public boolean hasGametime() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 gametime = 2;
     */
    public int getGametime() {
      return gametime_;
    }

    private void initFields() {
      reclaimed_ = false;
      gametime_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBool(1, reclaimed_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, gametime_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1, reclaimed_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, gametime_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendRoshanPopup parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendRoshanPopup parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendRoshanPopup parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendRoshanPopup parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendRoshanPopup parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendRoshanPopup parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendRoshanPopup parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendRoshanPopup parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendRoshanPopup parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendRoshanPopup parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendRoshanPopup prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_SendRoshanPopup}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendRoshanPopupOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SendRoshanPopup_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SendRoshanPopup_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendRoshanPopup.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendRoshanPopup.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendRoshanPopup.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        reclaimed_ = false;
        bitField0_ = (bitField0_ & ~0x00000001);
        gametime_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SendRoshanPopup_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendRoshanPopup getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendRoshanPopup.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendRoshanPopup build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendRoshanPopup result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendRoshanPopup buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendRoshanPopup result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendRoshanPopup(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.reclaimed_ = reclaimed_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.gametime_ = gametime_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendRoshanPopup) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendRoshanPopup)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendRoshanPopup other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendRoshanPopup.getDefaultInstance()) return this;
        if (other.hasReclaimed()) {
          setReclaimed(other.getReclaimed());
        }
        if (other.hasGametime()) {
          setGametime(other.getGametime());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendRoshanPopup parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendRoshanPopup) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional bool reclaimed = 1;
      private boolean reclaimed_ ;
      /**
       * optional bool reclaimed = 1;
       */
      public boolean hasReclaimed() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional bool reclaimed = 1;
       */
      public boolean getReclaimed() {
        return reclaimed_;
      }
      /**
       * optional bool reclaimed = 1;
       */
      public Builder setReclaimed(boolean value) {
        bitField0_ |= 0x00000001;
        reclaimed_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool reclaimed = 1;
       */
      public Builder clearReclaimed() {
        bitField0_ = (bitField0_ & ~0x00000001);
        reclaimed_ = false;
        onChanged();
        return this;
      }

      // optional int32 gametime = 2;
      private int gametime_ ;
      /**
       * optional int32 gametime = 2;
       */
      public boolean hasGametime() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 gametime = 2;
       */
      public int getGametime() {
        return gametime_;
      }
      /**
       * optional int32 gametime = 2;
       */
      public Builder setGametime(int value) {
        bitField0_ |= 0x00000002;
        gametime_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 gametime = 2;
       */
      public Builder clearGametime() {
        bitField0_ = (bitField0_ & ~0x00000002);
        gametime_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_SendRoshanPopup)
    }

    static {
      defaultInstance = new CDOTAUserMsg_SendRoshanPopup(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_SendRoshanPopup)
  }

  public interface CDOTAUserMsg_SendFinalGoldOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // repeated uint32 reliable_gold = 1;
    /**
     * repeated uint32 reliable_gold = 1;
     */
    java.util.List getReliableGoldList();
    /**
     * repeated uint32 reliable_gold = 1;
     */
    int getReliableGoldCount();
    /**
     * repeated uint32 reliable_gold = 1;
     */
    int getReliableGold(int index);

    // repeated uint32 unreliable_gold = 2;
    /**
     * repeated uint32 unreliable_gold = 2;
     */
    java.util.List getUnreliableGoldList();
    /**
     * repeated uint32 unreliable_gold = 2;
     */
    int getUnreliableGoldCount();
    /**
     * repeated uint32 unreliable_gold = 2;
     */
    int getUnreliableGold(int index);
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_SendFinalGold}
   */
  public static final class CDOTAUserMsg_SendFinalGold extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_SendFinalGoldOrBuilder {
    // Use CDOTAUserMsg_SendFinalGold.newBuilder() to construct.
    private CDOTAUserMsg_SendFinalGold(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_SendFinalGold(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_SendFinalGold defaultInstance;
    public static CDOTAUserMsg_SendFinalGold getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_SendFinalGold getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_SendFinalGold(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                reliableGold_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              reliableGold_.add(input.readUInt32());
              break;
            }
            case 10: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001) && input.getBytesUntilLimit() > 0) {
                reliableGold_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              while (input.getBytesUntilLimit() > 0) {
                reliableGold_.add(input.readUInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 16: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                unreliableGold_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              unreliableGold_.add(input.readUInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002) && input.getBytesUntilLimit() > 0) {
                unreliableGold_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              while (input.getBytesUntilLimit() > 0) {
                unreliableGold_.add(input.readUInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          reliableGold_ = java.util.Collections.unmodifiableList(reliableGold_);
        }
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          unreliableGold_ = java.util.Collections.unmodifiableList(unreliableGold_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SendFinalGold_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SendFinalGold_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendFinalGold.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendFinalGold.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_SendFinalGold parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_SendFinalGold(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    // repeated uint32 reliable_gold = 1;
    public static final int RELIABLE_GOLD_FIELD_NUMBER = 1;
    private java.util.List reliableGold_;
    /**
     * repeated uint32 reliable_gold = 1;
     */
    public java.util.List
        getReliableGoldList() {
      return reliableGold_;
    }
    /**
     * repeated uint32 reliable_gold = 1;
     */
    public int getReliableGoldCount() {
      return reliableGold_.size();
    }
    /**
     * repeated uint32 reliable_gold = 1;
     */
    public int getReliableGold(int index) {
      return reliableGold_.get(index);
    }

    // repeated uint32 unreliable_gold = 2;
    public static final int UNRELIABLE_GOLD_FIELD_NUMBER = 2;
    private java.util.List unreliableGold_;
    /**
     * repeated uint32 unreliable_gold = 2;
     */
    public java.util.List
        getUnreliableGoldList() {
      return unreliableGold_;
    }
    /**
     * repeated uint32 unreliable_gold = 2;
     */
    public int getUnreliableGoldCount() {
      return unreliableGold_.size();
    }
    /**
     * repeated uint32 unreliable_gold = 2;
     */
    public int getUnreliableGold(int index) {
      return unreliableGold_.get(index);
    }

    private void initFields() {
      reliableGold_ = java.util.Collections.emptyList();
      unreliableGold_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < reliableGold_.size(); i++) {
        output.writeUInt32(1, reliableGold_.get(i));
      }
      for (int i = 0; i < unreliableGold_.size(); i++) {
        output.writeUInt32(2, unreliableGold_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < reliableGold_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(reliableGold_.get(i));
        }
        size += dataSize;
        size += 1 * getReliableGoldList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < unreliableGold_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(unreliableGold_.get(i));
        }
        size += dataSize;
        size += 1 * getUnreliableGoldList().size();
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendFinalGold parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendFinalGold parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendFinalGold parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendFinalGold parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendFinalGold parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendFinalGold parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendFinalGold parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendFinalGold parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendFinalGold parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendFinalGold parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendFinalGold prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_SendFinalGold}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendFinalGoldOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SendFinalGold_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SendFinalGold_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendFinalGold.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendFinalGold.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendFinalGold.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        reliableGold_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        unreliableGold_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_SendFinalGold_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendFinalGold getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendFinalGold.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendFinalGold build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendFinalGold result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendFinalGold buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendFinalGold result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendFinalGold(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          reliableGold_ = java.util.Collections.unmodifiableList(reliableGold_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.reliableGold_ = reliableGold_;
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          unreliableGold_ = java.util.Collections.unmodifiableList(unreliableGold_);
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.unreliableGold_ = unreliableGold_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendFinalGold) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendFinalGold)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendFinalGold other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendFinalGold.getDefaultInstance()) return this;
        if (!other.reliableGold_.isEmpty()) {
          if (reliableGold_.isEmpty()) {
            reliableGold_ = other.reliableGold_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureReliableGoldIsMutable();
            reliableGold_.addAll(other.reliableGold_);
          }
          onChanged();
        }
        if (!other.unreliableGold_.isEmpty()) {
          if (unreliableGold_.isEmpty()) {
            unreliableGold_ = other.unreliableGold_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureUnreliableGoldIsMutable();
            unreliableGold_.addAll(other.unreliableGold_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendFinalGold parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_SendFinalGold) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // repeated uint32 reliable_gold = 1;
      private java.util.List reliableGold_ = java.util.Collections.emptyList();
      private void ensureReliableGoldIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          reliableGold_ = new java.util.ArrayList(reliableGold_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * repeated uint32 reliable_gold = 1;
       */
      public java.util.List
          getReliableGoldList() {
        return java.util.Collections.unmodifiableList(reliableGold_);
      }
      /**
       * repeated uint32 reliable_gold = 1;
       */
      public int getReliableGoldCount() {
        return reliableGold_.size();
      }
      /**
       * repeated uint32 reliable_gold = 1;
       */
      public int getReliableGold(int index) {
        return reliableGold_.get(index);
      }
      /**
       * repeated uint32 reliable_gold = 1;
       */
      public Builder setReliableGold(
          int index, int value) {
        ensureReliableGoldIsMutable();
        reliableGold_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated uint32 reliable_gold = 1;
       */
      public Builder addReliableGold(int value) {
        ensureReliableGoldIsMutable();
        reliableGold_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated uint32 reliable_gold = 1;
       */
      public Builder addAllReliableGold(
          java.lang.Iterable values) {
        ensureReliableGoldIsMutable();
        super.addAll(values, reliableGold_);
        onChanged();
        return this;
      }
      /**
       * repeated uint32 reliable_gold = 1;
       */
      public Builder clearReliableGold() {
        reliableGold_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }

      // repeated uint32 unreliable_gold = 2;
      private java.util.List unreliableGold_ = java.util.Collections.emptyList();
      private void ensureUnreliableGoldIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          unreliableGold_ = new java.util.ArrayList(unreliableGold_);
          bitField0_ |= 0x00000002;
         }
      }
      /**
       * repeated uint32 unreliable_gold = 2;
       */
      public java.util.List
          getUnreliableGoldList() {
        return java.util.Collections.unmodifiableList(unreliableGold_);
      }
      /**
       * repeated uint32 unreliable_gold = 2;
       */
      public int getUnreliableGoldCount() {
        return unreliableGold_.size();
      }
      /**
       * repeated uint32 unreliable_gold = 2;
       */
      public int getUnreliableGold(int index) {
        return unreliableGold_.get(index);
      }
      /**
       * repeated uint32 unreliable_gold = 2;
       */
      public Builder setUnreliableGold(
          int index, int value) {
        ensureUnreliableGoldIsMutable();
        unreliableGold_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated uint32 unreliable_gold = 2;
       */
      public Builder addUnreliableGold(int value) {
        ensureUnreliableGoldIsMutable();
        unreliableGold_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated uint32 unreliable_gold = 2;
       */
      public Builder addAllUnreliableGold(
          java.lang.Iterable values) {
        ensureUnreliableGoldIsMutable();
        super.addAll(values, unreliableGold_);
        onChanged();
        return this;
      }
      /**
       * repeated uint32 unreliable_gold = 2;
       */
      public Builder clearUnreliableGold() {
        unreliableGold_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_SendFinalGold)
    }

    static {
      defaultInstance = new CDOTAUserMsg_SendFinalGold(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_SendFinalGold)
  }

  public interface CDOTAUserMsg_CustomMsgOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional string message = 1;
    /**
     * optional string message = 1;
     */
    boolean hasMessage();
    /**
     * optional string message = 1;
     */
    java.lang.String getMessage();
    /**
     * optional string message = 1;
     */
    com.google.protobuf.ByteString
        getMessageBytes();

    // optional int32 player_id = 2;
    /**
     * optional int32 player_id = 2;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 2;
     */
    int getPlayerId();

    // optional int32 value = 3;
    /**
     * optional int32 value = 3;
     */
    boolean hasValue();
    /**
     * optional int32 value = 3;
     */
    int getValue();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_CustomMsg}
   */
  public static final class CDOTAUserMsg_CustomMsg extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_CustomMsgOrBuilder {
    // Use CDOTAUserMsg_CustomMsg.newBuilder() to construct.
    private CDOTAUserMsg_CustomMsg(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_CustomMsg(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_CustomMsg defaultInstance;
    public static CDOTAUserMsg_CustomMsg getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_CustomMsg getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_CustomMsg(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              message_ = input.readBytes();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              value_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_CustomMsg_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_CustomMsg_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CustomMsg.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CustomMsg.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_CustomMsg parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_CustomMsg(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional string message = 1;
    public static final int MESSAGE_FIELD_NUMBER = 1;
    private java.lang.Object message_;
    /**
     * optional string message = 1;
     */
    public boolean hasMessage() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional string message = 1;
     */
    public java.lang.String getMessage() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          message_ = s;
        }
        return s;
      }
    }
    /**
     * optional string message = 1;
     */
    public com.google.protobuf.ByteString
        getMessageBytes() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        message_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional int32 player_id = 2;
    public static final int PLAYER_ID_FIELD_NUMBER = 2;
    private int playerId_;
    /**
     * optional int32 player_id = 2;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 player_id = 2;
     */
    public int getPlayerId() {
      return playerId_;
    }

    // optional int32 value = 3;
    public static final int VALUE_FIELD_NUMBER = 3;
    private int value_;
    /**
     * optional int32 value = 3;
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 value = 3;
     */
    public int getValue() {
      return value_;
    }

    private void initFields() {
      message_ = "";
      playerId_ = 0;
      value_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getMessageBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, value_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getMessageBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, value_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CustomMsg parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CustomMsg parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CustomMsg parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CustomMsg parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CustomMsg parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CustomMsg parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CustomMsg parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CustomMsg parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CustomMsg parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CustomMsg parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CustomMsg prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_CustomMsg}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CustomMsgOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_CustomMsg_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_CustomMsg_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CustomMsg.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CustomMsg.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CustomMsg.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        message_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        value_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_CustomMsg_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CustomMsg getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CustomMsg.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CustomMsg build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CustomMsg result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CustomMsg buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CustomMsg result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CustomMsg(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.message_ = message_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.value_ = value_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CustomMsg) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CustomMsg)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CustomMsg other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CustomMsg.getDefaultInstance()) return this;
        if (other.hasMessage()) {
          bitField0_ |= 0x00000001;
          message_ = other.message_;
          onChanged();
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasValue()) {
          setValue(other.getValue());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CustomMsg parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CustomMsg) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional string message = 1;
      private java.lang.Object message_ = "";
      /**
       * optional string message = 1;
       */
      public boolean hasMessage() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional string message = 1;
       */
      public java.lang.String getMessage() {
        java.lang.Object ref = message_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          message_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string message = 1;
       */
      public com.google.protobuf.ByteString
          getMessageBytes() {
        java.lang.Object ref = message_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          message_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string message = 1;
       */
      public Builder setMessage(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        message_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string message = 1;
       */
      public Builder clearMessage() {
        bitField0_ = (bitField0_ & ~0x00000001);
        message_ = getDefaultInstance().getMessage();
        onChanged();
        return this;
      }
      /**
       * optional string message = 1;
       */
      public Builder setMessageBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        message_ = value;
        onChanged();
        return this;
      }

      // optional int32 player_id = 2;
      private int playerId_ ;
      /**
       * optional int32 player_id = 2;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 player_id = 2;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 2;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 2;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        onChanged();
        return this;
      }

      // optional int32 value = 3;
      private int value_ ;
      /**
       * optional int32 value = 3;
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 value = 3;
       */
      public int getValue() {
        return value_;
      }
      /**
       * optional int32 value = 3;
       */
      public Builder setValue(int value) {
        bitField0_ |= 0x00000004;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 value = 3;
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000004);
        value_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_CustomMsg)
    }

    static {
      defaultInstance = new CDOTAUserMsg_CustomMsg(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_CustomMsg)
  }

  public interface CDOTAUserMsg_CoachHUDPingOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional uint32 player_id = 1;
    /**
     * optional uint32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional uint32 player_id = 1;
     */
    int getPlayerId();

    // optional .CDOTAMsg_CoachHUDPing hud_ping = 2;
    /**
     * optional .CDOTAMsg_CoachHUDPing hud_ping = 2;
     */
    boolean hasHudPing();
    /**
     * optional .CDOTAMsg_CoachHUDPing hud_ping = 2;
     */
    com.dota2.proto.DotaCommonmessages.CDOTAMsg_CoachHUDPing getHudPing();
    /**
     * optional .CDOTAMsg_CoachHUDPing hud_ping = 2;
     */
    com.dota2.proto.DotaCommonmessages.CDOTAMsg_CoachHUDPingOrBuilder getHudPingOrBuilder();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_CoachHUDPing}
   */
  public static final class CDOTAUserMsg_CoachHUDPing extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_CoachHUDPingOrBuilder {
    // Use CDOTAUserMsg_CoachHUDPing.newBuilder() to construct.
    private CDOTAUserMsg_CoachHUDPing(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_CoachHUDPing(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_CoachHUDPing defaultInstance;
    public static CDOTAUserMsg_CoachHUDPing getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_CoachHUDPing getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_CoachHUDPing(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
            case 18: {
              com.dota2.proto.DotaCommonmessages.CDOTAMsg_CoachHUDPing.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = hudPing_.toBuilder();
              }
              hudPing_ = input.readMessage(com.dota2.proto.DotaCommonmessages.CDOTAMsg_CoachHUDPing.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(hudPing_);
                hudPing_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_CoachHUDPing_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_CoachHUDPing_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CoachHUDPing.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CoachHUDPing.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_CoachHUDPing parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_CoachHUDPing(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional uint32 player_id = 1;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional uint32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    // optional .CDOTAMsg_CoachHUDPing hud_ping = 2;
    public static final int HUD_PING_FIELD_NUMBER = 2;
    private com.dota2.proto.DotaCommonmessages.CDOTAMsg_CoachHUDPing hudPing_;
    /**
     * optional .CDOTAMsg_CoachHUDPing hud_ping = 2;
     */
    public boolean hasHudPing() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional .CDOTAMsg_CoachHUDPing hud_ping = 2;
     */
    public com.dota2.proto.DotaCommonmessages.CDOTAMsg_CoachHUDPing getHudPing() {
      return hudPing_;
    }
    /**
     * optional .CDOTAMsg_CoachHUDPing hud_ping = 2;
     */
    public com.dota2.proto.DotaCommonmessages.CDOTAMsg_CoachHUDPingOrBuilder getHudPingOrBuilder() {
      return hudPing_;
    }

    private void initFields() {
      playerId_ = 0;
      hudPing_ = com.dota2.proto.DotaCommonmessages.CDOTAMsg_CoachHUDPing.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, hudPing_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, hudPing_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CoachHUDPing parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CoachHUDPing parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CoachHUDPing parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CoachHUDPing parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CoachHUDPing parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CoachHUDPing parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CoachHUDPing parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CoachHUDPing parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CoachHUDPing parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CoachHUDPing parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CoachHUDPing prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_CoachHUDPing}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CoachHUDPingOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_CoachHUDPing_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_CoachHUDPing_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CoachHUDPing.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CoachHUDPing.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CoachHUDPing.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getHudPingFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (hudPingBuilder_ == null) {
          hudPing_ = com.dota2.proto.DotaCommonmessages.CDOTAMsg_CoachHUDPing.getDefaultInstance();
        } else {
          hudPingBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_CoachHUDPing_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CoachHUDPing getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CoachHUDPing.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CoachHUDPing build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CoachHUDPing result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CoachHUDPing buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CoachHUDPing result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CoachHUDPing(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (hudPingBuilder_ == null) {
          result.hudPing_ = hudPing_;
        } else {
          result.hudPing_ = hudPingBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CoachHUDPing) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CoachHUDPing)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CoachHUDPing other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CoachHUDPing.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasHudPing()) {
          mergeHudPing(other.getHudPing());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CoachHUDPing parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CoachHUDPing) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional uint32 player_id = 1;
      private int playerId_ ;
      /**
       * optional uint32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      // optional .CDOTAMsg_CoachHUDPing hud_ping = 2;
      private com.dota2.proto.DotaCommonmessages.CDOTAMsg_CoachHUDPing hudPing_ = com.dota2.proto.DotaCommonmessages.CDOTAMsg_CoachHUDPing.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaCommonmessages.CDOTAMsg_CoachHUDPing, com.dota2.proto.DotaCommonmessages.CDOTAMsg_CoachHUDPing.Builder, com.dota2.proto.DotaCommonmessages.CDOTAMsg_CoachHUDPingOrBuilder> hudPingBuilder_;
      /**
       * optional .CDOTAMsg_CoachHUDPing hud_ping = 2;
       */
      public boolean hasHudPing() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .CDOTAMsg_CoachHUDPing hud_ping = 2;
       */
      public com.dota2.proto.DotaCommonmessages.CDOTAMsg_CoachHUDPing getHudPing() {
        if (hudPingBuilder_ == null) {
          return hudPing_;
        } else {
          return hudPingBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAMsg_CoachHUDPing hud_ping = 2;
       */
      public Builder setHudPing(com.dota2.proto.DotaCommonmessages.CDOTAMsg_CoachHUDPing value) {
        if (hudPingBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          hudPing_ = value;
          onChanged();
        } else {
          hudPingBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_CoachHUDPing hud_ping = 2;
       */
      public Builder setHudPing(
          com.dota2.proto.DotaCommonmessages.CDOTAMsg_CoachHUDPing.Builder builderForValue) {
        if (hudPingBuilder_ == null) {
          hudPing_ = builderForValue.build();
          onChanged();
        } else {
          hudPingBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_CoachHUDPing hud_ping = 2;
       */
      public Builder mergeHudPing(com.dota2.proto.DotaCommonmessages.CDOTAMsg_CoachHUDPing value) {
        if (hudPingBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              hudPing_ != com.dota2.proto.DotaCommonmessages.CDOTAMsg_CoachHUDPing.getDefaultInstance()) {
            hudPing_ =
              com.dota2.proto.DotaCommonmessages.CDOTAMsg_CoachHUDPing.newBuilder(hudPing_).mergeFrom(value).buildPartial();
          } else {
            hudPing_ = value;
          }
          onChanged();
        } else {
          hudPingBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_CoachHUDPing hud_ping = 2;
       */
      public Builder clearHudPing() {
        if (hudPingBuilder_ == null) {
          hudPing_ = com.dota2.proto.DotaCommonmessages.CDOTAMsg_CoachHUDPing.getDefaultInstance();
          onChanged();
        } else {
          hudPingBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * optional .CDOTAMsg_CoachHUDPing hud_ping = 2;
       */
      public com.dota2.proto.DotaCommonmessages.CDOTAMsg_CoachHUDPing.Builder getHudPingBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getHudPingFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAMsg_CoachHUDPing hud_ping = 2;
       */
      public com.dota2.proto.DotaCommonmessages.CDOTAMsg_CoachHUDPingOrBuilder getHudPingOrBuilder() {
        if (hudPingBuilder_ != null) {
          return hudPingBuilder_.getMessageOrBuilder();
        } else {
          return hudPing_;
        }
      }
      /**
       * optional .CDOTAMsg_CoachHUDPing hud_ping = 2;
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.dota2.proto.DotaCommonmessages.CDOTAMsg_CoachHUDPing, com.dota2.proto.DotaCommonmessages.CDOTAMsg_CoachHUDPing.Builder, com.dota2.proto.DotaCommonmessages.CDOTAMsg_CoachHUDPingOrBuilder> 
          getHudPingFieldBuilder() {
        if (hudPingBuilder_ == null) {
          hudPingBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.dota2.proto.DotaCommonmessages.CDOTAMsg_CoachHUDPing, com.dota2.proto.DotaCommonmessages.CDOTAMsg_CoachHUDPing.Builder, com.dota2.proto.DotaCommonmessages.CDOTAMsg_CoachHUDPingOrBuilder>(
                  hudPing_,
                  getParentForChildren(),
                  isClean());
          hudPing_ = null;
        }
        return hudPingBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_CoachHUDPing)
    }

    static {
      defaultInstance = new CDOTAUserMsg_CoachHUDPing(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_CoachHUDPing)
  }

  public interface CDOTAUserMsg_ClientLoadGridNavOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ClientLoadGridNav}
   */
  public static final class CDOTAUserMsg_ClientLoadGridNav extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_ClientLoadGridNavOrBuilder {
    // Use CDOTAUserMsg_ClientLoadGridNav.newBuilder() to construct.
    private CDOTAUserMsg_ClientLoadGridNav(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ClientLoadGridNav(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ClientLoadGridNav defaultInstance;
    public static CDOTAUserMsg_ClientLoadGridNav getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ClientLoadGridNav getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ClientLoadGridNav(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ClientLoadGridNav_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ClientLoadGridNav_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ClientLoadGridNav.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ClientLoadGridNav.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ClientLoadGridNav parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ClientLoadGridNav(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private void initFields() {
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ClientLoadGridNav parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ClientLoadGridNav parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ClientLoadGridNav parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ClientLoadGridNav parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ClientLoadGridNav parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ClientLoadGridNav parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ClientLoadGridNav parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ClientLoadGridNav parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ClientLoadGridNav parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ClientLoadGridNav parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ClientLoadGridNav prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ClientLoadGridNav}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ClientLoadGridNavOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ClientLoadGridNav_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ClientLoadGridNav_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ClientLoadGridNav.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ClientLoadGridNav.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ClientLoadGridNav.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ClientLoadGridNav_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ClientLoadGridNav getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ClientLoadGridNav.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ClientLoadGridNav build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ClientLoadGridNav result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ClientLoadGridNav buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ClientLoadGridNav result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ClientLoadGridNav(this);
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ClientLoadGridNav) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ClientLoadGridNav)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ClientLoadGridNav other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ClientLoadGridNav.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ClientLoadGridNav parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ClientLoadGridNav) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ClientLoadGridNav)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ClientLoadGridNav(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ClientLoadGridNav)
  }

  public interface CDOTAUserMsg_AbilityPingOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional uint32 player_id = 1;
    /**
     * optional uint32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional uint32 player_id = 1;
     */
    int getPlayerId();

    // optional uint32 ability_id = 2;
    /**
     * optional uint32 ability_id = 2;
     */
    boolean hasAbilityId();
    /**
     * optional uint32 ability_id = 2;
     */
    int getAbilityId();

    // optional .DOTA_ABILITY_PING_TYPE type = 3 [default = ABILITY_PING_READY];
    /**
     * optional .DOTA_ABILITY_PING_TYPE type = 3 [default = ABILITY_PING_READY];
     */
    boolean hasType();
    /**
     * optional .DOTA_ABILITY_PING_TYPE type = 3 [default = ABILITY_PING_READY];
     */
    com.dota2.proto.DotaUsermessages.DOTA_ABILITY_PING_TYPE getType();

    // optional uint32 cooldown_seconds = 4;
    /**
     * optional uint32 cooldown_seconds = 4;
     */
    boolean hasCooldownSeconds();
    /**
     * optional uint32 cooldown_seconds = 4;
     */
    int getCooldownSeconds();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_AbilityPing}
   */
  public static final class CDOTAUserMsg_AbilityPing extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_AbilityPingOrBuilder {
    // Use CDOTAUserMsg_AbilityPing.newBuilder() to construct.
    private CDOTAUserMsg_AbilityPing(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_AbilityPing(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_AbilityPing defaultInstance;
    public static CDOTAUserMsg_AbilityPing getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_AbilityPing getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_AbilityPing(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              abilityId_ = input.readUInt32();
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              com.dota2.proto.DotaUsermessages.DOTA_ABILITY_PING_TYPE value = com.dota2.proto.DotaUsermessages.DOTA_ABILITY_PING_TYPE.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                bitField0_ |= 0x00000004;
                type_ = value;
              }
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              cooldownSeconds_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_AbilityPing_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_AbilityPing_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilityPing.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilityPing.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_AbilityPing parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_AbilityPing(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional uint32 player_id = 1;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional uint32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    // optional uint32 ability_id = 2;
    public static final int ABILITY_ID_FIELD_NUMBER = 2;
    private int abilityId_;
    /**
     * optional uint32 ability_id = 2;
     */
    public boolean hasAbilityId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 ability_id = 2;
     */
    public int getAbilityId() {
      return abilityId_;
    }

    // optional .DOTA_ABILITY_PING_TYPE type = 3 [default = ABILITY_PING_READY];
    public static final int TYPE_FIELD_NUMBER = 3;
    private com.dota2.proto.DotaUsermessages.DOTA_ABILITY_PING_TYPE type_;
    /**
     * optional .DOTA_ABILITY_PING_TYPE type = 3 [default = ABILITY_PING_READY];
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional .DOTA_ABILITY_PING_TYPE type = 3 [default = ABILITY_PING_READY];
     */
    public com.dota2.proto.DotaUsermessages.DOTA_ABILITY_PING_TYPE getType() {
      return type_;
    }

    // optional uint32 cooldown_seconds = 4;
    public static final int COOLDOWN_SECONDS_FIELD_NUMBER = 4;
    private int cooldownSeconds_;
    /**
     * optional uint32 cooldown_seconds = 4;
     */
    public boolean hasCooldownSeconds() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 cooldown_seconds = 4;
     */
    public int getCooldownSeconds() {
      return cooldownSeconds_;
    }

    private void initFields() {
      playerId_ = 0;
      abilityId_ = 0;
      type_ = com.dota2.proto.DotaUsermessages.DOTA_ABILITY_PING_TYPE.ABILITY_PING_READY;
      cooldownSeconds_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, abilityId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeEnum(3, type_.getNumber());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, cooldownSeconds_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, abilityId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, type_.getNumber());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, cooldownSeconds_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilityPing parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilityPing parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilityPing parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilityPing parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilityPing parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilityPing parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilityPing parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilityPing parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilityPing parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilityPing parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilityPing prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_AbilityPing}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilityPingOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_AbilityPing_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_AbilityPing_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilityPing.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilityPing.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilityPing.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        abilityId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        type_ = com.dota2.proto.DotaUsermessages.DOTA_ABILITY_PING_TYPE.ABILITY_PING_READY;
        bitField0_ = (bitField0_ & ~0x00000004);
        cooldownSeconds_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_AbilityPing_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilityPing getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilityPing.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilityPing build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilityPing result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilityPing buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilityPing result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilityPing(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.abilityId_ = abilityId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.cooldownSeconds_ = cooldownSeconds_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilityPing) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilityPing)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilityPing other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilityPing.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasAbilityId()) {
          setAbilityId(other.getAbilityId());
        }
        if (other.hasType()) {
          setType(other.getType());
        }
        if (other.hasCooldownSeconds()) {
          setCooldownSeconds(other.getCooldownSeconds());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilityPing parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilityPing) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional uint32 player_id = 1;
      private int playerId_ ;
      /**
       * optional uint32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      // optional uint32 ability_id = 2;
      private int abilityId_ ;
      /**
       * optional uint32 ability_id = 2;
       */
      public boolean hasAbilityId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 ability_id = 2;
       */
      public int getAbilityId() {
        return abilityId_;
      }
      /**
       * optional uint32 ability_id = 2;
       */
      public Builder setAbilityId(int value) {
        bitField0_ |= 0x00000002;
        abilityId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 ability_id = 2;
       */
      public Builder clearAbilityId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        abilityId_ = 0;
        onChanged();
        return this;
      }

      // optional .DOTA_ABILITY_PING_TYPE type = 3 [default = ABILITY_PING_READY];
      private com.dota2.proto.DotaUsermessages.DOTA_ABILITY_PING_TYPE type_ = com.dota2.proto.DotaUsermessages.DOTA_ABILITY_PING_TYPE.ABILITY_PING_READY;
      /**
       * optional .DOTA_ABILITY_PING_TYPE type = 3 [default = ABILITY_PING_READY];
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional .DOTA_ABILITY_PING_TYPE type = 3 [default = ABILITY_PING_READY];
       */
      public com.dota2.proto.DotaUsermessages.DOTA_ABILITY_PING_TYPE getType() {
        return type_;
      }
      /**
       * optional .DOTA_ABILITY_PING_TYPE type = 3 [default = ABILITY_PING_READY];
       */
      public Builder setType(com.dota2.proto.DotaUsermessages.DOTA_ABILITY_PING_TYPE value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * optional .DOTA_ABILITY_PING_TYPE type = 3 [default = ABILITY_PING_READY];
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000004);
        type_ = com.dota2.proto.DotaUsermessages.DOTA_ABILITY_PING_TYPE.ABILITY_PING_READY;
        onChanged();
        return this;
      }

      // optional uint32 cooldown_seconds = 4;
      private int cooldownSeconds_ ;
      /**
       * optional uint32 cooldown_seconds = 4;
       */
      public boolean hasCooldownSeconds() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 cooldown_seconds = 4;
       */
      public int getCooldownSeconds() {
        return cooldownSeconds_;
      }
      /**
       * optional uint32 cooldown_seconds = 4;
       */
      public Builder setCooldownSeconds(int value) {
        bitField0_ |= 0x00000008;
        cooldownSeconds_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 cooldown_seconds = 4;
       */
      public Builder clearCooldownSeconds() {
        bitField0_ = (bitField0_ & ~0x00000008);
        cooldownSeconds_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_AbilityPing)
    }

    static {
      defaultInstance = new CDOTAUserMsg_AbilityPing(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_AbilityPing)
  }

  public interface CDOTAUserMsg_ShowGenericPopupOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // required string header = 1;
    /**
     * required string header = 1;
     */
    boolean hasHeader();
    /**
     * required string header = 1;
     */
    java.lang.String getHeader();
    /**
     * required string header = 1;
     */
    com.google.protobuf.ByteString
        getHeaderBytes();

    // required string body = 2;
    /**
     * required string body = 2;
     */
    boolean hasBody();
    /**
     * required string body = 2;
     */
    java.lang.String getBody();
    /**
     * required string body = 2;
     */
    com.google.protobuf.ByteString
        getBodyBytes();

    // optional string param1 = 3;
    /**
     * optional string param1 = 3;
     */
    boolean hasParam1();
    /**
     * optional string param1 = 3;
     */
    java.lang.String getParam1();
    /**
     * optional string param1 = 3;
     */
    com.google.protobuf.ByteString
        getParam1Bytes();

    // optional string param2 = 4;
    /**
     * optional string param2 = 4;
     */
    boolean hasParam2();
    /**
     * optional string param2 = 4;
     */
    java.lang.String getParam2();
    /**
     * optional string param2 = 4;
     */
    com.google.protobuf.ByteString
        getParam2Bytes();

    // optional bool tint_screen = 5;
    /**
     * optional bool tint_screen = 5;
     */
    boolean hasTintScreen();
    /**
     * optional bool tint_screen = 5;
     */
    boolean getTintScreen();

    // optional bool show_no_other_dialogs = 6;
    /**
     * optional bool show_no_other_dialogs = 6;
     */
    boolean hasShowNoOtherDialogs();
    /**
     * optional bool show_no_other_dialogs = 6;
     */
    boolean getShowNoOtherDialogs();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ShowGenericPopup}
   */
  public static final class CDOTAUserMsg_ShowGenericPopup extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_ShowGenericPopupOrBuilder {
    // Use CDOTAUserMsg_ShowGenericPopup.newBuilder() to construct.
    private CDOTAUserMsg_ShowGenericPopup(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ShowGenericPopup(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ShowGenericPopup defaultInstance;
    public static CDOTAUserMsg_ShowGenericPopup getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ShowGenericPopup getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ShowGenericPopup(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              header_ = input.readBytes();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              body_ = input.readBytes();
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              param1_ = input.readBytes();
              break;
            }
            case 34: {
              bitField0_ |= 0x00000008;
              param2_ = input.readBytes();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              tintScreen_ = input.readBool();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              showNoOtherDialogs_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ShowGenericPopup_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ShowGenericPopup_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowGenericPopup.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowGenericPopup.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ShowGenericPopup parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ShowGenericPopup(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // required string header = 1;
    public static final int HEADER_FIELD_NUMBER = 1;
    private java.lang.Object header_;
    /**
     * required string header = 1;
     */
    public boolean hasHeader() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required string header = 1;
     */
    public java.lang.String getHeader() {
      java.lang.Object ref = header_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          header_ = s;
        }
        return s;
      }
    }
    /**
     * required string header = 1;
     */
    public com.google.protobuf.ByteString
        getHeaderBytes() {
      java.lang.Object ref = header_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        header_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // required string body = 2;
    public static final int BODY_FIELD_NUMBER = 2;
    private java.lang.Object body_;
    /**
     * required string body = 2;
     */
    public boolean hasBody() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required string body = 2;
     */
    public java.lang.String getBody() {
      java.lang.Object ref = body_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          body_ = s;
        }
        return s;
      }
    }
    /**
     * required string body = 2;
     */
    public com.google.protobuf.ByteString
        getBodyBytes() {
      java.lang.Object ref = body_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        body_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional string param1 = 3;
    public static final int PARAM1_FIELD_NUMBER = 3;
    private java.lang.Object param1_;
    /**
     * optional string param1 = 3;
     */
    public boolean hasParam1() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional string param1 = 3;
     */
    public java.lang.String getParam1() {
      java.lang.Object ref = param1_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          param1_ = s;
        }
        return s;
      }
    }
    /**
     * optional string param1 = 3;
     */
    public com.google.protobuf.ByteString
        getParam1Bytes() {
      java.lang.Object ref = param1_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        param1_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional string param2 = 4;
    public static final int PARAM2_FIELD_NUMBER = 4;
    private java.lang.Object param2_;
    /**
     * optional string param2 = 4;
     */
    public boolean hasParam2() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional string param2 = 4;
     */
    public java.lang.String getParam2() {
      java.lang.Object ref = param2_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          param2_ = s;
        }
        return s;
      }
    }
    /**
     * optional string param2 = 4;
     */
    public com.google.protobuf.ByteString
        getParam2Bytes() {
      java.lang.Object ref = param2_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        param2_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional bool tint_screen = 5;
    public static final int TINT_SCREEN_FIELD_NUMBER = 5;
    private boolean tintScreen_;
    /**
     * optional bool tint_screen = 5;
     */
    public boolean hasTintScreen() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional bool tint_screen = 5;
     */
    public boolean getTintScreen() {
      return tintScreen_;
    }

    // optional bool show_no_other_dialogs = 6;
    public static final int SHOW_NO_OTHER_DIALOGS_FIELD_NUMBER = 6;
    private boolean showNoOtherDialogs_;
    /**
     * optional bool show_no_other_dialogs = 6;
     */
    public boolean hasShowNoOtherDialogs() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional bool show_no_other_dialogs = 6;
     */
    public boolean getShowNoOtherDialogs() {
      return showNoOtherDialogs_;
    }

    private void initFields() {
      header_ = "";
      body_ = "";
      param1_ = "";
      param2_ = "";
      tintScreen_ = false;
      showNoOtherDialogs_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasHeader()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasBody()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getHeaderBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getBodyBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getParam1Bytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBytes(4, getParam2Bytes());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBool(5, tintScreen_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeBool(6, showNoOtherDialogs_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getHeaderBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getBodyBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getParam1Bytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, getParam2Bytes());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, tintScreen_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(6, showNoOtherDialogs_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowGenericPopup parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowGenericPopup parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowGenericPopup parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowGenericPopup parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowGenericPopup parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowGenericPopup parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowGenericPopup parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowGenericPopup parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowGenericPopup parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowGenericPopup parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowGenericPopup prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ShowGenericPopup}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowGenericPopupOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ShowGenericPopup_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ShowGenericPopup_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowGenericPopup.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowGenericPopup.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowGenericPopup.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        header_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        body_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        param1_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        param2_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        tintScreen_ = false;
        bitField0_ = (bitField0_ & ~0x00000010);
        showNoOtherDialogs_ = false;
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_ShowGenericPopup_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowGenericPopup getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowGenericPopup.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowGenericPopup build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowGenericPopup result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowGenericPopup buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowGenericPopup result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowGenericPopup(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.header_ = header_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.body_ = body_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.param1_ = param1_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.param2_ = param2_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.tintScreen_ = tintScreen_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.showNoOtherDialogs_ = showNoOtherDialogs_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowGenericPopup) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowGenericPopup)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowGenericPopup other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowGenericPopup.getDefaultInstance()) return this;
        if (other.hasHeader()) {
          bitField0_ |= 0x00000001;
          header_ = other.header_;
          onChanged();
        }
        if (other.hasBody()) {
          bitField0_ |= 0x00000002;
          body_ = other.body_;
          onChanged();
        }
        if (other.hasParam1()) {
          bitField0_ |= 0x00000004;
          param1_ = other.param1_;
          onChanged();
        }
        if (other.hasParam2()) {
          bitField0_ |= 0x00000008;
          param2_ = other.param2_;
          onChanged();
        }
        if (other.hasTintScreen()) {
          setTintScreen(other.getTintScreen());
        }
        if (other.hasShowNoOtherDialogs()) {
          setShowNoOtherDialogs(other.getShowNoOtherDialogs());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasHeader()) {
          
          return false;
        }
        if (!hasBody()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowGenericPopup parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_ShowGenericPopup) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required string header = 1;
      private java.lang.Object header_ = "";
      /**
       * required string header = 1;
       */
      public boolean hasHeader() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required string header = 1;
       */
      public java.lang.String getHeader() {
        java.lang.Object ref = header_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          header_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * required string header = 1;
       */
      public com.google.protobuf.ByteString
          getHeaderBytes() {
        java.lang.Object ref = header_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          header_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * required string header = 1;
       */
      public Builder setHeader(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        header_ = value;
        onChanged();
        return this;
      }
      /**
       * required string header = 1;
       */
      public Builder clearHeader() {
        bitField0_ = (bitField0_ & ~0x00000001);
        header_ = getDefaultInstance().getHeader();
        onChanged();
        return this;
      }
      /**
       * required string header = 1;
       */
      public Builder setHeaderBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        header_ = value;
        onChanged();
        return this;
      }

      // required string body = 2;
      private java.lang.Object body_ = "";
      /**
       * required string body = 2;
       */
      public boolean hasBody() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required string body = 2;
       */
      public java.lang.String getBody() {
        java.lang.Object ref = body_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          body_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * required string body = 2;
       */
      public com.google.protobuf.ByteString
          getBodyBytes() {
        java.lang.Object ref = body_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          body_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * required string body = 2;
       */
      public Builder setBody(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        body_ = value;
        onChanged();
        return this;
      }
      /**
       * required string body = 2;
       */
      public Builder clearBody() {
        bitField0_ = (bitField0_ & ~0x00000002);
        body_ = getDefaultInstance().getBody();
        onChanged();
        return this;
      }
      /**
       * required string body = 2;
       */
      public Builder setBodyBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        body_ = value;
        onChanged();
        return this;
      }

      // optional string param1 = 3;
      private java.lang.Object param1_ = "";
      /**
       * optional string param1 = 3;
       */
      public boolean hasParam1() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional string param1 = 3;
       */
      public java.lang.String getParam1() {
        java.lang.Object ref = param1_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          param1_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string param1 = 3;
       */
      public com.google.protobuf.ByteString
          getParam1Bytes() {
        java.lang.Object ref = param1_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          param1_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string param1 = 3;
       */
      public Builder setParam1(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        param1_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string param1 = 3;
       */
      public Builder clearParam1() {
        bitField0_ = (bitField0_ & ~0x00000004);
        param1_ = getDefaultInstance().getParam1();
        onChanged();
        return this;
      }
      /**
       * optional string param1 = 3;
       */
      public Builder setParam1Bytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        param1_ = value;
        onChanged();
        return this;
      }

      // optional string param2 = 4;
      private java.lang.Object param2_ = "";
      /**
       * optional string param2 = 4;
       */
      public boolean hasParam2() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional string param2 = 4;
       */
      public java.lang.String getParam2() {
        java.lang.Object ref = param2_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          param2_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string param2 = 4;
       */
      public com.google.protobuf.ByteString
          getParam2Bytes() {
        java.lang.Object ref = param2_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          param2_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string param2 = 4;
       */
      public Builder setParam2(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        param2_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string param2 = 4;
       */
      public Builder clearParam2() {
        bitField0_ = (bitField0_ & ~0x00000008);
        param2_ = getDefaultInstance().getParam2();
        onChanged();
        return this;
      }
      /**
       * optional string param2 = 4;
       */
      public Builder setParam2Bytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        param2_ = value;
        onChanged();
        return this;
      }

      // optional bool tint_screen = 5;
      private boolean tintScreen_ ;
      /**
       * optional bool tint_screen = 5;
       */
      public boolean hasTintScreen() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional bool tint_screen = 5;
       */
      public boolean getTintScreen() {
        return tintScreen_;
      }
      /**
       * optional bool tint_screen = 5;
       */
      public Builder setTintScreen(boolean value) {
        bitField0_ |= 0x00000010;
        tintScreen_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool tint_screen = 5;
       */
      public Builder clearTintScreen() {
        bitField0_ = (bitField0_ & ~0x00000010);
        tintScreen_ = false;
        onChanged();
        return this;
      }

      // optional bool show_no_other_dialogs = 6;
      private boolean showNoOtherDialogs_ ;
      /**
       * optional bool show_no_other_dialogs = 6;
       */
      public boolean hasShowNoOtherDialogs() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional bool show_no_other_dialogs = 6;
       */
      public boolean getShowNoOtherDialogs() {
        return showNoOtherDialogs_;
      }
      /**
       * optional bool show_no_other_dialogs = 6;
       */
      public Builder setShowNoOtherDialogs(boolean value) {
        bitField0_ |= 0x00000020;
        showNoOtherDialogs_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool show_no_other_dialogs = 6;
       */
      public Builder clearShowNoOtherDialogs() {
        bitField0_ = (bitField0_ & ~0x00000020);
        showNoOtherDialogs_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ShowGenericPopup)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ShowGenericPopup(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ShowGenericPopup)
  }

  public interface CDOTAUserMsg_VoteStartOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional string title = 1;
    /**
     * optional string title = 1;
     */
    boolean hasTitle();
    /**
     * optional string title = 1;
     */
    java.lang.String getTitle();
    /**
     * optional string title = 1;
     */
    com.google.protobuf.ByteString
        getTitleBytes();

    // optional float duration = 2;
    /**
     * optional float duration = 2;
     */
    boolean hasDuration();
    /**
     * optional float duration = 2;
     */
    float getDuration();

    // optional int32 choice_count = 3;
    /**
     * optional int32 choice_count = 3;
     */
    boolean hasChoiceCount();
    /**
     * optional int32 choice_count = 3;
     */
    int getChoiceCount();

    // repeated string choices = 4;
    /**
     * repeated string choices = 4;
     */
    java.util.List
    getChoicesList();
    /**
     * repeated string choices = 4;
     */
    int getChoicesCount();
    /**
     * repeated string choices = 4;
     */
    java.lang.String getChoices(int index);
    /**
     * repeated string choices = 4;
     */
    com.google.protobuf.ByteString
        getChoicesBytes(int index);
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_VoteStart}
   */
  public static final class CDOTAUserMsg_VoteStart extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_VoteStartOrBuilder {
    // Use CDOTAUserMsg_VoteStart.newBuilder() to construct.
    private CDOTAUserMsg_VoteStart(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_VoteStart(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_VoteStart defaultInstance;
    public static CDOTAUserMsg_VoteStart getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_VoteStart getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_VoteStart(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              title_ = input.readBytes();
              break;
            }
            case 21: {
              bitField0_ |= 0x00000002;
              duration_ = input.readFloat();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              choiceCount_ = input.readInt32();
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                choices_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000008;
              }
              choices_.add(input.readBytes());
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
          choices_ = new com.google.protobuf.UnmodifiableLazyStringList(choices_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_VoteStart_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_VoteStart_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteStart.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteStart.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_VoteStart parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_VoteStart(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional string title = 1;
    public static final int TITLE_FIELD_NUMBER = 1;
    private java.lang.Object title_;
    /**
     * optional string title = 1;
     */
    public boolean hasTitle() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional string title = 1;
     */
    public java.lang.String getTitle() {
      java.lang.Object ref = title_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          title_ = s;
        }
        return s;
      }
    }
    /**
     * optional string title = 1;
     */
    public com.google.protobuf.ByteString
        getTitleBytes() {
      java.lang.Object ref = title_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        title_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional float duration = 2;
    public static final int DURATION_FIELD_NUMBER = 2;
    private float duration_;
    /**
     * optional float duration = 2;
     */
    public boolean hasDuration() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional float duration = 2;
     */
    public float getDuration() {
      return duration_;
    }

    // optional int32 choice_count = 3;
    public static final int CHOICE_COUNT_FIELD_NUMBER = 3;
    private int choiceCount_;
    /**
     * optional int32 choice_count = 3;
     */
    public boolean hasChoiceCount() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 choice_count = 3;
     */
    public int getChoiceCount() {
      return choiceCount_;
    }

    // repeated string choices = 4;
    public static final int CHOICES_FIELD_NUMBER = 4;
    private com.google.protobuf.LazyStringList choices_;
    /**
     * repeated string choices = 4;
     */
    public java.util.List
        getChoicesList() {
      return choices_;
    }
    /**
     * repeated string choices = 4;
     */
    public int getChoicesCount() {
      return choices_.size();
    }
    /**
     * repeated string choices = 4;
     */
    public java.lang.String getChoices(int index) {
      return choices_.get(index);
    }
    /**
     * repeated string choices = 4;
     */
    public com.google.protobuf.ByteString
        getChoicesBytes(int index) {
      return choices_.getByteString(index);
    }

    private void initFields() {
      title_ = "";
      duration_ = 0F;
      choiceCount_ = 0;
      choices_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getTitleBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeFloat(2, duration_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, choiceCount_);
      }
      for (int i = 0; i < choices_.size(); i++) {
        output.writeBytes(4, choices_.getByteString(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getTitleBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(2, duration_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, choiceCount_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < choices_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(choices_.getByteString(i));
        }
        size += dataSize;
        size += 1 * getChoicesList().size();
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteStart parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteStart parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteStart parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteStart parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteStart parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteStart parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteStart parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteStart parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteStart parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteStart parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteStart prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_VoteStart}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteStartOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_VoteStart_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_VoteStart_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteStart.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteStart.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteStart.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        title_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        duration_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000002);
        choiceCount_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        choices_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_VoteStart_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteStart getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteStart.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteStart build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteStart result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteStart buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteStart result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteStart(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.title_ = title_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.duration_ = duration_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.choiceCount_ = choiceCount_;
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          choices_ = new com.google.protobuf.UnmodifiableLazyStringList(
              choices_);
          bitField0_ = (bitField0_ & ~0x00000008);
        }
        result.choices_ = choices_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteStart) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteStart)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteStart other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteStart.getDefaultInstance()) return this;
        if (other.hasTitle()) {
          bitField0_ |= 0x00000001;
          title_ = other.title_;
          onChanged();
        }
        if (other.hasDuration()) {
          setDuration(other.getDuration());
        }
        if (other.hasChoiceCount()) {
          setChoiceCount(other.getChoiceCount());
        }
        if (!other.choices_.isEmpty()) {
          if (choices_.isEmpty()) {
            choices_ = other.choices_;
            bitField0_ = (bitField0_ & ~0x00000008);
          } else {
            ensureChoicesIsMutable();
            choices_.addAll(other.choices_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteStart parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteStart) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional string title = 1;
      private java.lang.Object title_ = "";
      /**
       * optional string title = 1;
       */
      public boolean hasTitle() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional string title = 1;
       */
      public java.lang.String getTitle() {
        java.lang.Object ref = title_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          title_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string title = 1;
       */
      public com.google.protobuf.ByteString
          getTitleBytes() {
        java.lang.Object ref = title_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          title_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string title = 1;
       */
      public Builder setTitle(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        title_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string title = 1;
       */
      public Builder clearTitle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        title_ = getDefaultInstance().getTitle();
        onChanged();
        return this;
      }
      /**
       * optional string title = 1;
       */
      public Builder setTitleBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        title_ = value;
        onChanged();
        return this;
      }

      // optional float duration = 2;
      private float duration_ ;
      /**
       * optional float duration = 2;
       */
      public boolean hasDuration() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional float duration = 2;
       */
      public float getDuration() {
        return duration_;
      }
      /**
       * optional float duration = 2;
       */
      public Builder setDuration(float value) {
        bitField0_ |= 0x00000002;
        duration_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float duration = 2;
       */
      public Builder clearDuration() {
        bitField0_ = (bitField0_ & ~0x00000002);
        duration_ = 0F;
        onChanged();
        return this;
      }

      // optional int32 choice_count = 3;
      private int choiceCount_ ;
      /**
       * optional int32 choice_count = 3;
       */
      public boolean hasChoiceCount() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 choice_count = 3;
       */
      public int getChoiceCount() {
        return choiceCount_;
      }
      /**
       * optional int32 choice_count = 3;
       */
      public Builder setChoiceCount(int value) {
        bitField0_ |= 0x00000004;
        choiceCount_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 choice_count = 3;
       */
      public Builder clearChoiceCount() {
        bitField0_ = (bitField0_ & ~0x00000004);
        choiceCount_ = 0;
        onChanged();
        return this;
      }

      // repeated string choices = 4;
      private com.google.protobuf.LazyStringList choices_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureChoicesIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          choices_ = new com.google.protobuf.LazyStringArrayList(choices_);
          bitField0_ |= 0x00000008;
         }
      }
      /**
       * repeated string choices = 4;
       */
      public java.util.List
          getChoicesList() {
        return java.util.Collections.unmodifiableList(choices_);
      }
      /**
       * repeated string choices = 4;
       */
      public int getChoicesCount() {
        return choices_.size();
      }
      /**
       * repeated string choices = 4;
       */
      public java.lang.String getChoices(int index) {
        return choices_.get(index);
      }
      /**
       * repeated string choices = 4;
       */
      public com.google.protobuf.ByteString
          getChoicesBytes(int index) {
        return choices_.getByteString(index);
      }
      /**
       * repeated string choices = 4;
       */
      public Builder setChoices(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureChoicesIsMutable();
        choices_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated string choices = 4;
       */
      public Builder addChoices(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureChoicesIsMutable();
        choices_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated string choices = 4;
       */
      public Builder addAllChoices(
          java.lang.Iterable values) {
        ensureChoicesIsMutable();
        super.addAll(values, choices_);
        onChanged();
        return this;
      }
      /**
       * repeated string choices = 4;
       */
      public Builder clearChoices() {
        choices_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * repeated string choices = 4;
       */
      public Builder addChoicesBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureChoicesIsMutable();
        choices_.add(value);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_VoteStart)
    }

    static {
      defaultInstance = new CDOTAUserMsg_VoteStart(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_VoteStart)
  }

  public interface CDOTAUserMsg_VoteUpdateOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // repeated int32 choice_counts = 1;
    /**
     * repeated int32 choice_counts = 1;
     */
    java.util.List getChoiceCountsList();
    /**
     * repeated int32 choice_counts = 1;
     */
    int getChoiceCountsCount();
    /**
     * repeated int32 choice_counts = 1;
     */
    int getChoiceCounts(int index);
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_VoteUpdate}
   */
  public static final class CDOTAUserMsg_VoteUpdate extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_VoteUpdateOrBuilder {
    // Use CDOTAUserMsg_VoteUpdate.newBuilder() to construct.
    private CDOTAUserMsg_VoteUpdate(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_VoteUpdate(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_VoteUpdate defaultInstance;
    public static CDOTAUserMsg_VoteUpdate getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_VoteUpdate getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_VoteUpdate(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                choiceCounts_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              choiceCounts_.add(input.readInt32());
              break;
            }
            case 10: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001) && input.getBytesUntilLimit() > 0) {
                choiceCounts_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              while (input.getBytesUntilLimit() > 0) {
                choiceCounts_.add(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          choiceCounts_ = java.util.Collections.unmodifiableList(choiceCounts_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_VoteUpdate_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_VoteUpdate_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteUpdate.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteUpdate.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_VoteUpdate parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_VoteUpdate(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    // repeated int32 choice_counts = 1;
    public static final int CHOICE_COUNTS_FIELD_NUMBER = 1;
    private java.util.List choiceCounts_;
    /**
     * repeated int32 choice_counts = 1;
     */
    public java.util.List
        getChoiceCountsList() {
      return choiceCounts_;
    }
    /**
     * repeated int32 choice_counts = 1;
     */
    public int getChoiceCountsCount() {
      return choiceCounts_.size();
    }
    /**
     * repeated int32 choice_counts = 1;
     */
    public int getChoiceCounts(int index) {
      return choiceCounts_.get(index);
    }

    private void initFields() {
      choiceCounts_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < choiceCounts_.size(); i++) {
        output.writeInt32(1, choiceCounts_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < choiceCounts_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(choiceCounts_.get(i));
        }
        size += dataSize;
        size += 1 * getChoiceCountsList().size();
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteUpdate parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteUpdate parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteUpdate parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteUpdate parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteUpdate parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteUpdate parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteUpdate parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteUpdate parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteUpdate parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteUpdate parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteUpdate prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_VoteUpdate}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteUpdateOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_VoteUpdate_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_VoteUpdate_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteUpdate.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteUpdate.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteUpdate.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        choiceCounts_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_VoteUpdate_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteUpdate getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteUpdate.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteUpdate build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteUpdate result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteUpdate buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteUpdate result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteUpdate(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          choiceCounts_ = java.util.Collections.unmodifiableList(choiceCounts_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.choiceCounts_ = choiceCounts_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteUpdate) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteUpdate)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteUpdate other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteUpdate.getDefaultInstance()) return this;
        if (!other.choiceCounts_.isEmpty()) {
          if (choiceCounts_.isEmpty()) {
            choiceCounts_ = other.choiceCounts_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureChoiceCountsIsMutable();
            choiceCounts_.addAll(other.choiceCounts_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteUpdate parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteUpdate) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // repeated int32 choice_counts = 1;
      private java.util.List choiceCounts_ = java.util.Collections.emptyList();
      private void ensureChoiceCountsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          choiceCounts_ = new java.util.ArrayList(choiceCounts_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * repeated int32 choice_counts = 1;
       */
      public java.util.List
          getChoiceCountsList() {
        return java.util.Collections.unmodifiableList(choiceCounts_);
      }
      /**
       * repeated int32 choice_counts = 1;
       */
      public int getChoiceCountsCount() {
        return choiceCounts_.size();
      }
      /**
       * repeated int32 choice_counts = 1;
       */
      public int getChoiceCounts(int index) {
        return choiceCounts_.get(index);
      }
      /**
       * repeated int32 choice_counts = 1;
       */
      public Builder setChoiceCounts(
          int index, int value) {
        ensureChoiceCountsIsMutable();
        choiceCounts_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated int32 choice_counts = 1;
       */
      public Builder addChoiceCounts(int value) {
        ensureChoiceCountsIsMutable();
        choiceCounts_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated int32 choice_counts = 1;
       */
      public Builder addAllChoiceCounts(
          java.lang.Iterable values) {
        ensureChoiceCountsIsMutable();
        super.addAll(values, choiceCounts_);
        onChanged();
        return this;
      }
      /**
       * repeated int32 choice_counts = 1;
       */
      public Builder clearChoiceCounts() {
        choiceCounts_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_VoteUpdate)
    }

    static {
      defaultInstance = new CDOTAUserMsg_VoteUpdate(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_VoteUpdate)
  }

  public interface CDOTAUserMsg_VoteEndOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional int32 selected_choice = 1;
    /**
     * optional int32 selected_choice = 1;
     */
    boolean hasSelectedChoice();
    /**
     * optional int32 selected_choice = 1;
     */
    int getSelectedChoice();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_VoteEnd}
   */
  public static final class CDOTAUserMsg_VoteEnd extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_VoteEndOrBuilder {
    // Use CDOTAUserMsg_VoteEnd.newBuilder() to construct.
    private CDOTAUserMsg_VoteEnd(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_VoteEnd(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_VoteEnd defaultInstance;
    public static CDOTAUserMsg_VoteEnd getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_VoteEnd getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_VoteEnd(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              selectedChoice_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_VoteEnd_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_VoteEnd_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteEnd.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteEnd.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_VoteEnd parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_VoteEnd(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional int32 selected_choice = 1;
    public static final int SELECTED_CHOICE_FIELD_NUMBER = 1;
    private int selectedChoice_;
    /**
     * optional int32 selected_choice = 1;
     */
    public boolean hasSelectedChoice() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 selected_choice = 1;
     */
    public int getSelectedChoice() {
      return selectedChoice_;
    }

    private void initFields() {
      selectedChoice_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, selectedChoice_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, selectedChoice_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteEnd parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteEnd parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteEnd parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteEnd parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteEnd parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteEnd parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteEnd parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteEnd parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteEnd parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteEnd parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteEnd prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_VoteEnd}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteEndOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_VoteEnd_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_VoteEnd_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteEnd.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteEnd.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteEnd.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        selectedChoice_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_VoteEnd_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteEnd getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteEnd.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteEnd build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteEnd result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteEnd buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteEnd result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteEnd(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.selectedChoice_ = selectedChoice_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteEnd) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteEnd)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteEnd other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteEnd.getDefaultInstance()) return this;
        if (other.hasSelectedChoice()) {
          setSelectedChoice(other.getSelectedChoice());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteEnd parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_VoteEnd) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional int32 selected_choice = 1;
      private int selectedChoice_ ;
      /**
       * optional int32 selected_choice = 1;
       */
      public boolean hasSelectedChoice() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 selected_choice = 1;
       */
      public int getSelectedChoice() {
        return selectedChoice_;
      }
      /**
       * optional int32 selected_choice = 1;
       */
      public Builder setSelectedChoice(int value) {
        bitField0_ |= 0x00000001;
        selectedChoice_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 selected_choice = 1;
       */
      public Builder clearSelectedChoice() {
        bitField0_ = (bitField0_ & ~0x00000001);
        selectedChoice_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_VoteEnd)
    }

    static {
      defaultInstance = new CDOTAUserMsg_VoteEnd(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_VoteEnd)
  }

  public interface CDOTAUserMsg_BoosterStatePlayerOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional uint32 player_id = 1;
    /**
     * optional uint32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional uint32 player_id = 1;
     */
    int getPlayerId();

    // optional float bonus = 2;
    /**
     * optional float bonus = 2;
     */
    boolean hasBonus();
    /**
     * optional float bonus = 2;
     */
    float getBonus();

    // optional float event_bonus = 3;
    /**
     * optional float event_bonus = 3;
     */
    boolean hasEventBonus();
    /**
     * optional float event_bonus = 3;
     */
    float getEventBonus();

    // optional uint32 bonus_item_id = 4;
    /**
     * optional uint32 bonus_item_id = 4;
     */
    boolean hasBonusItemId();
    /**
     * optional uint32 bonus_item_id = 4;
     */
    int getBonusItemId();

    // optional uint32 event_bonus_item_id = 5;
    /**
     * optional uint32 event_bonus_item_id = 5;
     */
    boolean hasEventBonusItemId();
    /**
     * optional uint32 event_bonus_item_id = 5;
     */
    int getEventBonusItemId();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_BoosterStatePlayer}
   */
  public static final class CDOTAUserMsg_BoosterStatePlayer extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_BoosterStatePlayerOrBuilder {
    // Use CDOTAUserMsg_BoosterStatePlayer.newBuilder() to construct.
    private CDOTAUserMsg_BoosterStatePlayer(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_BoosterStatePlayer(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_BoosterStatePlayer defaultInstance;
    public static CDOTAUserMsg_BoosterStatePlayer getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_BoosterStatePlayer getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_BoosterStatePlayer(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
            case 21: {
              bitField0_ |= 0x00000002;
              bonus_ = input.readFloat();
              break;
            }
            case 29: {
              bitField0_ |= 0x00000004;
              eventBonus_ = input.readFloat();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              bonusItemId_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              eventBonusItemId_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_BoosterStatePlayer_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_BoosterStatePlayer_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_BoosterStatePlayer parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_BoosterStatePlayer(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional uint32 player_id = 1;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional uint32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    // optional float bonus = 2;
    public static final int BONUS_FIELD_NUMBER = 2;
    private float bonus_;
    /**
     * optional float bonus = 2;
     */
    public boolean hasBonus() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional float bonus = 2;
     */
    public float getBonus() {
      return bonus_;
    }

    // optional float event_bonus = 3;
    public static final int EVENT_BONUS_FIELD_NUMBER = 3;
    private float eventBonus_;
    /**
     * optional float event_bonus = 3;
     */
    public boolean hasEventBonus() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional float event_bonus = 3;
     */
    public float getEventBonus() {
      return eventBonus_;
    }

    // optional uint32 bonus_item_id = 4;
    public static final int BONUS_ITEM_ID_FIELD_NUMBER = 4;
    private int bonusItemId_;
    /**
     * optional uint32 bonus_item_id = 4;
     */
    public boolean hasBonusItemId() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 bonus_item_id = 4;
     */
    public int getBonusItemId() {
      return bonusItemId_;
    }

    // optional uint32 event_bonus_item_id = 5;
    public static final int EVENT_BONUS_ITEM_ID_FIELD_NUMBER = 5;
    private int eventBonusItemId_;
    /**
     * optional uint32 event_bonus_item_id = 5;
     */
    public boolean hasEventBonusItemId() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional uint32 event_bonus_item_id = 5;
     */
    public int getEventBonusItemId() {
      return eventBonusItemId_;
    }

    private void initFields() {
      playerId_ = 0;
      bonus_ = 0F;
      eventBonus_ = 0F;
      bonusItemId_ = 0;
      eventBonusItemId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeFloat(2, bonus_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeFloat(3, eventBonus_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, bonusItemId_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, eventBonusItemId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(2, bonus_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(3, eventBonus_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, bonusItemId_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, eventBonusItemId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_BoosterStatePlayer}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayerOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_BoosterStatePlayer_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_BoosterStatePlayer_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        bonus_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000002);
        eventBonus_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000004);
        bonusItemId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        eventBonusItemId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_BoosterStatePlayer_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.bonus_ = bonus_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.eventBonus_ = eventBonus_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.bonusItemId_ = bonusItemId_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.eventBonusItemId_ = eventBonusItemId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasBonus()) {
          setBonus(other.getBonus());
        }
        if (other.hasEventBonus()) {
          setEventBonus(other.getEventBonus());
        }
        if (other.hasBonusItemId()) {
          setBonusItemId(other.getBonusItemId());
        }
        if (other.hasEventBonusItemId()) {
          setEventBonusItemId(other.getEventBonusItemId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional uint32 player_id = 1;
      private int playerId_ ;
      /**
       * optional uint32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      // optional float bonus = 2;
      private float bonus_ ;
      /**
       * optional float bonus = 2;
       */
      public boolean hasBonus() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional float bonus = 2;
       */
      public float getBonus() {
        return bonus_;
      }
      /**
       * optional float bonus = 2;
       */
      public Builder setBonus(float value) {
        bitField0_ |= 0x00000002;
        bonus_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float bonus = 2;
       */
      public Builder clearBonus() {
        bitField0_ = (bitField0_ & ~0x00000002);
        bonus_ = 0F;
        onChanged();
        return this;
      }

      // optional float event_bonus = 3;
      private float eventBonus_ ;
      /**
       * optional float event_bonus = 3;
       */
      public boolean hasEventBonus() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional float event_bonus = 3;
       */
      public float getEventBonus() {
        return eventBonus_;
      }
      /**
       * optional float event_bonus = 3;
       */
      public Builder setEventBonus(float value) {
        bitField0_ |= 0x00000004;
        eventBonus_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float event_bonus = 3;
       */
      public Builder clearEventBonus() {
        bitField0_ = (bitField0_ & ~0x00000004);
        eventBonus_ = 0F;
        onChanged();
        return this;
      }

      // optional uint32 bonus_item_id = 4;
      private int bonusItemId_ ;
      /**
       * optional uint32 bonus_item_id = 4;
       */
      public boolean hasBonusItemId() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 bonus_item_id = 4;
       */
      public int getBonusItemId() {
        return bonusItemId_;
      }
      /**
       * optional uint32 bonus_item_id = 4;
       */
      public Builder setBonusItemId(int value) {
        bitField0_ |= 0x00000008;
        bonusItemId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 bonus_item_id = 4;
       */
      public Builder clearBonusItemId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        bonusItemId_ = 0;
        onChanged();
        return this;
      }

      // optional uint32 event_bonus_item_id = 5;
      private int eventBonusItemId_ ;
      /**
       * optional uint32 event_bonus_item_id = 5;
       */
      public boolean hasEventBonusItemId() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional uint32 event_bonus_item_id = 5;
       */
      public int getEventBonusItemId() {
        return eventBonusItemId_;
      }
      /**
       * optional uint32 event_bonus_item_id = 5;
       */
      public Builder setEventBonusItemId(int value) {
        bitField0_ |= 0x00000010;
        eventBonusItemId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 event_bonus_item_id = 5;
       */
      public Builder clearEventBonusItemId() {
        bitField0_ = (bitField0_ & ~0x00000010);
        eventBonusItemId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_BoosterStatePlayer)
    }

    static {
      defaultInstance = new CDOTAUserMsg_BoosterStatePlayer(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_BoosterStatePlayer)
  }

  public interface CDOTAUserMsg_BoosterStateOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // repeated .CDOTAUserMsg_BoosterStatePlayer boosted_players = 1;
    /**
     * repeated .CDOTAUserMsg_BoosterStatePlayer boosted_players = 1;
     */
    java.util.List 
        getBoostedPlayersList();
    /**
     * repeated .CDOTAUserMsg_BoosterStatePlayer boosted_players = 1;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer getBoostedPlayers(int index);
    /**
     * repeated .CDOTAUserMsg_BoosterStatePlayer boosted_players = 1;
     */
    int getBoostedPlayersCount();
    /**
     * repeated .CDOTAUserMsg_BoosterStatePlayer boosted_players = 1;
     */
    java.util.List 
        getBoostedPlayersOrBuilderList();
    /**
     * repeated .CDOTAUserMsg_BoosterStatePlayer boosted_players = 1;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayerOrBuilder getBoostedPlayersOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_BoosterState}
   */
  public static final class CDOTAUserMsg_BoosterState extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_BoosterStateOrBuilder {
    // Use CDOTAUserMsg_BoosterState.newBuilder() to construct.
    private CDOTAUserMsg_BoosterState(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_BoosterState(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_BoosterState defaultInstance;
    public static CDOTAUserMsg_BoosterState getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_BoosterState getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_BoosterState(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                boostedPlayers_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              boostedPlayers_.add(input.readMessage(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          boostedPlayers_ = java.util.Collections.unmodifiableList(boostedPlayers_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_BoosterState_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_BoosterState_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterState.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterState.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_BoosterState parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_BoosterState(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    // repeated .CDOTAUserMsg_BoosterStatePlayer boosted_players = 1;
    public static final int BOOSTED_PLAYERS_FIELD_NUMBER = 1;
    private java.util.List boostedPlayers_;
    /**
     * repeated .CDOTAUserMsg_BoosterStatePlayer boosted_players = 1;
     */
    public java.util.List getBoostedPlayersList() {
      return boostedPlayers_;
    }
    /**
     * repeated .CDOTAUserMsg_BoosterStatePlayer boosted_players = 1;
     */
    public java.util.List 
        getBoostedPlayersOrBuilderList() {
      return boostedPlayers_;
    }
    /**
     * repeated .CDOTAUserMsg_BoosterStatePlayer boosted_players = 1;
     */
    public int getBoostedPlayersCount() {
      return boostedPlayers_.size();
    }
    /**
     * repeated .CDOTAUserMsg_BoosterStatePlayer boosted_players = 1;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer getBoostedPlayers(int index) {
      return boostedPlayers_.get(index);
    }
    /**
     * repeated .CDOTAUserMsg_BoosterStatePlayer boosted_players = 1;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayerOrBuilder getBoostedPlayersOrBuilder(
        int index) {
      return boostedPlayers_.get(index);
    }

    private void initFields() {
      boostedPlayers_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < boostedPlayers_.size(); i++) {
        output.writeMessage(1, boostedPlayers_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < boostedPlayers_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, boostedPlayers_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterState parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterState parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterState parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterState parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterState parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterState parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterState parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterState parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterState parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterState parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterState prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_BoosterState}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStateOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_BoosterState_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_BoosterState_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterState.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterState.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterState.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getBoostedPlayersFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (boostedPlayersBuilder_ == null) {
          boostedPlayers_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          boostedPlayersBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_BoosterState_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterState getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterState.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterState build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterState result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterState buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterState result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterState(this);
        int from_bitField0_ = bitField0_;
        if (boostedPlayersBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            boostedPlayers_ = java.util.Collections.unmodifiableList(boostedPlayers_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.boostedPlayers_ = boostedPlayers_;
        } else {
          result.boostedPlayers_ = boostedPlayersBuilder_.build();
        }
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterState) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterState)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterState other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterState.getDefaultInstance()) return this;
        if (boostedPlayersBuilder_ == null) {
          if (!other.boostedPlayers_.isEmpty()) {
            if (boostedPlayers_.isEmpty()) {
              boostedPlayers_ = other.boostedPlayers_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureBoostedPlayersIsMutable();
              boostedPlayers_.addAll(other.boostedPlayers_);
            }
            onChanged();
          }
        } else {
          if (!other.boostedPlayers_.isEmpty()) {
            if (boostedPlayersBuilder_.isEmpty()) {
              boostedPlayersBuilder_.dispose();
              boostedPlayersBuilder_ = null;
              boostedPlayers_ = other.boostedPlayers_;
              bitField0_ = (bitField0_ & ~0x00000001);
              boostedPlayersBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getBoostedPlayersFieldBuilder() : null;
            } else {
              boostedPlayersBuilder_.addAllMessages(other.boostedPlayers_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterState parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterState) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // repeated .CDOTAUserMsg_BoosterStatePlayer boosted_players = 1;
      private java.util.List boostedPlayers_ =
        java.util.Collections.emptyList();
      private void ensureBoostedPlayersIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          boostedPlayers_ = new java.util.ArrayList(boostedPlayers_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayerOrBuilder> boostedPlayersBuilder_;

      /**
       * repeated .CDOTAUserMsg_BoosterStatePlayer boosted_players = 1;
       */
      public java.util.List getBoostedPlayersList() {
        if (boostedPlayersBuilder_ == null) {
          return java.util.Collections.unmodifiableList(boostedPlayers_);
        } else {
          return boostedPlayersBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CDOTAUserMsg_BoosterStatePlayer boosted_players = 1;
       */
      public int getBoostedPlayersCount() {
        if (boostedPlayersBuilder_ == null) {
          return boostedPlayers_.size();
        } else {
          return boostedPlayersBuilder_.getCount();
        }
      }
      /**
       * repeated .CDOTAUserMsg_BoosterStatePlayer boosted_players = 1;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer getBoostedPlayers(int index) {
        if (boostedPlayersBuilder_ == null) {
          return boostedPlayers_.get(index);
        } else {
          return boostedPlayersBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_BoosterStatePlayer boosted_players = 1;
       */
      public Builder setBoostedPlayers(
          int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer value) {
        if (boostedPlayersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureBoostedPlayersIsMutable();
          boostedPlayers_.set(index, value);
          onChanged();
        } else {
          boostedPlayersBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_BoosterStatePlayer boosted_players = 1;
       */
      public Builder setBoostedPlayers(
          int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer.Builder builderForValue) {
        if (boostedPlayersBuilder_ == null) {
          ensureBoostedPlayersIsMutable();
          boostedPlayers_.set(index, builderForValue.build());
          onChanged();
        } else {
          boostedPlayersBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_BoosterStatePlayer boosted_players = 1;
       */
      public Builder addBoostedPlayers(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer value) {
        if (boostedPlayersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureBoostedPlayersIsMutable();
          boostedPlayers_.add(value);
          onChanged();
        } else {
          boostedPlayersBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_BoosterStatePlayer boosted_players = 1;
       */
      public Builder addBoostedPlayers(
          int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer value) {
        if (boostedPlayersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureBoostedPlayersIsMutable();
          boostedPlayers_.add(index, value);
          onChanged();
        } else {
          boostedPlayersBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_BoosterStatePlayer boosted_players = 1;
       */
      public Builder addBoostedPlayers(
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer.Builder builderForValue) {
        if (boostedPlayersBuilder_ == null) {
          ensureBoostedPlayersIsMutable();
          boostedPlayers_.add(builderForValue.build());
          onChanged();
        } else {
          boostedPlayersBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_BoosterStatePlayer boosted_players = 1;
       */
      public Builder addBoostedPlayers(
          int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer.Builder builderForValue) {
        if (boostedPlayersBuilder_ == null) {
          ensureBoostedPlayersIsMutable();
          boostedPlayers_.add(index, builderForValue.build());
          onChanged();
        } else {
          boostedPlayersBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_BoosterStatePlayer boosted_players = 1;
       */
      public Builder addAllBoostedPlayers(
          java.lang.Iterable values) {
        if (boostedPlayersBuilder_ == null) {
          ensureBoostedPlayersIsMutable();
          super.addAll(values, boostedPlayers_);
          onChanged();
        } else {
          boostedPlayersBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_BoosterStatePlayer boosted_players = 1;
       */
      public Builder clearBoostedPlayers() {
        if (boostedPlayersBuilder_ == null) {
          boostedPlayers_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          boostedPlayersBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_BoosterStatePlayer boosted_players = 1;
       */
      public Builder removeBoostedPlayers(int index) {
        if (boostedPlayersBuilder_ == null) {
          ensureBoostedPlayersIsMutable();
          boostedPlayers_.remove(index);
          onChanged();
        } else {
          boostedPlayersBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_BoosterStatePlayer boosted_players = 1;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer.Builder getBoostedPlayersBuilder(
          int index) {
        return getBoostedPlayersFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CDOTAUserMsg_BoosterStatePlayer boosted_players = 1;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayerOrBuilder getBoostedPlayersOrBuilder(
          int index) {
        if (boostedPlayersBuilder_ == null) {
          return boostedPlayers_.get(index);  } else {
          return boostedPlayersBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_BoosterStatePlayer boosted_players = 1;
       */
      public java.util.List 
           getBoostedPlayersOrBuilderList() {
        if (boostedPlayersBuilder_ != null) {
          return boostedPlayersBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(boostedPlayers_);
        }
      }
      /**
       * repeated .CDOTAUserMsg_BoosterStatePlayer boosted_players = 1;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer.Builder addBoostedPlayersBuilder() {
        return getBoostedPlayersFieldBuilder().addBuilder(
            com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_BoosterStatePlayer boosted_players = 1;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer.Builder addBoostedPlayersBuilder(
          int index) {
        return getBoostedPlayersFieldBuilder().addBuilder(
            index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_BoosterStatePlayer boosted_players = 1;
       */
      public java.util.List 
           getBoostedPlayersBuilderList() {
        return getBoostedPlayersFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayerOrBuilder> 
          getBoostedPlayersFieldBuilder() {
        if (boostedPlayersBuilder_ == null) {
          boostedPlayersBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayer.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_BoosterStatePlayerOrBuilder>(
                  boostedPlayers_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          boostedPlayers_ = null;
        }
        return boostedPlayersBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_BoosterState)
    }

    static {
      defaultInstance = new CDOTAUserMsg_BoosterState(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_BoosterState)
  }

  public interface CDOTAUserMsg_PlayerMMROrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // repeated sint32 mmr = 1 [packed = true];
    /**
     * repeated sint32 mmr = 1 [packed = true];
     */
    java.util.List getMmrList();
    /**
     * repeated sint32 mmr = 1 [packed = true];
     */
    int getMmrCount();
    /**
     * repeated sint32 mmr = 1 [packed = true];
     */
    int getMmr(int index);
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_PlayerMMR}
   */
  public static final class CDOTAUserMsg_PlayerMMR extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_PlayerMMROrBuilder {
    // Use CDOTAUserMsg_PlayerMMR.newBuilder() to construct.
    private CDOTAUserMsg_PlayerMMR(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_PlayerMMR(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_PlayerMMR defaultInstance;
    public static CDOTAUserMsg_PlayerMMR getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_PlayerMMR getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_PlayerMMR(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                mmr_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              mmr_.add(input.readSInt32());
              break;
            }
            case 10: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001) && input.getBytesUntilLimit() > 0) {
                mmr_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              while (input.getBytesUntilLimit() > 0) {
                mmr_.add(input.readSInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          mmr_ = java.util.Collections.unmodifiableList(mmr_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_PlayerMMR_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_PlayerMMR_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_PlayerMMR.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_PlayerMMR.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_PlayerMMR parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_PlayerMMR(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    // repeated sint32 mmr = 1 [packed = true];
    public static final int MMR_FIELD_NUMBER = 1;
    private java.util.List mmr_;
    /**
     * repeated sint32 mmr = 1 [packed = true];
     */
    public java.util.List
        getMmrList() {
      return mmr_;
    }
    /**
     * repeated sint32 mmr = 1 [packed = true];
     */
    public int getMmrCount() {
      return mmr_.size();
    }
    /**
     * repeated sint32 mmr = 1 [packed = true];
     */
    public int getMmr(int index) {
      return mmr_.get(index);
    }
    private int mmrMemoizedSerializedSize = -1;

    private void initFields() {
      mmr_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (getMmrList().size() > 0) {
        output.writeRawVarint32(10);
        output.writeRawVarint32(mmrMemoizedSerializedSize);
      }
      for (int i = 0; i < mmr_.size(); i++) {
        output.writeSInt32NoTag(mmr_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < mmr_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeSInt32SizeNoTag(mmr_.get(i));
        }
        size += dataSize;
        if (!getMmrList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        mmrMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_PlayerMMR parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_PlayerMMR parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_PlayerMMR parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_PlayerMMR parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_PlayerMMR parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_PlayerMMR parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_PlayerMMR parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_PlayerMMR parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_PlayerMMR parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_PlayerMMR parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_PlayerMMR prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_PlayerMMR}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_PlayerMMROrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_PlayerMMR_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_PlayerMMR_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_PlayerMMR.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_PlayerMMR.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_PlayerMMR.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        mmr_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_PlayerMMR_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_PlayerMMR getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_PlayerMMR.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_PlayerMMR build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_PlayerMMR result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_PlayerMMR buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_PlayerMMR result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_PlayerMMR(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          mmr_ = java.util.Collections.unmodifiableList(mmr_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.mmr_ = mmr_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_PlayerMMR) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_PlayerMMR)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_PlayerMMR other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_PlayerMMR.getDefaultInstance()) return this;
        if (!other.mmr_.isEmpty()) {
          if (mmr_.isEmpty()) {
            mmr_ = other.mmr_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureMmrIsMutable();
            mmr_.addAll(other.mmr_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_PlayerMMR parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_PlayerMMR) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // repeated sint32 mmr = 1 [packed = true];
      private java.util.List mmr_ = java.util.Collections.emptyList();
      private void ensureMmrIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          mmr_ = new java.util.ArrayList(mmr_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * repeated sint32 mmr = 1 [packed = true];
       */
      public java.util.List
          getMmrList() {
        return java.util.Collections.unmodifiableList(mmr_);
      }
      /**
       * repeated sint32 mmr = 1 [packed = true];
       */
      public int getMmrCount() {
        return mmr_.size();
      }
      /**
       * repeated sint32 mmr = 1 [packed = true];
       */
      public int getMmr(int index) {
        return mmr_.get(index);
      }
      /**
       * repeated sint32 mmr = 1 [packed = true];
       */
      public Builder setMmr(
          int index, int value) {
        ensureMmrIsMutable();
        mmr_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated sint32 mmr = 1 [packed = true];
       */
      public Builder addMmr(int value) {
        ensureMmrIsMutable();
        mmr_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated sint32 mmr = 1 [packed = true];
       */
      public Builder addAllMmr(
          java.lang.Iterable values) {
        ensureMmrIsMutable();
        super.addAll(values, mmr_);
        onChanged();
        return this;
      }
      /**
       * repeated sint32 mmr = 1 [packed = true];
       */
      public Builder clearMmr() {
        mmr_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_PlayerMMR)
    }

    static {
      defaultInstance = new CDOTAUserMsg_PlayerMMR(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_PlayerMMR)
  }

  public interface CDOTAUserMsg_AbilityStealOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional uint32 player_id = 1;
    /**
     * optional uint32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional uint32 player_id = 1;
     */
    int getPlayerId();

    // optional uint32 ability_id = 2;
    /**
     * optional uint32 ability_id = 2;
     */
    boolean hasAbilityId();
    /**
     * optional uint32 ability_id = 2;
     */
    int getAbilityId();

    // optional uint32 ability_level = 3;
    /**
     * optional uint32 ability_level = 3;
     */
    boolean hasAbilityLevel();
    /**
     * optional uint32 ability_level = 3;
     */
    int getAbilityLevel();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_AbilitySteal}
   */
  public static final class CDOTAUserMsg_AbilitySteal extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_AbilityStealOrBuilder {
    // Use CDOTAUserMsg_AbilitySteal.newBuilder() to construct.
    private CDOTAUserMsg_AbilitySteal(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_AbilitySteal(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_AbilitySteal defaultInstance;
    public static CDOTAUserMsg_AbilitySteal getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_AbilitySteal getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_AbilitySteal(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              abilityId_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              abilityLevel_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_AbilitySteal_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_AbilitySteal_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilitySteal.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilitySteal.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_AbilitySteal parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_AbilitySteal(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional uint32 player_id = 1;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional uint32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    // optional uint32 ability_id = 2;
    public static final int ABILITY_ID_FIELD_NUMBER = 2;
    private int abilityId_;
    /**
     * optional uint32 ability_id = 2;
     */
    public boolean hasAbilityId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 ability_id = 2;
     */
    public int getAbilityId() {
      return abilityId_;
    }

    // optional uint32 ability_level = 3;
    public static final int ABILITY_LEVEL_FIELD_NUMBER = 3;
    private int abilityLevel_;
    /**
     * optional uint32 ability_level = 3;
     */
    public boolean hasAbilityLevel() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 ability_level = 3;
     */
    public int getAbilityLevel() {
      return abilityLevel_;
    }

    private void initFields() {
      playerId_ = 0;
      abilityId_ = 0;
      abilityLevel_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, abilityId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, abilityLevel_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, abilityId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, abilityLevel_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilitySteal parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilitySteal parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilitySteal parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilitySteal parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilitySteal parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilitySteal parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilitySteal parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilitySteal parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilitySteal parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilitySteal parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilitySteal prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_AbilitySteal}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilityStealOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_AbilitySteal_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_AbilitySteal_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilitySteal.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilitySteal.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilitySteal.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        abilityId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        abilityLevel_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_AbilitySteal_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilitySteal getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilitySteal.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilitySteal build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilitySteal result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilitySteal buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilitySteal result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilitySteal(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.abilityId_ = abilityId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.abilityLevel_ = abilityLevel_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilitySteal) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilitySteal)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilitySteal other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilitySteal.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasAbilityId()) {
          setAbilityId(other.getAbilityId());
        }
        if (other.hasAbilityLevel()) {
          setAbilityLevel(other.getAbilityLevel());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilitySteal parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_AbilitySteal) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional uint32 player_id = 1;
      private int playerId_ ;
      /**
       * optional uint32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      // optional uint32 ability_id = 2;
      private int abilityId_ ;
      /**
       * optional uint32 ability_id = 2;
       */
      public boolean hasAbilityId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 ability_id = 2;
       */
      public int getAbilityId() {
        return abilityId_;
      }
      /**
       * optional uint32 ability_id = 2;
       */
      public Builder setAbilityId(int value) {
        bitField0_ |= 0x00000002;
        abilityId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 ability_id = 2;
       */
      public Builder clearAbilityId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        abilityId_ = 0;
        onChanged();
        return this;
      }

      // optional uint32 ability_level = 3;
      private int abilityLevel_ ;
      /**
       * optional uint32 ability_level = 3;
       */
      public boolean hasAbilityLevel() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 ability_level = 3;
       */
      public int getAbilityLevel() {
        return abilityLevel_;
      }
      /**
       * optional uint32 ability_level = 3;
       */
      public Builder setAbilityLevel(int value) {
        bitField0_ |= 0x00000004;
        abilityLevel_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 ability_level = 3;
       */
      public Builder clearAbilityLevel() {
        bitField0_ = (bitField0_ & ~0x00000004);
        abilityLevel_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_AbilitySteal)
    }

    static {
      defaultInstance = new CDOTAUserMsg_AbilitySteal(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_AbilitySteal)
  }

  public interface CDOTAUserMsg_StatsHeroLookupOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional int32 player_id = 1;
    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    // optional int32 hero_id = 2;
    /**
     * optional int32 hero_id = 2;
     */
    boolean hasHeroId();
    /**
     * optional int32 hero_id = 2;
     */
    int getHeroId();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_StatsHeroLookup}
   */
  public static final class CDOTAUserMsg_StatsHeroLookup extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_StatsHeroLookupOrBuilder {
    // Use CDOTAUserMsg_StatsHeroLookup.newBuilder() to construct.
    private CDOTAUserMsg_StatsHeroLookup(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_StatsHeroLookup(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_StatsHeroLookup defaultInstance;
    public static CDOTAUserMsg_StatsHeroLookup getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_StatsHeroLookup getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_StatsHeroLookup(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              heroId_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_StatsHeroLookup_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_StatsHeroLookup_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_StatsHeroLookup parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_StatsHeroLookup(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional int32 player_id = 1;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    // optional int32 hero_id = 2;
    public static final int HERO_ID_FIELD_NUMBER = 2;
    private int heroId_;
    /**
     * optional int32 hero_id = 2;
     */
    public boolean hasHeroId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 hero_id = 2;
     */
    public int getHeroId() {
      return heroId_;
    }

    private void initFields() {
      playerId_ = 0;
      heroId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, heroId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, heroId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_StatsHeroLookup}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookupOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_StatsHeroLookup_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_StatsHeroLookup_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        heroId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_StatsHeroLookup_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.heroId_ = heroId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasHeroId()) {
          setHeroId(other.getHeroId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional int32 player_id = 1;
      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      // optional int32 hero_id = 2;
      private int heroId_ ;
      /**
       * optional int32 hero_id = 2;
       */
      public boolean hasHeroId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 hero_id = 2;
       */
      public int getHeroId() {
        return heroId_;
      }
      /**
       * optional int32 hero_id = 2;
       */
      public Builder setHeroId(int value) {
        bitField0_ |= 0x00000002;
        heroId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 hero_id = 2;
       */
      public Builder clearHeroId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        heroId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_StatsHeroLookup)
    }

    static {
      defaultInstance = new CDOTAUserMsg_StatsHeroLookup(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_StatsHeroLookup)
  }

  public interface CDOTAUserMsg_StatsHeroMinuteDetailsOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional uint32 last_hits = 1;
    /**
     * optional uint32 last_hits = 1;
     */
    boolean hasLastHits();
    /**
     * optional uint32 last_hits = 1;
     */
    int getLastHits();

    // optional uint32 hero_kills = 2;
    /**
     * optional uint32 hero_kills = 2;
     */
    boolean hasHeroKills();
    /**
     * optional uint32 hero_kills = 2;
     */
    int getHeroKills();

    // optional uint32 hero_damage = 3;
    /**
     * optional uint32 hero_damage = 3;
     */
    boolean hasHeroDamage();
    /**
     * optional uint32 hero_damage = 3;
     */
    int getHeroDamage();

    // optional uint32 tower_damage = 4;
    /**
     * optional uint32 tower_damage = 4;
     */
    boolean hasTowerDamage();
    /**
     * optional uint32 tower_damage = 4;
     */
    int getTowerDamage();

    // optional float average_position = 5;
    /**
     * optional float average_position = 5;
     */
    boolean hasAveragePosition();
    /**
     * optional float average_position = 5;
     */
    float getAveragePosition();

    // optional uint32 total_xp = 6;
    /**
     * optional uint32 total_xp = 6;
     */
    boolean hasTotalXp();
    /**
     * optional uint32 total_xp = 6;
     */
    int getTotalXp();

    // optional uint32 net_worth = 7;
    /**
     * optional uint32 net_worth = 7;
     */
    boolean hasNetWorth();
    /**
     * optional uint32 net_worth = 7;
     */
    int getNetWorth();

    // optional uint32 harvested_creep_gold = 8;
    /**
     * optional uint32 harvested_creep_gold = 8;
     */
    boolean hasHarvestedCreepGold();
    /**
     * optional uint32 harvested_creep_gold = 8;
     */
    int getHarvestedCreepGold();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_StatsHeroMinuteDetails}
   */
  public static final class CDOTAUserMsg_StatsHeroMinuteDetails extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_StatsHeroMinuteDetailsOrBuilder {
    // Use CDOTAUserMsg_StatsHeroMinuteDetails.newBuilder() to construct.
    private CDOTAUserMsg_StatsHeroMinuteDetails(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_StatsHeroMinuteDetails(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_StatsHeroMinuteDetails defaultInstance;
    public static CDOTAUserMsg_StatsHeroMinuteDetails getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_StatsHeroMinuteDetails getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_StatsHeroMinuteDetails(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              lastHits_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              heroKills_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              heroDamage_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              towerDamage_ = input.readUInt32();
              break;
            }
            case 45: {
              bitField0_ |= 0x00000010;
              averagePosition_ = input.readFloat();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              totalXp_ = input.readUInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              netWorth_ = input.readUInt32();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              harvestedCreepGold_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_StatsHeroMinuteDetails_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_StatsHeroMinuteDetails_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_StatsHeroMinuteDetails parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_StatsHeroMinuteDetails(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional uint32 last_hits = 1;
    public static final int LAST_HITS_FIELD_NUMBER = 1;
    private int lastHits_;
    /**
     * optional uint32 last_hits = 1;
     */
    public boolean hasLastHits() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 last_hits = 1;
     */
    public int getLastHits() {
      return lastHits_;
    }

    // optional uint32 hero_kills = 2;
    public static final int HERO_KILLS_FIELD_NUMBER = 2;
    private int heroKills_;
    /**
     * optional uint32 hero_kills = 2;
     */
    public boolean hasHeroKills() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 hero_kills = 2;
     */
    public int getHeroKills() {
      return heroKills_;
    }

    // optional uint32 hero_damage = 3;
    public static final int HERO_DAMAGE_FIELD_NUMBER = 3;
    private int heroDamage_;
    /**
     * optional uint32 hero_damage = 3;
     */
    public boolean hasHeroDamage() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 hero_damage = 3;
     */
    public int getHeroDamage() {
      return heroDamage_;
    }

    // optional uint32 tower_damage = 4;
    public static final int TOWER_DAMAGE_FIELD_NUMBER = 4;
    private int towerDamage_;
    /**
     * optional uint32 tower_damage = 4;
     */
    public boolean hasTowerDamage() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 tower_damage = 4;
     */
    public int getTowerDamage() {
      return towerDamage_;
    }

    // optional float average_position = 5;
    public static final int AVERAGE_POSITION_FIELD_NUMBER = 5;
    private float averagePosition_;
    /**
     * optional float average_position = 5;
     */
    public boolean hasAveragePosition() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional float average_position = 5;
     */
    public float getAveragePosition() {
      return averagePosition_;
    }

    // optional uint32 total_xp = 6;
    public static final int TOTAL_XP_FIELD_NUMBER = 6;
    private int totalXp_;
    /**
     * optional uint32 total_xp = 6;
     */
    public boolean hasTotalXp() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional uint32 total_xp = 6;
     */
    public int getTotalXp() {
      return totalXp_;
    }

    // optional uint32 net_worth = 7;
    public static final int NET_WORTH_FIELD_NUMBER = 7;
    private int netWorth_;
    /**
     * optional uint32 net_worth = 7;
     */
    public boolean hasNetWorth() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional uint32 net_worth = 7;
     */
    public int getNetWorth() {
      return netWorth_;
    }

    // optional uint32 harvested_creep_gold = 8;
    public static final int HARVESTED_CREEP_GOLD_FIELD_NUMBER = 8;
    private int harvestedCreepGold_;
    /**
     * optional uint32 harvested_creep_gold = 8;
     */
    public boolean hasHarvestedCreepGold() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional uint32 harvested_creep_gold = 8;
     */
    public int getHarvestedCreepGold() {
      return harvestedCreepGold_;
    }

    private void initFields() {
      lastHits_ = 0;
      heroKills_ = 0;
      heroDamage_ = 0;
      towerDamage_ = 0;
      averagePosition_ = 0F;
      totalXp_ = 0;
      netWorth_ = 0;
      harvestedCreepGold_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, lastHits_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, heroKills_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, heroDamage_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, towerDamage_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeFloat(5, averagePosition_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeUInt32(6, totalXp_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeUInt32(7, netWorth_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeUInt32(8, harvestedCreepGold_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, lastHits_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, heroKills_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, heroDamage_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, towerDamage_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(5, averagePosition_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, totalXp_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, netWorth_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(8, harvestedCreepGold_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_StatsHeroMinuteDetails}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetailsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_StatsHeroMinuteDetails_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_StatsHeroMinuteDetails_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        lastHits_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        heroKills_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        heroDamage_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        towerDamage_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        averagePosition_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000010);
        totalXp_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        netWorth_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        harvestedCreepGold_ = 0;
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_StatsHeroMinuteDetails_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.lastHits_ = lastHits_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.heroKills_ = heroKills_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.heroDamage_ = heroDamage_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.towerDamage_ = towerDamage_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.averagePosition_ = averagePosition_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.totalXp_ = totalXp_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.netWorth_ = netWorth_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.harvestedCreepGold_ = harvestedCreepGold_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails.getDefaultInstance()) return this;
        if (other.hasLastHits()) {
          setLastHits(other.getLastHits());
        }
        if (other.hasHeroKills()) {
          setHeroKills(other.getHeroKills());
        }
        if (other.hasHeroDamage()) {
          setHeroDamage(other.getHeroDamage());
        }
        if (other.hasTowerDamage()) {
          setTowerDamage(other.getTowerDamage());
        }
        if (other.hasAveragePosition()) {
          setAveragePosition(other.getAveragePosition());
        }
        if (other.hasTotalXp()) {
          setTotalXp(other.getTotalXp());
        }
        if (other.hasNetWorth()) {
          setNetWorth(other.getNetWorth());
        }
        if (other.hasHarvestedCreepGold()) {
          setHarvestedCreepGold(other.getHarvestedCreepGold());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional uint32 last_hits = 1;
      private int lastHits_ ;
      /**
       * optional uint32 last_hits = 1;
       */
      public boolean hasLastHits() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 last_hits = 1;
       */
      public int getLastHits() {
        return lastHits_;
      }
      /**
       * optional uint32 last_hits = 1;
       */
      public Builder setLastHits(int value) {
        bitField0_ |= 0x00000001;
        lastHits_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 last_hits = 1;
       */
      public Builder clearLastHits() {
        bitField0_ = (bitField0_ & ~0x00000001);
        lastHits_ = 0;
        onChanged();
        return this;
      }

      // optional uint32 hero_kills = 2;
      private int heroKills_ ;
      /**
       * optional uint32 hero_kills = 2;
       */
      public boolean hasHeroKills() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 hero_kills = 2;
       */
      public int getHeroKills() {
        return heroKills_;
      }
      /**
       * optional uint32 hero_kills = 2;
       */
      public Builder setHeroKills(int value) {
        bitField0_ |= 0x00000002;
        heroKills_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 hero_kills = 2;
       */
      public Builder clearHeroKills() {
        bitField0_ = (bitField0_ & ~0x00000002);
        heroKills_ = 0;
        onChanged();
        return this;
      }

      // optional uint32 hero_damage = 3;
      private int heroDamage_ ;
      /**
       * optional uint32 hero_damage = 3;
       */
      public boolean hasHeroDamage() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 hero_damage = 3;
       */
      public int getHeroDamage() {
        return heroDamage_;
      }
      /**
       * optional uint32 hero_damage = 3;
       */
      public Builder setHeroDamage(int value) {
        bitField0_ |= 0x00000004;
        heroDamage_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 hero_damage = 3;
       */
      public Builder clearHeroDamage() {
        bitField0_ = (bitField0_ & ~0x00000004);
        heroDamage_ = 0;
        onChanged();
        return this;
      }

      // optional uint32 tower_damage = 4;
      private int towerDamage_ ;
      /**
       * optional uint32 tower_damage = 4;
       */
      public boolean hasTowerDamage() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 tower_damage = 4;
       */
      public int getTowerDamage() {
        return towerDamage_;
      }
      /**
       * optional uint32 tower_damage = 4;
       */
      public Builder setTowerDamage(int value) {
        bitField0_ |= 0x00000008;
        towerDamage_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 tower_damage = 4;
       */
      public Builder clearTowerDamage() {
        bitField0_ = (bitField0_ & ~0x00000008);
        towerDamage_ = 0;
        onChanged();
        return this;
      }

      // optional float average_position = 5;
      private float averagePosition_ ;
      /**
       * optional float average_position = 5;
       */
      public boolean hasAveragePosition() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional float average_position = 5;
       */
      public float getAveragePosition() {
        return averagePosition_;
      }
      /**
       * optional float average_position = 5;
       */
      public Builder setAveragePosition(float value) {
        bitField0_ |= 0x00000010;
        averagePosition_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float average_position = 5;
       */
      public Builder clearAveragePosition() {
        bitField0_ = (bitField0_ & ~0x00000010);
        averagePosition_ = 0F;
        onChanged();
        return this;
      }

      // optional uint32 total_xp = 6;
      private int totalXp_ ;
      /**
       * optional uint32 total_xp = 6;
       */
      public boolean hasTotalXp() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional uint32 total_xp = 6;
       */
      public int getTotalXp() {
        return totalXp_;
      }
      /**
       * optional uint32 total_xp = 6;
       */
      public Builder setTotalXp(int value) {
        bitField0_ |= 0x00000020;
        totalXp_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 total_xp = 6;
       */
      public Builder clearTotalXp() {
        bitField0_ = (bitField0_ & ~0x00000020);
        totalXp_ = 0;
        onChanged();
        return this;
      }

      // optional uint32 net_worth = 7;
      private int netWorth_ ;
      /**
       * optional uint32 net_worth = 7;
       */
      public boolean hasNetWorth() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional uint32 net_worth = 7;
       */
      public int getNetWorth() {
        return netWorth_;
      }
      /**
       * optional uint32 net_worth = 7;
       */
      public Builder setNetWorth(int value) {
        bitField0_ |= 0x00000040;
        netWorth_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 net_worth = 7;
       */
      public Builder clearNetWorth() {
        bitField0_ = (bitField0_ & ~0x00000040);
        netWorth_ = 0;
        onChanged();
        return this;
      }

      // optional uint32 harvested_creep_gold = 8;
      private int harvestedCreepGold_ ;
      /**
       * optional uint32 harvested_creep_gold = 8;
       */
      public boolean hasHarvestedCreepGold() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional uint32 harvested_creep_gold = 8;
       */
      public int getHarvestedCreepGold() {
        return harvestedCreepGold_;
      }
      /**
       * optional uint32 harvested_creep_gold = 8;
       */
      public Builder setHarvestedCreepGold(int value) {
        bitField0_ |= 0x00000080;
        harvestedCreepGold_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 harvested_creep_gold = 8;
       */
      public Builder clearHarvestedCreepGold() {
        bitField0_ = (bitField0_ & ~0x00000080);
        harvestedCreepGold_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_StatsHeroMinuteDetails)
    }

    static {
      defaultInstance = new CDOTAUserMsg_StatsHeroMinuteDetails(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_StatsHeroMinuteDetails)
  }

  public interface CDOTAUserMsg_StatsTeamMinuteDetailsOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // repeated .CDOTAUserMsg_StatsHeroMinuteDetails player_stats = 1;
    /**
     * repeated .CDOTAUserMsg_StatsHeroMinuteDetails player_stats = 1;
     */
    java.util.List 
        getPlayerStatsList();
    /**
     * repeated .CDOTAUserMsg_StatsHeroMinuteDetails player_stats = 1;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails getPlayerStats(int index);
    /**
     * repeated .CDOTAUserMsg_StatsHeroMinuteDetails player_stats = 1;
     */
    int getPlayerStatsCount();
    /**
     * repeated .CDOTAUserMsg_StatsHeroMinuteDetails player_stats = 1;
     */
    java.util.List 
        getPlayerStatsOrBuilderList();
    /**
     * repeated .CDOTAUserMsg_StatsHeroMinuteDetails player_stats = 1;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetailsOrBuilder getPlayerStatsOrBuilder(
        int index);

    // optional uint32 tower_kills = 2;
    /**
     * optional uint32 tower_kills = 2;
     */
    boolean hasTowerKills();
    /**
     * optional uint32 tower_kills = 2;
     */
    int getTowerKills();

    // optional uint32 barrack_kills = 3;
    /**
     * optional uint32 barrack_kills = 3;
     */
    boolean hasBarrackKills();
    /**
     * optional uint32 barrack_kills = 3;
     */
    int getBarrackKills();

    // optional uint32 available_lane_creep_gold = 4;
    /**
     * optional uint32 available_lane_creep_gold = 4;
     */
    boolean hasAvailableLaneCreepGold();
    /**
     * optional uint32 available_lane_creep_gold = 4;
     */
    int getAvailableLaneCreepGold();

    // optional uint32 balance_kill_value = 5;
    /**
     * optional uint32 balance_kill_value = 5;
     */
    boolean hasBalanceKillValue();
    /**
     * optional uint32 balance_kill_value = 5;
     */
    int getBalanceKillValue();

    // optional uint32 balance_tower_value = 6;
    /**
     * optional uint32 balance_tower_value = 6;
     */
    boolean hasBalanceTowerValue();
    /**
     * optional uint32 balance_tower_value = 6;
     */
    int getBalanceTowerValue();

    // optional uint32 balance_barracks_value = 7;
    /**
     * optional uint32 balance_barracks_value = 7;
     */
    boolean hasBalanceBarracksValue();
    /**
     * optional uint32 balance_barracks_value = 7;
     */
    int getBalanceBarracksValue();

    // optional uint32 balance_gold_value = 8;
    /**
     * optional uint32 balance_gold_value = 8;
     */
    boolean hasBalanceGoldValue();
    /**
     * optional uint32 balance_gold_value = 8;
     */
    int getBalanceGoldValue();

    // optional uint32 balance_xp_value = 9;
    /**
     * optional uint32 balance_xp_value = 9;
     */
    boolean hasBalanceXpValue();
    /**
     * optional uint32 balance_xp_value = 9;
     */
    int getBalanceXpValue();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_StatsTeamMinuteDetails}
   */
  public static final class CDOTAUserMsg_StatsTeamMinuteDetails extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_StatsTeamMinuteDetailsOrBuilder {
    // Use CDOTAUserMsg_StatsTeamMinuteDetails.newBuilder() to construct.
    private CDOTAUserMsg_StatsTeamMinuteDetails(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_StatsTeamMinuteDetails(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_StatsTeamMinuteDetails defaultInstance;
    public static CDOTAUserMsg_StatsTeamMinuteDetails getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_StatsTeamMinuteDetails getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_StatsTeamMinuteDetails(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                playerStats_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              playerStats_.add(input.readMessage(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails.PARSER, extensionRegistry));
              break;
            }
            case 16: {
              bitField0_ |= 0x00000001;
              towerKills_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000002;
              barrackKills_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000004;
              availableLaneCreepGold_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000008;
              balanceKillValue_ = input.readUInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000010;
              balanceTowerValue_ = input.readUInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000020;
              balanceBarracksValue_ = input.readUInt32();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000040;
              balanceGoldValue_ = input.readUInt32();
              break;
            }
            case 72: {
              bitField0_ |= 0x00000080;
              balanceXpValue_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          playerStats_ = java.util.Collections.unmodifiableList(playerStats_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_StatsTeamMinuteDetails_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_StatsTeamMinuteDetails_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_StatsTeamMinuteDetails parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_StatsTeamMinuteDetails(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // repeated .CDOTAUserMsg_StatsHeroMinuteDetails player_stats = 1;
    public static final int PLAYER_STATS_FIELD_NUMBER = 1;
    private java.util.List playerStats_;
    /**
     * repeated .CDOTAUserMsg_StatsHeroMinuteDetails player_stats = 1;
     */
    public java.util.List getPlayerStatsList() {
      return playerStats_;
    }
    /**
     * repeated .CDOTAUserMsg_StatsHeroMinuteDetails player_stats = 1;
     */
    public java.util.List 
        getPlayerStatsOrBuilderList() {
      return playerStats_;
    }
    /**
     * repeated .CDOTAUserMsg_StatsHeroMinuteDetails player_stats = 1;
     */
    public int getPlayerStatsCount() {
      return playerStats_.size();
    }
    /**
     * repeated .CDOTAUserMsg_StatsHeroMinuteDetails player_stats = 1;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails getPlayerStats(int index) {
      return playerStats_.get(index);
    }
    /**
     * repeated .CDOTAUserMsg_StatsHeroMinuteDetails player_stats = 1;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetailsOrBuilder getPlayerStatsOrBuilder(
        int index) {
      return playerStats_.get(index);
    }

    // optional uint32 tower_kills = 2;
    public static final int TOWER_KILLS_FIELD_NUMBER = 2;
    private int towerKills_;
    /**
     * optional uint32 tower_kills = 2;
     */
    public boolean hasTowerKills() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 tower_kills = 2;
     */
    public int getTowerKills() {
      return towerKills_;
    }

    // optional uint32 barrack_kills = 3;
    public static final int BARRACK_KILLS_FIELD_NUMBER = 3;
    private int barrackKills_;
    /**
     * optional uint32 barrack_kills = 3;
     */
    public boolean hasBarrackKills() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 barrack_kills = 3;
     */
    public int getBarrackKills() {
      return barrackKills_;
    }

    // optional uint32 available_lane_creep_gold = 4;
    public static final int AVAILABLE_LANE_CREEP_GOLD_FIELD_NUMBER = 4;
    private int availableLaneCreepGold_;
    /**
     * optional uint32 available_lane_creep_gold = 4;
     */
    public boolean hasAvailableLaneCreepGold() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 available_lane_creep_gold = 4;
     */
    public int getAvailableLaneCreepGold() {
      return availableLaneCreepGold_;
    }

    // optional uint32 balance_kill_value = 5;
    public static final int BALANCE_KILL_VALUE_FIELD_NUMBER = 5;
    private int balanceKillValue_;
    /**
     * optional uint32 balance_kill_value = 5;
     */
    public boolean hasBalanceKillValue() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 balance_kill_value = 5;
     */
    public int getBalanceKillValue() {
      return balanceKillValue_;
    }

    // optional uint32 balance_tower_value = 6;
    public static final int BALANCE_TOWER_VALUE_FIELD_NUMBER = 6;
    private int balanceTowerValue_;
    /**
     * optional uint32 balance_tower_value = 6;
     */
    public boolean hasBalanceTowerValue() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional uint32 balance_tower_value = 6;
     */
    public int getBalanceTowerValue() {
      return balanceTowerValue_;
    }

    // optional uint32 balance_barracks_value = 7;
    public static final int BALANCE_BARRACKS_VALUE_FIELD_NUMBER = 7;
    private int balanceBarracksValue_;
    /**
     * optional uint32 balance_barracks_value = 7;
     */
    public boolean hasBalanceBarracksValue() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional uint32 balance_barracks_value = 7;
     */
    public int getBalanceBarracksValue() {
      return balanceBarracksValue_;
    }

    // optional uint32 balance_gold_value = 8;
    public static final int BALANCE_GOLD_VALUE_FIELD_NUMBER = 8;
    private int balanceGoldValue_;
    /**
     * optional uint32 balance_gold_value = 8;
     */
    public boolean hasBalanceGoldValue() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional uint32 balance_gold_value = 8;
     */
    public int getBalanceGoldValue() {
      return balanceGoldValue_;
    }

    // optional uint32 balance_xp_value = 9;
    public static final int BALANCE_XP_VALUE_FIELD_NUMBER = 9;
    private int balanceXpValue_;
    /**
     * optional uint32 balance_xp_value = 9;
     */
    public boolean hasBalanceXpValue() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional uint32 balance_xp_value = 9;
     */
    public int getBalanceXpValue() {
      return balanceXpValue_;
    }

    private void initFields() {
      playerStats_ = java.util.Collections.emptyList();
      towerKills_ = 0;
      barrackKills_ = 0;
      availableLaneCreepGold_ = 0;
      balanceKillValue_ = 0;
      balanceTowerValue_ = 0;
      balanceBarracksValue_ = 0;
      balanceGoldValue_ = 0;
      balanceXpValue_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < playerStats_.size(); i++) {
        output.writeMessage(1, playerStats_.get(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(2, towerKills_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(3, barrackKills_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(4, availableLaneCreepGold_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(5, balanceKillValue_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(6, balanceTowerValue_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeUInt32(7, balanceBarracksValue_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeUInt32(8, balanceGoldValue_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeUInt32(9, balanceXpValue_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < playerStats_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, playerStats_.get(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, towerKills_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, barrackKills_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, availableLaneCreepGold_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, balanceKillValue_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, balanceTowerValue_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, balanceBarracksValue_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(8, balanceGoldValue_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(9, balanceXpValue_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_StatsTeamMinuteDetails}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetailsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_StatsTeamMinuteDetails_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_StatsTeamMinuteDetails_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getPlayerStatsFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (playerStatsBuilder_ == null) {
          playerStats_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          playerStatsBuilder_.clear();
        }
        towerKills_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        barrackKills_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        availableLaneCreepGold_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        balanceKillValue_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        balanceTowerValue_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        balanceBarracksValue_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        balanceGoldValue_ = 0;
        bitField0_ = (bitField0_ & ~0x00000080);
        balanceXpValue_ = 0;
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_StatsTeamMinuteDetails_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (playerStatsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            playerStats_ = java.util.Collections.unmodifiableList(playerStats_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.playerStats_ = playerStats_;
        } else {
          result.playerStats_ = playerStatsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000001;
        }
        result.towerKills_ = towerKills_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000002;
        }
        result.barrackKills_ = barrackKills_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000004;
        }
        result.availableLaneCreepGold_ = availableLaneCreepGold_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000008;
        }
        result.balanceKillValue_ = balanceKillValue_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000010;
        }
        result.balanceTowerValue_ = balanceTowerValue_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000020;
        }
        result.balanceBarracksValue_ = balanceBarracksValue_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000040;
        }
        result.balanceGoldValue_ = balanceGoldValue_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000080;
        }
        result.balanceXpValue_ = balanceXpValue_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails.getDefaultInstance()) return this;
        if (playerStatsBuilder_ == null) {
          if (!other.playerStats_.isEmpty()) {
            if (playerStats_.isEmpty()) {
              playerStats_ = other.playerStats_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensurePlayerStatsIsMutable();
              playerStats_.addAll(other.playerStats_);
            }
            onChanged();
          }
        } else {
          if (!other.playerStats_.isEmpty()) {
            if (playerStatsBuilder_.isEmpty()) {
              playerStatsBuilder_.dispose();
              playerStatsBuilder_ = null;
              playerStats_ = other.playerStats_;
              bitField0_ = (bitField0_ & ~0x00000001);
              playerStatsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getPlayerStatsFieldBuilder() : null;
            } else {
              playerStatsBuilder_.addAllMessages(other.playerStats_);
            }
          }
        }
        if (other.hasTowerKills()) {
          setTowerKills(other.getTowerKills());
        }
        if (other.hasBarrackKills()) {
          setBarrackKills(other.getBarrackKills());
        }
        if (other.hasAvailableLaneCreepGold()) {
          setAvailableLaneCreepGold(other.getAvailableLaneCreepGold());
        }
        if (other.hasBalanceKillValue()) {
          setBalanceKillValue(other.getBalanceKillValue());
        }
        if (other.hasBalanceTowerValue()) {
          setBalanceTowerValue(other.getBalanceTowerValue());
        }
        if (other.hasBalanceBarracksValue()) {
          setBalanceBarracksValue(other.getBalanceBarracksValue());
        }
        if (other.hasBalanceGoldValue()) {
          setBalanceGoldValue(other.getBalanceGoldValue());
        }
        if (other.hasBalanceXpValue()) {
          setBalanceXpValue(other.getBalanceXpValue());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // repeated .CDOTAUserMsg_StatsHeroMinuteDetails player_stats = 1;
      private java.util.List playerStats_ =
        java.util.Collections.emptyList();
      private void ensurePlayerStatsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          playerStats_ = new java.util.ArrayList(playerStats_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetailsOrBuilder> playerStatsBuilder_;

      /**
       * repeated .CDOTAUserMsg_StatsHeroMinuteDetails player_stats = 1;
       */
      public java.util.List getPlayerStatsList() {
        if (playerStatsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(playerStats_);
        } else {
          return playerStatsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroMinuteDetails player_stats = 1;
       */
      public int getPlayerStatsCount() {
        if (playerStatsBuilder_ == null) {
          return playerStats_.size();
        } else {
          return playerStatsBuilder_.getCount();
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroMinuteDetails player_stats = 1;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails getPlayerStats(int index) {
        if (playerStatsBuilder_ == null) {
          return playerStats_.get(index);
        } else {
          return playerStatsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroMinuteDetails player_stats = 1;
       */
      public Builder setPlayerStats(
          int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails value) {
        if (playerStatsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePlayerStatsIsMutable();
          playerStats_.set(index, value);
          onChanged();
        } else {
          playerStatsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroMinuteDetails player_stats = 1;
       */
      public Builder setPlayerStats(
          int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails.Builder builderForValue) {
        if (playerStatsBuilder_ == null) {
          ensurePlayerStatsIsMutable();
          playerStats_.set(index, builderForValue.build());
          onChanged();
        } else {
          playerStatsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroMinuteDetails player_stats = 1;
       */
      public Builder addPlayerStats(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails value) {
        if (playerStatsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePlayerStatsIsMutable();
          playerStats_.add(value);
          onChanged();
        } else {
          playerStatsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroMinuteDetails player_stats = 1;
       */
      public Builder addPlayerStats(
          int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails value) {
        if (playerStatsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePlayerStatsIsMutable();
          playerStats_.add(index, value);
          onChanged();
        } else {
          playerStatsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroMinuteDetails player_stats = 1;
       */
      public Builder addPlayerStats(
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails.Builder builderForValue) {
        if (playerStatsBuilder_ == null) {
          ensurePlayerStatsIsMutable();
          playerStats_.add(builderForValue.build());
          onChanged();
        } else {
          playerStatsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroMinuteDetails player_stats = 1;
       */
      public Builder addPlayerStats(
          int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails.Builder builderForValue) {
        if (playerStatsBuilder_ == null) {
          ensurePlayerStatsIsMutable();
          playerStats_.add(index, builderForValue.build());
          onChanged();
        } else {
          playerStatsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroMinuteDetails player_stats = 1;
       */
      public Builder addAllPlayerStats(
          java.lang.Iterable values) {
        if (playerStatsBuilder_ == null) {
          ensurePlayerStatsIsMutable();
          super.addAll(values, playerStats_);
          onChanged();
        } else {
          playerStatsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroMinuteDetails player_stats = 1;
       */
      public Builder clearPlayerStats() {
        if (playerStatsBuilder_ == null) {
          playerStats_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          playerStatsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroMinuteDetails player_stats = 1;
       */
      public Builder removePlayerStats(int index) {
        if (playerStatsBuilder_ == null) {
          ensurePlayerStatsIsMutable();
          playerStats_.remove(index);
          onChanged();
        } else {
          playerStatsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroMinuteDetails player_stats = 1;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails.Builder getPlayerStatsBuilder(
          int index) {
        return getPlayerStatsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroMinuteDetails player_stats = 1;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetailsOrBuilder getPlayerStatsOrBuilder(
          int index) {
        if (playerStatsBuilder_ == null) {
          return playerStats_.get(index);  } else {
          return playerStatsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroMinuteDetails player_stats = 1;
       */
      public java.util.List 
           getPlayerStatsOrBuilderList() {
        if (playerStatsBuilder_ != null) {
          return playerStatsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(playerStats_);
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroMinuteDetails player_stats = 1;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails.Builder addPlayerStatsBuilder() {
        return getPlayerStatsFieldBuilder().addBuilder(
            com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroMinuteDetails player_stats = 1;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails.Builder addPlayerStatsBuilder(
          int index) {
        return getPlayerStatsFieldBuilder().addBuilder(
            index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroMinuteDetails player_stats = 1;
       */
      public java.util.List 
           getPlayerStatsBuilderList() {
        return getPlayerStatsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetailsOrBuilder> 
          getPlayerStatsFieldBuilder() {
        if (playerStatsBuilder_ == null) {
          playerStatsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetails.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroMinuteDetailsOrBuilder>(
                  playerStats_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          playerStats_ = null;
        }
        return playerStatsBuilder_;
      }

      // optional uint32 tower_kills = 2;
      private int towerKills_ ;
      /**
       * optional uint32 tower_kills = 2;
       */
      public boolean hasTowerKills() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 tower_kills = 2;
       */
      public int getTowerKills() {
        return towerKills_;
      }
      /**
       * optional uint32 tower_kills = 2;
       */
      public Builder setTowerKills(int value) {
        bitField0_ |= 0x00000002;
        towerKills_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 tower_kills = 2;
       */
      public Builder clearTowerKills() {
        bitField0_ = (bitField0_ & ~0x00000002);
        towerKills_ = 0;
        onChanged();
        return this;
      }

      // optional uint32 barrack_kills = 3;
      private int barrackKills_ ;
      /**
       * optional uint32 barrack_kills = 3;
       */
      public boolean hasBarrackKills() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 barrack_kills = 3;
       */
      public int getBarrackKills() {
        return barrackKills_;
      }
      /**
       * optional uint32 barrack_kills = 3;
       */
      public Builder setBarrackKills(int value) {
        bitField0_ |= 0x00000004;
        barrackKills_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 barrack_kills = 3;
       */
      public Builder clearBarrackKills() {
        bitField0_ = (bitField0_ & ~0x00000004);
        barrackKills_ = 0;
        onChanged();
        return this;
      }

      // optional uint32 available_lane_creep_gold = 4;
      private int availableLaneCreepGold_ ;
      /**
       * optional uint32 available_lane_creep_gold = 4;
       */
      public boolean hasAvailableLaneCreepGold() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 available_lane_creep_gold = 4;
       */
      public int getAvailableLaneCreepGold() {
        return availableLaneCreepGold_;
      }
      /**
       * optional uint32 available_lane_creep_gold = 4;
       */
      public Builder setAvailableLaneCreepGold(int value) {
        bitField0_ |= 0x00000008;
        availableLaneCreepGold_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 available_lane_creep_gold = 4;
       */
      public Builder clearAvailableLaneCreepGold() {
        bitField0_ = (bitField0_ & ~0x00000008);
        availableLaneCreepGold_ = 0;
        onChanged();
        return this;
      }

      // optional uint32 balance_kill_value = 5;
      private int balanceKillValue_ ;
      /**
       * optional uint32 balance_kill_value = 5;
       */
      public boolean hasBalanceKillValue() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional uint32 balance_kill_value = 5;
       */
      public int getBalanceKillValue() {
        return balanceKillValue_;
      }
      /**
       * optional uint32 balance_kill_value = 5;
       */
      public Builder setBalanceKillValue(int value) {
        bitField0_ |= 0x00000010;
        balanceKillValue_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 balance_kill_value = 5;
       */
      public Builder clearBalanceKillValue() {
        bitField0_ = (bitField0_ & ~0x00000010);
        balanceKillValue_ = 0;
        onChanged();
        return this;
      }

      // optional uint32 balance_tower_value = 6;
      private int balanceTowerValue_ ;
      /**
       * optional uint32 balance_tower_value = 6;
       */
      public boolean hasBalanceTowerValue() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional uint32 balance_tower_value = 6;
       */
      public int getBalanceTowerValue() {
        return balanceTowerValue_;
      }
      /**
       * optional uint32 balance_tower_value = 6;
       */
      public Builder setBalanceTowerValue(int value) {
        bitField0_ |= 0x00000020;
        balanceTowerValue_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 balance_tower_value = 6;
       */
      public Builder clearBalanceTowerValue() {
        bitField0_ = (bitField0_ & ~0x00000020);
        balanceTowerValue_ = 0;
        onChanged();
        return this;
      }

      // optional uint32 balance_barracks_value = 7;
      private int balanceBarracksValue_ ;
      /**
       * optional uint32 balance_barracks_value = 7;
       */
      public boolean hasBalanceBarracksValue() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional uint32 balance_barracks_value = 7;
       */
      public int getBalanceBarracksValue() {
        return balanceBarracksValue_;
      }
      /**
       * optional uint32 balance_barracks_value = 7;
       */
      public Builder setBalanceBarracksValue(int value) {
        bitField0_ |= 0x00000040;
        balanceBarracksValue_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 balance_barracks_value = 7;
       */
      public Builder clearBalanceBarracksValue() {
        bitField0_ = (bitField0_ & ~0x00000040);
        balanceBarracksValue_ = 0;
        onChanged();
        return this;
      }

      // optional uint32 balance_gold_value = 8;
      private int balanceGoldValue_ ;
      /**
       * optional uint32 balance_gold_value = 8;
       */
      public boolean hasBalanceGoldValue() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional uint32 balance_gold_value = 8;
       */
      public int getBalanceGoldValue() {
        return balanceGoldValue_;
      }
      /**
       * optional uint32 balance_gold_value = 8;
       */
      public Builder setBalanceGoldValue(int value) {
        bitField0_ |= 0x00000080;
        balanceGoldValue_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 balance_gold_value = 8;
       */
      public Builder clearBalanceGoldValue() {
        bitField0_ = (bitField0_ & ~0x00000080);
        balanceGoldValue_ = 0;
        onChanged();
        return this;
      }

      // optional uint32 balance_xp_value = 9;
      private int balanceXpValue_ ;
      /**
       * optional uint32 balance_xp_value = 9;
       */
      public boolean hasBalanceXpValue() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * optional uint32 balance_xp_value = 9;
       */
      public int getBalanceXpValue() {
        return balanceXpValue_;
      }
      /**
       * optional uint32 balance_xp_value = 9;
       */
      public Builder setBalanceXpValue(int value) {
        bitField0_ |= 0x00000100;
        balanceXpValue_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 balance_xp_value = 9;
       */
      public Builder clearBalanceXpValue() {
        bitField0_ = (bitField0_ & ~0x00000100);
        balanceXpValue_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_StatsTeamMinuteDetails)
    }

    static {
      defaultInstance = new CDOTAUserMsg_StatsTeamMinuteDetails(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_StatsTeamMinuteDetails)
  }

  public interface CDOTAUserMsg_StatsPlayerKillShareOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional int32 player_id = 1;
    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    // optional float kill_share_percent = 2;
    /**
     * optional float kill_share_percent = 2;
     */
    boolean hasKillSharePercent();
    /**
     * optional float kill_share_percent = 2;
     */
    float getKillSharePercent();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_StatsPlayerKillShare}
   */
  public static final class CDOTAUserMsg_StatsPlayerKillShare extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_StatsPlayerKillShareOrBuilder {
    // Use CDOTAUserMsg_StatsPlayerKillShare.newBuilder() to construct.
    private CDOTAUserMsg_StatsPlayerKillShare(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_StatsPlayerKillShare(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_StatsPlayerKillShare defaultInstance;
    public static CDOTAUserMsg_StatsPlayerKillShare getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_StatsPlayerKillShare getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_StatsPlayerKillShare(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 21: {
              bitField0_ |= 0x00000002;
              killSharePercent_ = input.readFloat();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_StatsPlayerKillShare_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_StatsPlayerKillShare_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_StatsPlayerKillShare parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_StatsPlayerKillShare(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional int32 player_id = 1;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    // optional float kill_share_percent = 2;
    public static final int KILL_SHARE_PERCENT_FIELD_NUMBER = 2;
    private float killSharePercent_;
    /**
     * optional float kill_share_percent = 2;
     */
    public boolean hasKillSharePercent() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional float kill_share_percent = 2;
     */
    public float getKillSharePercent() {
      return killSharePercent_;
    }

    private void initFields() {
      playerId_ = 0;
      killSharePercent_ = 0F;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeFloat(2, killSharePercent_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(2, killSharePercent_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_StatsPlayerKillShare}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShareOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_StatsPlayerKillShare_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_StatsPlayerKillShare_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        killSharePercent_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_StatsPlayerKillShare_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.killSharePercent_ = killSharePercent_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasKillSharePercent()) {
          setKillSharePercent(other.getKillSharePercent());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional int32 player_id = 1;
      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      // optional float kill_share_percent = 2;
      private float killSharePercent_ ;
      /**
       * optional float kill_share_percent = 2;
       */
      public boolean hasKillSharePercent() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional float kill_share_percent = 2;
       */
      public float getKillSharePercent() {
        return killSharePercent_;
      }
      /**
       * optional float kill_share_percent = 2;
       */
      public Builder setKillSharePercent(float value) {
        bitField0_ |= 0x00000002;
        killSharePercent_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float kill_share_percent = 2;
       */
      public Builder clearKillSharePercent() {
        bitField0_ = (bitField0_ & ~0x00000002);
        killSharePercent_ = 0F;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_StatsPlayerKillShare)
    }

    static {
      defaultInstance = new CDOTAUserMsg_StatsPlayerKillShare(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_StatsPlayerKillShare)
  }

  public interface CDOTAUserMsg_StatsKillDetailsOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional uint32 victim_id = 1;
    /**
     * optional uint32 victim_id = 1;
     */
    boolean hasVictimId();
    /**
     * optional uint32 victim_id = 1;
     */
    int getVictimId();

    // repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
    /**
     * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
     */
    java.util.List 
        getKillSharesList();
    /**
     * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare getKillShares(int index);
    /**
     * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
     */
    int getKillSharesCount();
    /**
     * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
     */
    java.util.List 
        getKillSharesOrBuilderList();
    /**
     * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShareOrBuilder getKillSharesOrBuilder(
        int index);

    // optional uint32 damage_to_kill = 3;
    /**
     * optional uint32 damage_to_kill = 3;
     */
    boolean hasDamageToKill();
    /**
     * optional uint32 damage_to_kill = 3;
     */
    int getDamageToKill();

    // optional uint32 effective_health = 4;
    /**
     * optional uint32 effective_health = 4;
     */
    boolean hasEffectiveHealth();
    /**
     * optional uint32 effective_health = 4;
     */
    int getEffectiveHealth();

    // optional float death_time = 5;
    /**
     * optional float death_time = 5;
     */
    boolean hasDeathTime();
    /**
     * optional float death_time = 5;
     */
    float getDeathTime();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_StatsKillDetails}
   */
  public static final class CDOTAUserMsg_StatsKillDetails extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_StatsKillDetailsOrBuilder {
    // Use CDOTAUserMsg_StatsKillDetails.newBuilder() to construct.
    private CDOTAUserMsg_StatsKillDetails(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_StatsKillDetails(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_StatsKillDetails defaultInstance;
    public static CDOTAUserMsg_StatsKillDetails getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_StatsKillDetails getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_StatsKillDetails(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              victimId_ = input.readUInt32();
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                killShares_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              killShares_.add(input.readMessage(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare.PARSER, extensionRegistry));
              break;
            }
            case 24: {
              bitField0_ |= 0x00000002;
              damageToKill_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000004;
              effectiveHealth_ = input.readUInt32();
              break;
            }
            case 45: {
              bitField0_ |= 0x00000008;
              deathTime_ = input.readFloat();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          killShares_ = java.util.Collections.unmodifiableList(killShares_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_StatsKillDetails_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_StatsKillDetails_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_StatsKillDetails parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_StatsKillDetails(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional uint32 victim_id = 1;
    public static final int VICTIM_ID_FIELD_NUMBER = 1;
    private int victimId_;
    /**
     * optional uint32 victim_id = 1;
     */
    public boolean hasVictimId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 victim_id = 1;
     */
    public int getVictimId() {
      return victimId_;
    }

    // repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
    public static final int KILL_SHARES_FIELD_NUMBER = 2;
    private java.util.List killShares_;
    /**
     * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
     */
    public java.util.List getKillSharesList() {
      return killShares_;
    }
    /**
     * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
     */
    public java.util.List 
        getKillSharesOrBuilderList() {
      return killShares_;
    }
    /**
     * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
     */
    public int getKillSharesCount() {
      return killShares_.size();
    }
    /**
     * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare getKillShares(int index) {
      return killShares_.get(index);
    }
    /**
     * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShareOrBuilder getKillSharesOrBuilder(
        int index) {
      return killShares_.get(index);
    }

    // optional uint32 damage_to_kill = 3;
    public static final int DAMAGE_TO_KILL_FIELD_NUMBER = 3;
    private int damageToKill_;
    /**
     * optional uint32 damage_to_kill = 3;
     */
    public boolean hasDamageToKill() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 damage_to_kill = 3;
     */
    public int getDamageToKill() {
      return damageToKill_;
    }

    // optional uint32 effective_health = 4;
    public static final int EFFECTIVE_HEALTH_FIELD_NUMBER = 4;
    private int effectiveHealth_;
    /**
     * optional uint32 effective_health = 4;
     */
    public boolean hasEffectiveHealth() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 effective_health = 4;
     */
    public int getEffectiveHealth() {
      return effectiveHealth_;
    }

    // optional float death_time = 5;
    public static final int DEATH_TIME_FIELD_NUMBER = 5;
    private float deathTime_;
    /**
     * optional float death_time = 5;
     */
    public boolean hasDeathTime() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional float death_time = 5;
     */
    public float getDeathTime() {
      return deathTime_;
    }

    private void initFields() {
      victimId_ = 0;
      killShares_ = java.util.Collections.emptyList();
      damageToKill_ = 0;
      effectiveHealth_ = 0;
      deathTime_ = 0F;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, victimId_);
      }
      for (int i = 0; i < killShares_.size(); i++) {
        output.writeMessage(2, killShares_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(3, damageToKill_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(4, effectiveHealth_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeFloat(5, deathTime_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, victimId_);
      }
      for (int i = 0; i < killShares_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, killShares_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, damageToKill_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, effectiveHealth_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(5, deathTime_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_StatsKillDetails}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetailsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_StatsKillDetails_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_StatsKillDetails_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getKillSharesFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        victimId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (killSharesBuilder_ == null) {
          killShares_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          killSharesBuilder_.clear();
        }
        damageToKill_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        effectiveHealth_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        deathTime_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_StatsKillDetails_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.victimId_ = victimId_;
        if (killSharesBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            killShares_ = java.util.Collections.unmodifiableList(killShares_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.killShares_ = killShares_;
        } else {
          result.killShares_ = killSharesBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000002;
        }
        result.damageToKill_ = damageToKill_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000004;
        }
        result.effectiveHealth_ = effectiveHealth_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000008;
        }
        result.deathTime_ = deathTime_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails.getDefaultInstance()) return this;
        if (other.hasVictimId()) {
          setVictimId(other.getVictimId());
        }
        if (killSharesBuilder_ == null) {
          if (!other.killShares_.isEmpty()) {
            if (killShares_.isEmpty()) {
              killShares_ = other.killShares_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureKillSharesIsMutable();
              killShares_.addAll(other.killShares_);
            }
            onChanged();
          }
        } else {
          if (!other.killShares_.isEmpty()) {
            if (killSharesBuilder_.isEmpty()) {
              killSharesBuilder_.dispose();
              killSharesBuilder_ = null;
              killShares_ = other.killShares_;
              bitField0_ = (bitField0_ & ~0x00000002);
              killSharesBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getKillSharesFieldBuilder() : null;
            } else {
              killSharesBuilder_.addAllMessages(other.killShares_);
            }
          }
        }
        if (other.hasDamageToKill()) {
          setDamageToKill(other.getDamageToKill());
        }
        if (other.hasEffectiveHealth()) {
          setEffectiveHealth(other.getEffectiveHealth());
        }
        if (other.hasDeathTime()) {
          setDeathTime(other.getDeathTime());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional uint32 victim_id = 1;
      private int victimId_ ;
      /**
       * optional uint32 victim_id = 1;
       */
      public boolean hasVictimId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 victim_id = 1;
       */
      public int getVictimId() {
        return victimId_;
      }
      /**
       * optional uint32 victim_id = 1;
       */
      public Builder setVictimId(int value) {
        bitField0_ |= 0x00000001;
        victimId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 victim_id = 1;
       */
      public Builder clearVictimId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        victimId_ = 0;
        onChanged();
        return this;
      }

      // repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
      private java.util.List killShares_ =
        java.util.Collections.emptyList();
      private void ensureKillSharesIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          killShares_ = new java.util.ArrayList(killShares_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShareOrBuilder> killSharesBuilder_;

      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public java.util.List getKillSharesList() {
        if (killSharesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(killShares_);
        } else {
          return killSharesBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public int getKillSharesCount() {
        if (killSharesBuilder_ == null) {
          return killShares_.size();
        } else {
          return killSharesBuilder_.getCount();
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare getKillShares(int index) {
        if (killSharesBuilder_ == null) {
          return killShares_.get(index);
        } else {
          return killSharesBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public Builder setKillShares(
          int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare value) {
        if (killSharesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKillSharesIsMutable();
          killShares_.set(index, value);
          onChanged();
        } else {
          killSharesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public Builder setKillShares(
          int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare.Builder builderForValue) {
        if (killSharesBuilder_ == null) {
          ensureKillSharesIsMutable();
          killShares_.set(index, builderForValue.build());
          onChanged();
        } else {
          killSharesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public Builder addKillShares(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare value) {
        if (killSharesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKillSharesIsMutable();
          killShares_.add(value);
          onChanged();
        } else {
          killSharesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public Builder addKillShares(
          int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare value) {
        if (killSharesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKillSharesIsMutable();
          killShares_.add(index, value);
          onChanged();
        } else {
          killSharesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public Builder addKillShares(
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare.Builder builderForValue) {
        if (killSharesBuilder_ == null) {
          ensureKillSharesIsMutable();
          killShares_.add(builderForValue.build());
          onChanged();
        } else {
          killSharesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public Builder addKillShares(
          int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare.Builder builderForValue) {
        if (killSharesBuilder_ == null) {
          ensureKillSharesIsMutable();
          killShares_.add(index, builderForValue.build());
          onChanged();
        } else {
          killSharesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public Builder addAllKillShares(
          java.lang.Iterable values) {
        if (killSharesBuilder_ == null) {
          ensureKillSharesIsMutable();
          super.addAll(values, killShares_);
          onChanged();
        } else {
          killSharesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public Builder clearKillShares() {
        if (killSharesBuilder_ == null) {
          killShares_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          killSharesBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public Builder removeKillShares(int index) {
        if (killSharesBuilder_ == null) {
          ensureKillSharesIsMutable();
          killShares_.remove(index);
          onChanged();
        } else {
          killSharesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare.Builder getKillSharesBuilder(
          int index) {
        return getKillSharesFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShareOrBuilder getKillSharesOrBuilder(
          int index) {
        if (killSharesBuilder_ == null) {
          return killShares_.get(index);  } else {
          return killSharesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public java.util.List 
           getKillSharesOrBuilderList() {
        if (killSharesBuilder_ != null) {
          return killSharesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(killShares_);
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare.Builder addKillSharesBuilder() {
        return getKillSharesFieldBuilder().addBuilder(
            com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare.Builder addKillSharesBuilder(
          int index) {
        return getKillSharesFieldBuilder().addBuilder(
            index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public java.util.List 
           getKillSharesBuilderList() {
        return getKillSharesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShareOrBuilder> 
          getKillSharesFieldBuilder() {
        if (killSharesBuilder_ == null) {
          killSharesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShare.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsPlayerKillShareOrBuilder>(
                  killShares_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          killShares_ = null;
        }
        return killSharesBuilder_;
      }

      // optional uint32 damage_to_kill = 3;
      private int damageToKill_ ;
      /**
       * optional uint32 damage_to_kill = 3;
       */
      public boolean hasDamageToKill() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 damage_to_kill = 3;
       */
      public int getDamageToKill() {
        return damageToKill_;
      }
      /**
       * optional uint32 damage_to_kill = 3;
       */
      public Builder setDamageToKill(int value) {
        bitField0_ |= 0x00000004;
        damageToKill_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 damage_to_kill = 3;
       */
      public Builder clearDamageToKill() {
        bitField0_ = (bitField0_ & ~0x00000004);
        damageToKill_ = 0;
        onChanged();
        return this;
      }

      // optional uint32 effective_health = 4;
      private int effectiveHealth_ ;
      /**
       * optional uint32 effective_health = 4;
       */
      public boolean hasEffectiveHealth() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 effective_health = 4;
       */
      public int getEffectiveHealth() {
        return effectiveHealth_;
      }
      /**
       * optional uint32 effective_health = 4;
       */
      public Builder setEffectiveHealth(int value) {
        bitField0_ |= 0x00000008;
        effectiveHealth_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 effective_health = 4;
       */
      public Builder clearEffectiveHealth() {
        bitField0_ = (bitField0_ & ~0x00000008);
        effectiveHealth_ = 0;
        onChanged();
        return this;
      }

      // optional float death_time = 5;
      private float deathTime_ ;
      /**
       * optional float death_time = 5;
       */
      public boolean hasDeathTime() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional float death_time = 5;
       */
      public float getDeathTime() {
        return deathTime_;
      }
      /**
       * optional float death_time = 5;
       */
      public Builder setDeathTime(float value) {
        bitField0_ |= 0x00000010;
        deathTime_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float death_time = 5;
       */
      public Builder clearDeathTime() {
        bitField0_ = (bitField0_ & ~0x00000010);
        deathTime_ = 0F;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_StatsKillDetails)
    }

    static {
      defaultInstance = new CDOTAUserMsg_StatsKillDetails(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_StatsKillDetails)
  }

  public interface CDOTAUserMsg_StatsMatchDetailsOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // repeated .CDOTAUserMsg_StatsHeroLookup hero_lookup = 1;
    /**
     * repeated .CDOTAUserMsg_StatsHeroLookup hero_lookup = 1;
     */
    java.util.List 
        getHeroLookupList();
    /**
     * repeated .CDOTAUserMsg_StatsHeroLookup hero_lookup = 1;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup getHeroLookup(int index);
    /**
     * repeated .CDOTAUserMsg_StatsHeroLookup hero_lookup = 1;
     */
    int getHeroLookupCount();
    /**
     * repeated .CDOTAUserMsg_StatsHeroLookup hero_lookup = 1;
     */
    java.util.List 
        getHeroLookupOrBuilderList();
    /**
     * repeated .CDOTAUserMsg_StatsHeroLookup hero_lookup = 1;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookupOrBuilder getHeroLookupOrBuilder(
        int index);

    // repeated .CDOTAUserMsg_StatsTeamMinuteDetails radiant_stats = 2;
    /**
     * repeated .CDOTAUserMsg_StatsTeamMinuteDetails radiant_stats = 2;
     */
    java.util.List 
        getRadiantStatsList();
    /**
     * repeated .CDOTAUserMsg_StatsTeamMinuteDetails radiant_stats = 2;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails getRadiantStats(int index);
    /**
     * repeated .CDOTAUserMsg_StatsTeamMinuteDetails radiant_stats = 2;
     */
    int getRadiantStatsCount();
    /**
     * repeated .CDOTAUserMsg_StatsTeamMinuteDetails radiant_stats = 2;
     */
    java.util.List 
        getRadiantStatsOrBuilderList();
    /**
     * repeated .CDOTAUserMsg_StatsTeamMinuteDetails radiant_stats = 2;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetailsOrBuilder getRadiantStatsOrBuilder(
        int index);

    // repeated .CDOTAUserMsg_StatsTeamMinuteDetails dire_stats = 3;
    /**
     * repeated .CDOTAUserMsg_StatsTeamMinuteDetails dire_stats = 3;
     */
    java.util.List 
        getDireStatsList();
    /**
     * repeated .CDOTAUserMsg_StatsTeamMinuteDetails dire_stats = 3;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails getDireStats(int index);
    /**
     * repeated .CDOTAUserMsg_StatsTeamMinuteDetails dire_stats = 3;
     */
    int getDireStatsCount();
    /**
     * repeated .CDOTAUserMsg_StatsTeamMinuteDetails dire_stats = 3;
     */
    java.util.List 
        getDireStatsOrBuilderList();
    /**
     * repeated .CDOTAUserMsg_StatsTeamMinuteDetails dire_stats = 3;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetailsOrBuilder getDireStatsOrBuilder(
        int index);

    // repeated .CDOTAUserMsg_StatsKillDetails radiant_kills = 4;
    /**
     * repeated .CDOTAUserMsg_StatsKillDetails radiant_kills = 4;
     */
    java.util.List 
        getRadiantKillsList();
    /**
     * repeated .CDOTAUserMsg_StatsKillDetails radiant_kills = 4;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails getRadiantKills(int index);
    /**
     * repeated .CDOTAUserMsg_StatsKillDetails radiant_kills = 4;
     */
    int getRadiantKillsCount();
    /**
     * repeated .CDOTAUserMsg_StatsKillDetails radiant_kills = 4;
     */
    java.util.List 
        getRadiantKillsOrBuilderList();
    /**
     * repeated .CDOTAUserMsg_StatsKillDetails radiant_kills = 4;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetailsOrBuilder getRadiantKillsOrBuilder(
        int index);

    // repeated .CDOTAUserMsg_StatsKillDetails dire_kills = 5;
    /**
     * repeated .CDOTAUserMsg_StatsKillDetails dire_kills = 5;
     */
    java.util.List 
        getDireKillsList();
    /**
     * repeated .CDOTAUserMsg_StatsKillDetails dire_kills = 5;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails getDireKills(int index);
    /**
     * repeated .CDOTAUserMsg_StatsKillDetails dire_kills = 5;
     */
    int getDireKillsCount();
    /**
     * repeated .CDOTAUserMsg_StatsKillDetails dire_kills = 5;
     */
    java.util.List 
        getDireKillsOrBuilderList();
    /**
     * repeated .CDOTAUserMsg_StatsKillDetails dire_kills = 5;
     */
    com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetailsOrBuilder getDireKillsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_StatsMatchDetails}
   */
  public static final class CDOTAUserMsg_StatsMatchDetails extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_StatsMatchDetailsOrBuilder {
    // Use CDOTAUserMsg_StatsMatchDetails.newBuilder() to construct.
    private CDOTAUserMsg_StatsMatchDetails(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_StatsMatchDetails(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_StatsMatchDetails defaultInstance;
    public static CDOTAUserMsg_StatsMatchDetails getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_StatsMatchDetails getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_StatsMatchDetails(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                heroLookup_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              heroLookup_.add(input.readMessage(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup.PARSER, extensionRegistry));
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                radiantStats_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              radiantStats_.add(input.readMessage(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails.PARSER, extensionRegistry));
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                direStats_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000004;
              }
              direStats_.add(input.readMessage(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails.PARSER, extensionRegistry));
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                radiantKills_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000008;
              }
              radiantKills_.add(input.readMessage(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails.PARSER, extensionRegistry));
              break;
            }
            case 42: {
              if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                direKills_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000010;
              }
              direKills_.add(input.readMessage(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          heroLookup_ = java.util.Collections.unmodifiableList(heroLookup_);
        }
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          radiantStats_ = java.util.Collections.unmodifiableList(radiantStats_);
        }
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          direStats_ = java.util.Collections.unmodifiableList(direStats_);
        }
        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
          radiantKills_ = java.util.Collections.unmodifiableList(radiantKills_);
        }
        if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
          direKills_ = java.util.Collections.unmodifiableList(direKills_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_StatsMatchDetails_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_StatsMatchDetails_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsMatchDetails.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsMatchDetails.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_StatsMatchDetails parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_StatsMatchDetails(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    // repeated .CDOTAUserMsg_StatsHeroLookup hero_lookup = 1;
    public static final int HERO_LOOKUP_FIELD_NUMBER = 1;
    private java.util.List heroLookup_;
    /**
     * repeated .CDOTAUserMsg_StatsHeroLookup hero_lookup = 1;
     */
    public java.util.List getHeroLookupList() {
      return heroLookup_;
    }
    /**
     * repeated .CDOTAUserMsg_StatsHeroLookup hero_lookup = 1;
     */
    public java.util.List 
        getHeroLookupOrBuilderList() {
      return heroLookup_;
    }
    /**
     * repeated .CDOTAUserMsg_StatsHeroLookup hero_lookup = 1;
     */
    public int getHeroLookupCount() {
      return heroLookup_.size();
    }
    /**
     * repeated .CDOTAUserMsg_StatsHeroLookup hero_lookup = 1;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup getHeroLookup(int index) {
      return heroLookup_.get(index);
    }
    /**
     * repeated .CDOTAUserMsg_StatsHeroLookup hero_lookup = 1;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookupOrBuilder getHeroLookupOrBuilder(
        int index) {
      return heroLookup_.get(index);
    }

    // repeated .CDOTAUserMsg_StatsTeamMinuteDetails radiant_stats = 2;
    public static final int RADIANT_STATS_FIELD_NUMBER = 2;
    private java.util.List radiantStats_;
    /**
     * repeated .CDOTAUserMsg_StatsTeamMinuteDetails radiant_stats = 2;
     */
    public java.util.List getRadiantStatsList() {
      return radiantStats_;
    }
    /**
     * repeated .CDOTAUserMsg_StatsTeamMinuteDetails radiant_stats = 2;
     */
    public java.util.List 
        getRadiantStatsOrBuilderList() {
      return radiantStats_;
    }
    /**
     * repeated .CDOTAUserMsg_StatsTeamMinuteDetails radiant_stats = 2;
     */
    public int getRadiantStatsCount() {
      return radiantStats_.size();
    }
    /**
     * repeated .CDOTAUserMsg_StatsTeamMinuteDetails radiant_stats = 2;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails getRadiantStats(int index) {
      return radiantStats_.get(index);
    }
    /**
     * repeated .CDOTAUserMsg_StatsTeamMinuteDetails radiant_stats = 2;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetailsOrBuilder getRadiantStatsOrBuilder(
        int index) {
      return radiantStats_.get(index);
    }

    // repeated .CDOTAUserMsg_StatsTeamMinuteDetails dire_stats = 3;
    public static final int DIRE_STATS_FIELD_NUMBER = 3;
    private java.util.List direStats_;
    /**
     * repeated .CDOTAUserMsg_StatsTeamMinuteDetails dire_stats = 3;
     */
    public java.util.List getDireStatsList() {
      return direStats_;
    }
    /**
     * repeated .CDOTAUserMsg_StatsTeamMinuteDetails dire_stats = 3;
     */
    public java.util.List 
        getDireStatsOrBuilderList() {
      return direStats_;
    }
    /**
     * repeated .CDOTAUserMsg_StatsTeamMinuteDetails dire_stats = 3;
     */
    public int getDireStatsCount() {
      return direStats_.size();
    }
    /**
     * repeated .CDOTAUserMsg_StatsTeamMinuteDetails dire_stats = 3;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails getDireStats(int index) {
      return direStats_.get(index);
    }
    /**
     * repeated .CDOTAUserMsg_StatsTeamMinuteDetails dire_stats = 3;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetailsOrBuilder getDireStatsOrBuilder(
        int index) {
      return direStats_.get(index);
    }

    // repeated .CDOTAUserMsg_StatsKillDetails radiant_kills = 4;
    public static final int RADIANT_KILLS_FIELD_NUMBER = 4;
    private java.util.List radiantKills_;
    /**
     * repeated .CDOTAUserMsg_StatsKillDetails radiant_kills = 4;
     */
    public java.util.List getRadiantKillsList() {
      return radiantKills_;
    }
    /**
     * repeated .CDOTAUserMsg_StatsKillDetails radiant_kills = 4;
     */
    public java.util.List 
        getRadiantKillsOrBuilderList() {
      return radiantKills_;
    }
    /**
     * repeated .CDOTAUserMsg_StatsKillDetails radiant_kills = 4;
     */
    public int getRadiantKillsCount() {
      return radiantKills_.size();
    }
    /**
     * repeated .CDOTAUserMsg_StatsKillDetails radiant_kills = 4;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails getRadiantKills(int index) {
      return radiantKills_.get(index);
    }
    /**
     * repeated .CDOTAUserMsg_StatsKillDetails radiant_kills = 4;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetailsOrBuilder getRadiantKillsOrBuilder(
        int index) {
      return radiantKills_.get(index);
    }

    // repeated .CDOTAUserMsg_StatsKillDetails dire_kills = 5;
    public static final int DIRE_KILLS_FIELD_NUMBER = 5;
    private java.util.List direKills_;
    /**
     * repeated .CDOTAUserMsg_StatsKillDetails dire_kills = 5;
     */
    public java.util.List getDireKillsList() {
      return direKills_;
    }
    /**
     * repeated .CDOTAUserMsg_StatsKillDetails dire_kills = 5;
     */
    public java.util.List 
        getDireKillsOrBuilderList() {
      return direKills_;
    }
    /**
     * repeated .CDOTAUserMsg_StatsKillDetails dire_kills = 5;
     */
    public int getDireKillsCount() {
      return direKills_.size();
    }
    /**
     * repeated .CDOTAUserMsg_StatsKillDetails dire_kills = 5;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails getDireKills(int index) {
      return direKills_.get(index);
    }
    /**
     * repeated .CDOTAUserMsg_StatsKillDetails dire_kills = 5;
     */
    public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetailsOrBuilder getDireKillsOrBuilder(
        int index) {
      return direKills_.get(index);
    }

    private void initFields() {
      heroLookup_ = java.util.Collections.emptyList();
      radiantStats_ = java.util.Collections.emptyList();
      direStats_ = java.util.Collections.emptyList();
      radiantKills_ = java.util.Collections.emptyList();
      direKills_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < heroLookup_.size(); i++) {
        output.writeMessage(1, heroLookup_.get(i));
      }
      for (int i = 0; i < radiantStats_.size(); i++) {
        output.writeMessage(2, radiantStats_.get(i));
      }
      for (int i = 0; i < direStats_.size(); i++) {
        output.writeMessage(3, direStats_.get(i));
      }
      for (int i = 0; i < radiantKills_.size(); i++) {
        output.writeMessage(4, radiantKills_.get(i));
      }
      for (int i = 0; i < direKills_.size(); i++) {
        output.writeMessage(5, direKills_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < heroLookup_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, heroLookup_.get(i));
      }
      for (int i = 0; i < radiantStats_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, radiantStats_.get(i));
      }
      for (int i = 0; i < direStats_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, direStats_.get(i));
      }
      for (int i = 0; i < radiantKills_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, radiantKills_.get(i));
      }
      for (int i = 0; i < direKills_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, direKills_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsMatchDetails parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsMatchDetails parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsMatchDetails parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsMatchDetails parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsMatchDetails parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsMatchDetails parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsMatchDetails parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsMatchDetails parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsMatchDetails parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsMatchDetails parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsMatchDetails prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_StatsMatchDetails}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsMatchDetailsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_StatsMatchDetails_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_StatsMatchDetails_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsMatchDetails.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsMatchDetails.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsMatchDetails.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getHeroLookupFieldBuilder();
          getRadiantStatsFieldBuilder();
          getDireStatsFieldBuilder();
          getRadiantKillsFieldBuilder();
          getDireKillsFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (heroLookupBuilder_ == null) {
          heroLookup_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          heroLookupBuilder_.clear();
        }
        if (radiantStatsBuilder_ == null) {
          radiantStats_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          radiantStatsBuilder_.clear();
        }
        if (direStatsBuilder_ == null) {
          direStats_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          direStatsBuilder_.clear();
        }
        if (radiantKillsBuilder_ == null) {
          radiantKills_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
        } else {
          radiantKillsBuilder_.clear();
        }
        if (direKillsBuilder_ == null) {
          direKills_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
        } else {
          direKillsBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_StatsMatchDetails_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsMatchDetails getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsMatchDetails.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsMatchDetails build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsMatchDetails result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsMatchDetails buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsMatchDetails result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsMatchDetails(this);
        int from_bitField0_ = bitField0_;
        if (heroLookupBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            heroLookup_ = java.util.Collections.unmodifiableList(heroLookup_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.heroLookup_ = heroLookup_;
        } else {
          result.heroLookup_ = heroLookupBuilder_.build();
        }
        if (radiantStatsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            radiantStats_ = java.util.Collections.unmodifiableList(radiantStats_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.radiantStats_ = radiantStats_;
        } else {
          result.radiantStats_ = radiantStatsBuilder_.build();
        }
        if (direStatsBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            direStats_ = java.util.Collections.unmodifiableList(direStats_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.direStats_ = direStats_;
        } else {
          result.direStats_ = direStatsBuilder_.build();
        }
        if (radiantKillsBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            radiantKills_ = java.util.Collections.unmodifiableList(radiantKills_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.radiantKills_ = radiantKills_;
        } else {
          result.radiantKills_ = radiantKillsBuilder_.build();
        }
        if (direKillsBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            direKills_ = java.util.Collections.unmodifiableList(direKills_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.direKills_ = direKills_;
        } else {
          result.direKills_ = direKillsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsMatchDetails) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsMatchDetails)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsMatchDetails other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsMatchDetails.getDefaultInstance()) return this;
        if (heroLookupBuilder_ == null) {
          if (!other.heroLookup_.isEmpty()) {
            if (heroLookup_.isEmpty()) {
              heroLookup_ = other.heroLookup_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureHeroLookupIsMutable();
              heroLookup_.addAll(other.heroLookup_);
            }
            onChanged();
          }
        } else {
          if (!other.heroLookup_.isEmpty()) {
            if (heroLookupBuilder_.isEmpty()) {
              heroLookupBuilder_.dispose();
              heroLookupBuilder_ = null;
              heroLookup_ = other.heroLookup_;
              bitField0_ = (bitField0_ & ~0x00000001);
              heroLookupBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getHeroLookupFieldBuilder() : null;
            } else {
              heroLookupBuilder_.addAllMessages(other.heroLookup_);
            }
          }
        }
        if (radiantStatsBuilder_ == null) {
          if (!other.radiantStats_.isEmpty()) {
            if (radiantStats_.isEmpty()) {
              radiantStats_ = other.radiantStats_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureRadiantStatsIsMutable();
              radiantStats_.addAll(other.radiantStats_);
            }
            onChanged();
          }
        } else {
          if (!other.radiantStats_.isEmpty()) {
            if (radiantStatsBuilder_.isEmpty()) {
              radiantStatsBuilder_.dispose();
              radiantStatsBuilder_ = null;
              radiantStats_ = other.radiantStats_;
              bitField0_ = (bitField0_ & ~0x00000002);
              radiantStatsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getRadiantStatsFieldBuilder() : null;
            } else {
              radiantStatsBuilder_.addAllMessages(other.radiantStats_);
            }
          }
        }
        if (direStatsBuilder_ == null) {
          if (!other.direStats_.isEmpty()) {
            if (direStats_.isEmpty()) {
              direStats_ = other.direStats_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureDireStatsIsMutable();
              direStats_.addAll(other.direStats_);
            }
            onChanged();
          }
        } else {
          if (!other.direStats_.isEmpty()) {
            if (direStatsBuilder_.isEmpty()) {
              direStatsBuilder_.dispose();
              direStatsBuilder_ = null;
              direStats_ = other.direStats_;
              bitField0_ = (bitField0_ & ~0x00000004);
              direStatsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getDireStatsFieldBuilder() : null;
            } else {
              direStatsBuilder_.addAllMessages(other.direStats_);
            }
          }
        }
        if (radiantKillsBuilder_ == null) {
          if (!other.radiantKills_.isEmpty()) {
            if (radiantKills_.isEmpty()) {
              radiantKills_ = other.radiantKills_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureRadiantKillsIsMutable();
              radiantKills_.addAll(other.radiantKills_);
            }
            onChanged();
          }
        } else {
          if (!other.radiantKills_.isEmpty()) {
            if (radiantKillsBuilder_.isEmpty()) {
              radiantKillsBuilder_.dispose();
              radiantKillsBuilder_ = null;
              radiantKills_ = other.radiantKills_;
              bitField0_ = (bitField0_ & ~0x00000008);
              radiantKillsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getRadiantKillsFieldBuilder() : null;
            } else {
              radiantKillsBuilder_.addAllMessages(other.radiantKills_);
            }
          }
        }
        if (direKillsBuilder_ == null) {
          if (!other.direKills_.isEmpty()) {
            if (direKills_.isEmpty()) {
              direKills_ = other.direKills_;
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensureDireKillsIsMutable();
              direKills_.addAll(other.direKills_);
            }
            onChanged();
          }
        } else {
          if (!other.direKills_.isEmpty()) {
            if (direKillsBuilder_.isEmpty()) {
              direKillsBuilder_.dispose();
              direKillsBuilder_ = null;
              direKills_ = other.direKills_;
              bitField0_ = (bitField0_ & ~0x00000010);
              direKillsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getDireKillsFieldBuilder() : null;
            } else {
              direKillsBuilder_.addAllMessages(other.direKills_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsMatchDetails parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsMatchDetails) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // repeated .CDOTAUserMsg_StatsHeroLookup hero_lookup = 1;
      private java.util.List heroLookup_ =
        java.util.Collections.emptyList();
      private void ensureHeroLookupIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          heroLookup_ = new java.util.ArrayList(heroLookup_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookupOrBuilder> heroLookupBuilder_;

      /**
       * repeated .CDOTAUserMsg_StatsHeroLookup hero_lookup = 1;
       */
      public java.util.List getHeroLookupList() {
        if (heroLookupBuilder_ == null) {
          return java.util.Collections.unmodifiableList(heroLookup_);
        } else {
          return heroLookupBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroLookup hero_lookup = 1;
       */
      public int getHeroLookupCount() {
        if (heroLookupBuilder_ == null) {
          return heroLookup_.size();
        } else {
          return heroLookupBuilder_.getCount();
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroLookup hero_lookup = 1;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup getHeroLookup(int index) {
        if (heroLookupBuilder_ == null) {
          return heroLookup_.get(index);
        } else {
          return heroLookupBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroLookup hero_lookup = 1;
       */
      public Builder setHeroLookup(
          int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup value) {
        if (heroLookupBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHeroLookupIsMutable();
          heroLookup_.set(index, value);
          onChanged();
        } else {
          heroLookupBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroLookup hero_lookup = 1;
       */
      public Builder setHeroLookup(
          int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup.Builder builderForValue) {
        if (heroLookupBuilder_ == null) {
          ensureHeroLookupIsMutable();
          heroLookup_.set(index, builderForValue.build());
          onChanged();
        } else {
          heroLookupBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroLookup hero_lookup = 1;
       */
      public Builder addHeroLookup(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup value) {
        if (heroLookupBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHeroLookupIsMutable();
          heroLookup_.add(value);
          onChanged();
        } else {
          heroLookupBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroLookup hero_lookup = 1;
       */
      public Builder addHeroLookup(
          int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup value) {
        if (heroLookupBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHeroLookupIsMutable();
          heroLookup_.add(index, value);
          onChanged();
        } else {
          heroLookupBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroLookup hero_lookup = 1;
       */
      public Builder addHeroLookup(
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup.Builder builderForValue) {
        if (heroLookupBuilder_ == null) {
          ensureHeroLookupIsMutable();
          heroLookup_.add(builderForValue.build());
          onChanged();
        } else {
          heroLookupBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroLookup hero_lookup = 1;
       */
      public Builder addHeroLookup(
          int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup.Builder builderForValue) {
        if (heroLookupBuilder_ == null) {
          ensureHeroLookupIsMutable();
          heroLookup_.add(index, builderForValue.build());
          onChanged();
        } else {
          heroLookupBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroLookup hero_lookup = 1;
       */
      public Builder addAllHeroLookup(
          java.lang.Iterable values) {
        if (heroLookupBuilder_ == null) {
          ensureHeroLookupIsMutable();
          super.addAll(values, heroLookup_);
          onChanged();
        } else {
          heroLookupBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroLookup hero_lookup = 1;
       */
      public Builder clearHeroLookup() {
        if (heroLookupBuilder_ == null) {
          heroLookup_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          heroLookupBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroLookup hero_lookup = 1;
       */
      public Builder removeHeroLookup(int index) {
        if (heroLookupBuilder_ == null) {
          ensureHeroLookupIsMutable();
          heroLookup_.remove(index);
          onChanged();
        } else {
          heroLookupBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroLookup hero_lookup = 1;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup.Builder getHeroLookupBuilder(
          int index) {
        return getHeroLookupFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroLookup hero_lookup = 1;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookupOrBuilder getHeroLookupOrBuilder(
          int index) {
        if (heroLookupBuilder_ == null) {
          return heroLookup_.get(index);  } else {
          return heroLookupBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroLookup hero_lookup = 1;
       */
      public java.util.List 
           getHeroLookupOrBuilderList() {
        if (heroLookupBuilder_ != null) {
          return heroLookupBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(heroLookup_);
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroLookup hero_lookup = 1;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup.Builder addHeroLookupBuilder() {
        return getHeroLookupFieldBuilder().addBuilder(
            com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroLookup hero_lookup = 1;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup.Builder addHeroLookupBuilder(
          int index) {
        return getHeroLookupFieldBuilder().addBuilder(
            index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroLookup hero_lookup = 1;
       */
      public java.util.List 
           getHeroLookupBuilderList() {
        return getHeroLookupFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookupOrBuilder> 
          getHeroLookupFieldBuilder() {
        if (heroLookupBuilder_ == null) {
          heroLookupBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookup.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsHeroLookupOrBuilder>(
                  heroLookup_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          heroLookup_ = null;
        }
        return heroLookupBuilder_;
      }

      // repeated .CDOTAUserMsg_StatsTeamMinuteDetails radiant_stats = 2;
      private java.util.List radiantStats_ =
        java.util.Collections.emptyList();
      private void ensureRadiantStatsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          radiantStats_ = new java.util.ArrayList(radiantStats_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetailsOrBuilder> radiantStatsBuilder_;

      /**
       * repeated .CDOTAUserMsg_StatsTeamMinuteDetails radiant_stats = 2;
       */
      public java.util.List getRadiantStatsList() {
        if (radiantStatsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(radiantStats_);
        } else {
          return radiantStatsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsTeamMinuteDetails radiant_stats = 2;
       */
      public int getRadiantStatsCount() {
        if (radiantStatsBuilder_ == null) {
          return radiantStats_.size();
        } else {
          return radiantStatsBuilder_.getCount();
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsTeamMinuteDetails radiant_stats = 2;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails getRadiantStats(int index) {
        if (radiantStatsBuilder_ == null) {
          return radiantStats_.get(index);
        } else {
          return radiantStatsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsTeamMinuteDetails radiant_stats = 2;
       */
      public Builder setRadiantStats(
          int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails value) {
        if (radiantStatsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRadiantStatsIsMutable();
          radiantStats_.set(index, value);
          onChanged();
        } else {
          radiantStatsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsTeamMinuteDetails radiant_stats = 2;
       */
      public Builder setRadiantStats(
          int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails.Builder builderForValue) {
        if (radiantStatsBuilder_ == null) {
          ensureRadiantStatsIsMutable();
          radiantStats_.set(index, builderForValue.build());
          onChanged();
        } else {
          radiantStatsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsTeamMinuteDetails radiant_stats = 2;
       */
      public Builder addRadiantStats(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails value) {
        if (radiantStatsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRadiantStatsIsMutable();
          radiantStats_.add(value);
          onChanged();
        } else {
          radiantStatsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsTeamMinuteDetails radiant_stats = 2;
       */
      public Builder addRadiantStats(
          int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails value) {
        if (radiantStatsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRadiantStatsIsMutable();
          radiantStats_.add(index, value);
          onChanged();
        } else {
          radiantStatsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsTeamMinuteDetails radiant_stats = 2;
       */
      public Builder addRadiantStats(
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails.Builder builderForValue) {
        if (radiantStatsBuilder_ == null) {
          ensureRadiantStatsIsMutable();
          radiantStats_.add(builderForValue.build());
          onChanged();
        } else {
          radiantStatsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsTeamMinuteDetails radiant_stats = 2;
       */
      public Builder addRadiantStats(
          int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails.Builder builderForValue) {
        if (radiantStatsBuilder_ == null) {
          ensureRadiantStatsIsMutable();
          radiantStats_.add(index, builderForValue.build());
          onChanged();
        } else {
          radiantStatsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsTeamMinuteDetails radiant_stats = 2;
       */
      public Builder addAllRadiantStats(
          java.lang.Iterable values) {
        if (radiantStatsBuilder_ == null) {
          ensureRadiantStatsIsMutable();
          super.addAll(values, radiantStats_);
          onChanged();
        } else {
          radiantStatsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsTeamMinuteDetails radiant_stats = 2;
       */
      public Builder clearRadiantStats() {
        if (radiantStatsBuilder_ == null) {
          radiantStats_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          radiantStatsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsTeamMinuteDetails radiant_stats = 2;
       */
      public Builder removeRadiantStats(int index) {
        if (radiantStatsBuilder_ == null) {
          ensureRadiantStatsIsMutable();
          radiantStats_.remove(index);
          onChanged();
        } else {
          radiantStatsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsTeamMinuteDetails radiant_stats = 2;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails.Builder getRadiantStatsBuilder(
          int index) {
        return getRadiantStatsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CDOTAUserMsg_StatsTeamMinuteDetails radiant_stats = 2;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetailsOrBuilder getRadiantStatsOrBuilder(
          int index) {
        if (radiantStatsBuilder_ == null) {
          return radiantStats_.get(index);  } else {
          return radiantStatsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsTeamMinuteDetails radiant_stats = 2;
       */
      public java.util.List 
           getRadiantStatsOrBuilderList() {
        if (radiantStatsBuilder_ != null) {
          return radiantStatsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(radiantStats_);
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsTeamMinuteDetails radiant_stats = 2;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails.Builder addRadiantStatsBuilder() {
        return getRadiantStatsFieldBuilder().addBuilder(
            com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_StatsTeamMinuteDetails radiant_stats = 2;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails.Builder addRadiantStatsBuilder(
          int index) {
        return getRadiantStatsFieldBuilder().addBuilder(
            index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_StatsTeamMinuteDetails radiant_stats = 2;
       */
      public java.util.List 
           getRadiantStatsBuilderList() {
        return getRadiantStatsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetailsOrBuilder> 
          getRadiantStatsFieldBuilder() {
        if (radiantStatsBuilder_ == null) {
          radiantStatsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetailsOrBuilder>(
                  radiantStats_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          radiantStats_ = null;
        }
        return radiantStatsBuilder_;
      }

      // repeated .CDOTAUserMsg_StatsTeamMinuteDetails dire_stats = 3;
      private java.util.List direStats_ =
        java.util.Collections.emptyList();
      private void ensureDireStatsIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          direStats_ = new java.util.ArrayList(direStats_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetailsOrBuilder> direStatsBuilder_;

      /**
       * repeated .CDOTAUserMsg_StatsTeamMinuteDetails dire_stats = 3;
       */
      public java.util.List getDireStatsList() {
        if (direStatsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(direStats_);
        } else {
          return direStatsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsTeamMinuteDetails dire_stats = 3;
       */
      public int getDireStatsCount() {
        if (direStatsBuilder_ == null) {
          return direStats_.size();
        } else {
          return direStatsBuilder_.getCount();
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsTeamMinuteDetails dire_stats = 3;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails getDireStats(int index) {
        if (direStatsBuilder_ == null) {
          return direStats_.get(index);
        } else {
          return direStatsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsTeamMinuteDetails dire_stats = 3;
       */
      public Builder setDireStats(
          int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails value) {
        if (direStatsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDireStatsIsMutable();
          direStats_.set(index, value);
          onChanged();
        } else {
          direStatsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsTeamMinuteDetails dire_stats = 3;
       */
      public Builder setDireStats(
          int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails.Builder builderForValue) {
        if (direStatsBuilder_ == null) {
          ensureDireStatsIsMutable();
          direStats_.set(index, builderForValue.build());
          onChanged();
        } else {
          direStatsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsTeamMinuteDetails dire_stats = 3;
       */
      public Builder addDireStats(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails value) {
        if (direStatsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDireStatsIsMutable();
          direStats_.add(value);
          onChanged();
        } else {
          direStatsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsTeamMinuteDetails dire_stats = 3;
       */
      public Builder addDireStats(
          int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails value) {
        if (direStatsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDireStatsIsMutable();
          direStats_.add(index, value);
          onChanged();
        } else {
          direStatsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsTeamMinuteDetails dire_stats = 3;
       */
      public Builder addDireStats(
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails.Builder builderForValue) {
        if (direStatsBuilder_ == null) {
          ensureDireStatsIsMutable();
          direStats_.add(builderForValue.build());
          onChanged();
        } else {
          direStatsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsTeamMinuteDetails dire_stats = 3;
       */
      public Builder addDireStats(
          int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails.Builder builderForValue) {
        if (direStatsBuilder_ == null) {
          ensureDireStatsIsMutable();
          direStats_.add(index, builderForValue.build());
          onChanged();
        } else {
          direStatsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsTeamMinuteDetails dire_stats = 3;
       */
      public Builder addAllDireStats(
          java.lang.Iterable values) {
        if (direStatsBuilder_ == null) {
          ensureDireStatsIsMutable();
          super.addAll(values, direStats_);
          onChanged();
        } else {
          direStatsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsTeamMinuteDetails dire_stats = 3;
       */
      public Builder clearDireStats() {
        if (direStatsBuilder_ == null) {
          direStats_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          direStatsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsTeamMinuteDetails dire_stats = 3;
       */
      public Builder removeDireStats(int index) {
        if (direStatsBuilder_ == null) {
          ensureDireStatsIsMutable();
          direStats_.remove(index);
          onChanged();
        } else {
          direStatsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsTeamMinuteDetails dire_stats = 3;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails.Builder getDireStatsBuilder(
          int index) {
        return getDireStatsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CDOTAUserMsg_StatsTeamMinuteDetails dire_stats = 3;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetailsOrBuilder getDireStatsOrBuilder(
          int index) {
        if (direStatsBuilder_ == null) {
          return direStats_.get(index);  } else {
          return direStatsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsTeamMinuteDetails dire_stats = 3;
       */
      public java.util.List 
           getDireStatsOrBuilderList() {
        if (direStatsBuilder_ != null) {
          return direStatsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(direStats_);
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsTeamMinuteDetails dire_stats = 3;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails.Builder addDireStatsBuilder() {
        return getDireStatsFieldBuilder().addBuilder(
            com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_StatsTeamMinuteDetails dire_stats = 3;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails.Builder addDireStatsBuilder(
          int index) {
        return getDireStatsFieldBuilder().addBuilder(
            index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_StatsTeamMinuteDetails dire_stats = 3;
       */
      public java.util.List 
           getDireStatsBuilderList() {
        return getDireStatsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetailsOrBuilder> 
          getDireStatsFieldBuilder() {
        if (direStatsBuilder_ == null) {
          direStatsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetails.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsTeamMinuteDetailsOrBuilder>(
                  direStats_,
                  ((bitField0_ & 0x00000004) == 0x00000004),
                  getParentForChildren(),
                  isClean());
          direStats_ = null;
        }
        return direStatsBuilder_;
      }

      // repeated .CDOTAUserMsg_StatsKillDetails radiant_kills = 4;
      private java.util.List radiantKills_ =
        java.util.Collections.emptyList();
      private void ensureRadiantKillsIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          radiantKills_ = new java.util.ArrayList(radiantKills_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetailsOrBuilder> radiantKillsBuilder_;

      /**
       * repeated .CDOTAUserMsg_StatsKillDetails radiant_kills = 4;
       */
      public java.util.List getRadiantKillsList() {
        if (radiantKillsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(radiantKills_);
        } else {
          return radiantKillsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsKillDetails radiant_kills = 4;
       */
      public int getRadiantKillsCount() {
        if (radiantKillsBuilder_ == null) {
          return radiantKills_.size();
        } else {
          return radiantKillsBuilder_.getCount();
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsKillDetails radiant_kills = 4;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails getRadiantKills(int index) {
        if (radiantKillsBuilder_ == null) {
          return radiantKills_.get(index);
        } else {
          return radiantKillsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsKillDetails radiant_kills = 4;
       */
      public Builder setRadiantKills(
          int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails value) {
        if (radiantKillsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRadiantKillsIsMutable();
          radiantKills_.set(index, value);
          onChanged();
        } else {
          radiantKillsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsKillDetails radiant_kills = 4;
       */
      public Builder setRadiantKills(
          int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails.Builder builderForValue) {
        if (radiantKillsBuilder_ == null) {
          ensureRadiantKillsIsMutable();
          radiantKills_.set(index, builderForValue.build());
          onChanged();
        } else {
          radiantKillsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsKillDetails radiant_kills = 4;
       */
      public Builder addRadiantKills(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails value) {
        if (radiantKillsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRadiantKillsIsMutable();
          radiantKills_.add(value);
          onChanged();
        } else {
          radiantKillsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsKillDetails radiant_kills = 4;
       */
      public Builder addRadiantKills(
          int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails value) {
        if (radiantKillsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRadiantKillsIsMutable();
          radiantKills_.add(index, value);
          onChanged();
        } else {
          radiantKillsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsKillDetails radiant_kills = 4;
       */
      public Builder addRadiantKills(
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails.Builder builderForValue) {
        if (radiantKillsBuilder_ == null) {
          ensureRadiantKillsIsMutable();
          radiantKills_.add(builderForValue.build());
          onChanged();
        } else {
          radiantKillsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsKillDetails radiant_kills = 4;
       */
      public Builder addRadiantKills(
          int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails.Builder builderForValue) {
        if (radiantKillsBuilder_ == null) {
          ensureRadiantKillsIsMutable();
          radiantKills_.add(index, builderForValue.build());
          onChanged();
        } else {
          radiantKillsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsKillDetails radiant_kills = 4;
       */
      public Builder addAllRadiantKills(
          java.lang.Iterable values) {
        if (radiantKillsBuilder_ == null) {
          ensureRadiantKillsIsMutable();
          super.addAll(values, radiantKills_);
          onChanged();
        } else {
          radiantKillsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsKillDetails radiant_kills = 4;
       */
      public Builder clearRadiantKills() {
        if (radiantKillsBuilder_ == null) {
          radiantKills_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          radiantKillsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsKillDetails radiant_kills = 4;
       */
      public Builder removeRadiantKills(int index) {
        if (radiantKillsBuilder_ == null) {
          ensureRadiantKillsIsMutable();
          radiantKills_.remove(index);
          onChanged();
        } else {
          radiantKillsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsKillDetails radiant_kills = 4;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails.Builder getRadiantKillsBuilder(
          int index) {
        return getRadiantKillsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CDOTAUserMsg_StatsKillDetails radiant_kills = 4;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetailsOrBuilder getRadiantKillsOrBuilder(
          int index) {
        if (radiantKillsBuilder_ == null) {
          return radiantKills_.get(index);  } else {
          return radiantKillsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsKillDetails radiant_kills = 4;
       */
      public java.util.List 
           getRadiantKillsOrBuilderList() {
        if (radiantKillsBuilder_ != null) {
          return radiantKillsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(radiantKills_);
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsKillDetails radiant_kills = 4;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails.Builder addRadiantKillsBuilder() {
        return getRadiantKillsFieldBuilder().addBuilder(
            com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_StatsKillDetails radiant_kills = 4;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails.Builder addRadiantKillsBuilder(
          int index) {
        return getRadiantKillsFieldBuilder().addBuilder(
            index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_StatsKillDetails radiant_kills = 4;
       */
      public java.util.List 
           getRadiantKillsBuilderList() {
        return getRadiantKillsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetailsOrBuilder> 
          getRadiantKillsFieldBuilder() {
        if (radiantKillsBuilder_ == null) {
          radiantKillsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetailsOrBuilder>(
                  radiantKills_,
                  ((bitField0_ & 0x00000008) == 0x00000008),
                  getParentForChildren(),
                  isClean());
          radiantKills_ = null;
        }
        return radiantKillsBuilder_;
      }

      // repeated .CDOTAUserMsg_StatsKillDetails dire_kills = 5;
      private java.util.List direKills_ =
        java.util.Collections.emptyList();
      private void ensureDireKillsIsMutable() {
        if (!((bitField0_ & 0x00000010) == 0x00000010)) {
          direKills_ = new java.util.ArrayList(direKills_);
          bitField0_ |= 0x00000010;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetailsOrBuilder> direKillsBuilder_;

      /**
       * repeated .CDOTAUserMsg_StatsKillDetails dire_kills = 5;
       */
      public java.util.List getDireKillsList() {
        if (direKillsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(direKills_);
        } else {
          return direKillsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsKillDetails dire_kills = 5;
       */
      public int getDireKillsCount() {
        if (direKillsBuilder_ == null) {
          return direKills_.size();
        } else {
          return direKillsBuilder_.getCount();
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsKillDetails dire_kills = 5;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails getDireKills(int index) {
        if (direKillsBuilder_ == null) {
          return direKills_.get(index);
        } else {
          return direKillsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsKillDetails dire_kills = 5;
       */
      public Builder setDireKills(
          int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails value) {
        if (direKillsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDireKillsIsMutable();
          direKills_.set(index, value);
          onChanged();
        } else {
          direKillsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsKillDetails dire_kills = 5;
       */
      public Builder setDireKills(
          int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails.Builder builderForValue) {
        if (direKillsBuilder_ == null) {
          ensureDireKillsIsMutable();
          direKills_.set(index, builderForValue.build());
          onChanged();
        } else {
          direKillsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsKillDetails dire_kills = 5;
       */
      public Builder addDireKills(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails value) {
        if (direKillsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDireKillsIsMutable();
          direKills_.add(value);
          onChanged();
        } else {
          direKillsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsKillDetails dire_kills = 5;
       */
      public Builder addDireKills(
          int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails value) {
        if (direKillsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDireKillsIsMutable();
          direKills_.add(index, value);
          onChanged();
        } else {
          direKillsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsKillDetails dire_kills = 5;
       */
      public Builder addDireKills(
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails.Builder builderForValue) {
        if (direKillsBuilder_ == null) {
          ensureDireKillsIsMutable();
          direKills_.add(builderForValue.build());
          onChanged();
        } else {
          direKillsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsKillDetails dire_kills = 5;
       */
      public Builder addDireKills(
          int index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails.Builder builderForValue) {
        if (direKillsBuilder_ == null) {
          ensureDireKillsIsMutable();
          direKills_.add(index, builderForValue.build());
          onChanged();
        } else {
          direKillsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsKillDetails dire_kills = 5;
       */
      public Builder addAllDireKills(
          java.lang.Iterable values) {
        if (direKillsBuilder_ == null) {
          ensureDireKillsIsMutable();
          super.addAll(values, direKills_);
          onChanged();
        } else {
          direKillsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsKillDetails dire_kills = 5;
       */
      public Builder clearDireKills() {
        if (direKillsBuilder_ == null) {
          direKills_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
        } else {
          direKillsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsKillDetails dire_kills = 5;
       */
      public Builder removeDireKills(int index) {
        if (direKillsBuilder_ == null) {
          ensureDireKillsIsMutable();
          direKills_.remove(index);
          onChanged();
        } else {
          direKillsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsKillDetails dire_kills = 5;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails.Builder getDireKillsBuilder(
          int index) {
        return getDireKillsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CDOTAUserMsg_StatsKillDetails dire_kills = 5;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetailsOrBuilder getDireKillsOrBuilder(
          int index) {
        if (direKillsBuilder_ == null) {
          return direKills_.get(index);  } else {
          return direKillsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsKillDetails dire_kills = 5;
       */
      public java.util.List 
           getDireKillsOrBuilderList() {
        if (direKillsBuilder_ != null) {
          return direKillsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(direKills_);
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsKillDetails dire_kills = 5;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails.Builder addDireKillsBuilder() {
        return getDireKillsFieldBuilder().addBuilder(
            com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_StatsKillDetails dire_kills = 5;
       */
      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails.Builder addDireKillsBuilder(
          int index) {
        return getDireKillsFieldBuilder().addBuilder(
            index, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_StatsKillDetails dire_kills = 5;
       */
      public java.util.List 
           getDireKillsBuilderList() {
        return getDireKillsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetailsOrBuilder> 
          getDireKillsFieldBuilder() {
        if (direKillsBuilder_ == null) {
          direKillsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetails.Builder, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_StatsKillDetailsOrBuilder>(
                  direKills_,
                  ((bitField0_ & 0x00000010) == 0x00000010),
                  getParentForChildren(),
                  isClean());
          direKills_ = null;
        }
        return direKillsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_StatsMatchDetails)
    }

    static {
      defaultInstance = new CDOTAUserMsg_StatsMatchDetails(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_StatsMatchDetails)
  }

  public interface CDOTAUserMsg_MiniTauntOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional uint32 taunting_player_id = 1;
    /**
     * optional uint32 taunting_player_id = 1;
     */
    boolean hasTauntingPlayerId();
    /**
     * optional uint32 taunting_player_id = 1;
     */
    int getTauntingPlayerId();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_MiniTaunt}
   */
  public static final class CDOTAUserMsg_MiniTaunt extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_MiniTauntOrBuilder {
    // Use CDOTAUserMsg_MiniTaunt.newBuilder() to construct.
    private CDOTAUserMsg_MiniTaunt(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_MiniTaunt(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_MiniTaunt defaultInstance;
    public static CDOTAUserMsg_MiniTaunt getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_MiniTaunt getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_MiniTaunt(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              tauntingPlayerId_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_MiniTaunt_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_MiniTaunt_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniTaunt.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniTaunt.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_MiniTaunt parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_MiniTaunt(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional uint32 taunting_player_id = 1;
    public static final int TAUNTING_PLAYER_ID_FIELD_NUMBER = 1;
    private int tauntingPlayerId_;
    /**
     * optional uint32 taunting_player_id = 1;
     */
    public boolean hasTauntingPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 taunting_player_id = 1;
     */
    public int getTauntingPlayerId() {
      return tauntingPlayerId_;
    }

    private void initFields() {
      tauntingPlayerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, tauntingPlayerId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, tauntingPlayerId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniTaunt parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniTaunt parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniTaunt parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniTaunt parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniTaunt parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniTaunt parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniTaunt parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniTaunt parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniTaunt parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniTaunt parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniTaunt prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_MiniTaunt}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniTauntOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_MiniTaunt_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_MiniTaunt_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniTaunt.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniTaunt.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniTaunt.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        tauntingPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_MiniTaunt_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniTaunt getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniTaunt.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniTaunt build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniTaunt result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniTaunt buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniTaunt result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniTaunt(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.tauntingPlayerId_ = tauntingPlayerId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniTaunt) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniTaunt)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniTaunt other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniTaunt.getDefaultInstance()) return this;
        if (other.hasTauntingPlayerId()) {
          setTauntingPlayerId(other.getTauntingPlayerId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniTaunt parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_MiniTaunt) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional uint32 taunting_player_id = 1;
      private int tauntingPlayerId_ ;
      /**
       * optional uint32 taunting_player_id = 1;
       */
      public boolean hasTauntingPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 taunting_player_id = 1;
       */
      public int getTauntingPlayerId() {
        return tauntingPlayerId_;
      }
      /**
       * optional uint32 taunting_player_id = 1;
       */
      public Builder setTauntingPlayerId(int value) {
        bitField0_ |= 0x00000001;
        tauntingPlayerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 taunting_player_id = 1;
       */
      public Builder clearTauntingPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        tauntingPlayerId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_MiniTaunt)
    }

    static {
      defaultInstance = new CDOTAUserMsg_MiniTaunt(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_MiniTaunt)
  }

  public interface CMsgHeroAbilityStatOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional .EHeroStatType stat_type = 1 [default = k_EHeroStatType_None];
    /**
     * optional .EHeroStatType stat_type = 1 [default = k_EHeroStatType_None];
     */
    boolean hasStatType();
    /**
     * optional .EHeroStatType stat_type = 1 [default = k_EHeroStatType_None];
     */
    com.dota2.proto.DotaUsermessages.EHeroStatType getStatType();

    // optional int32 int_value = 2;
    /**
     * optional int32 int_value = 2;
     */
    boolean hasIntValue();
    /**
     * optional int32 int_value = 2;
     */
    int getIntValue();

    // optional float float_value = 3;
    /**
     * optional float float_value = 3;
     */
    boolean hasFloatValue();
    /**
     * optional float float_value = 3;
     */
    float getFloatValue();
  }
  /**
   * Protobuf type {@code CMsgHeroAbilityStat}
   */
  public static final class CMsgHeroAbilityStat extends
      com.google.protobuf.GeneratedMessage
      implements CMsgHeroAbilityStatOrBuilder {
    // Use CMsgHeroAbilityStat.newBuilder() to construct.
    private CMsgHeroAbilityStat(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CMsgHeroAbilityStat(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CMsgHeroAbilityStat defaultInstance;
    public static CMsgHeroAbilityStat getDefaultInstance() {
      return defaultInstance;
    }

    public CMsgHeroAbilityStat getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CMsgHeroAbilityStat(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              com.dota2.proto.DotaUsermessages.EHeroStatType value = com.dota2.proto.DotaUsermessages.EHeroStatType.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                statType_ = value;
              }
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              intValue_ = input.readInt32();
              break;
            }
            case 29: {
              bitField0_ |= 0x00000004;
              floatValue_ = input.readFloat();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CMsgHeroAbilityStat_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CMsgHeroAbilityStat_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat.class, com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CMsgHeroAbilityStat parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CMsgHeroAbilityStat(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional .EHeroStatType stat_type = 1 [default = k_EHeroStatType_None];
    public static final int STAT_TYPE_FIELD_NUMBER = 1;
    private com.dota2.proto.DotaUsermessages.EHeroStatType statType_;
    /**
     * optional .EHeroStatType stat_type = 1 [default = k_EHeroStatType_None];
     */
    public boolean hasStatType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional .EHeroStatType stat_type = 1 [default = k_EHeroStatType_None];
     */
    public com.dota2.proto.DotaUsermessages.EHeroStatType getStatType() {
      return statType_;
    }

    // optional int32 int_value = 2;
    public static final int INT_VALUE_FIELD_NUMBER = 2;
    private int intValue_;
    /**
     * optional int32 int_value = 2;
     */
    public boolean hasIntValue() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 int_value = 2;
     */
    public int getIntValue() {
      return intValue_;
    }

    // optional float float_value = 3;
    public static final int FLOAT_VALUE_FIELD_NUMBER = 3;
    private float floatValue_;
    /**
     * optional float float_value = 3;
     */
    public boolean hasFloatValue() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional float float_value = 3;
     */
    public float getFloatValue() {
      return floatValue_;
    }

    private void initFields() {
      statType_ = com.dota2.proto.DotaUsermessages.EHeroStatType.k_EHeroStatType_None;
      intValue_ = 0;
      floatValue_ = 0F;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, statType_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, intValue_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeFloat(3, floatValue_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, statType_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, intValue_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(3, floatValue_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CMsgHeroAbilityStat}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStatOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CMsgHeroAbilityStat_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CMsgHeroAbilityStat_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat.class, com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        statType_ = com.dota2.proto.DotaUsermessages.EHeroStatType.k_EHeroStatType_None;
        bitField0_ = (bitField0_ & ~0x00000001);
        intValue_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        floatValue_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CMsgHeroAbilityStat_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat build() {
        com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat buildPartial() {
        com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat result = new com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.statType_ = statType_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.intValue_ = intValue_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.floatValue_ = floatValue_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat other) {
        if (other == com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat.getDefaultInstance()) return this;
        if (other.hasStatType()) {
          setStatType(other.getStatType());
        }
        if (other.hasIntValue()) {
          setIntValue(other.getIntValue());
        }
        if (other.hasFloatValue()) {
          setFloatValue(other.getFloatValue());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional .EHeroStatType stat_type = 1 [default = k_EHeroStatType_None];
      private com.dota2.proto.DotaUsermessages.EHeroStatType statType_ = com.dota2.proto.DotaUsermessages.EHeroStatType.k_EHeroStatType_None;
      /**
       * optional .EHeroStatType stat_type = 1 [default = k_EHeroStatType_None];
       */
      public boolean hasStatType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .EHeroStatType stat_type = 1 [default = k_EHeroStatType_None];
       */
      public com.dota2.proto.DotaUsermessages.EHeroStatType getStatType() {
        return statType_;
      }
      /**
       * optional .EHeroStatType stat_type = 1 [default = k_EHeroStatType_None];
       */
      public Builder setStatType(com.dota2.proto.DotaUsermessages.EHeroStatType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        statType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional .EHeroStatType stat_type = 1 [default = k_EHeroStatType_None];
       */
      public Builder clearStatType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        statType_ = com.dota2.proto.DotaUsermessages.EHeroStatType.k_EHeroStatType_None;
        onChanged();
        return this;
      }

      // optional int32 int_value = 2;
      private int intValue_ ;
      /**
       * optional int32 int_value = 2;
       */
      public boolean hasIntValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 int_value = 2;
       */
      public int getIntValue() {
        return intValue_;
      }
      /**
       * optional int32 int_value = 2;
       */
      public Builder setIntValue(int value) {
        bitField0_ |= 0x00000002;
        intValue_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 int_value = 2;
       */
      public Builder clearIntValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        intValue_ = 0;
        onChanged();
        return this;
      }

      // optional float float_value = 3;
      private float floatValue_ ;
      /**
       * optional float float_value = 3;
       */
      public boolean hasFloatValue() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional float float_value = 3;
       */
      public float getFloatValue() {
        return floatValue_;
      }
      /**
       * optional float float_value = 3;
       */
      public Builder setFloatValue(float value) {
        bitField0_ |= 0x00000004;
        floatValue_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float float_value = 3;
       */
      public Builder clearFloatValue() {
        bitField0_ = (bitField0_ & ~0x00000004);
        floatValue_ = 0F;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CMsgHeroAbilityStat)
    }

    static {
      defaultInstance = new CMsgHeroAbilityStat(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CMsgHeroAbilityStat)
  }

  public interface CMsgCombatAnalyzerPlayerStatOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional uint32 account_id = 1;
    /**
     * optional uint32 account_id = 1;
     */
    boolean hasAccountId();
    /**
     * optional uint32 account_id = 1;
     */
    int getAccountId();

    // repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
    /**
     * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
     */
    java.util.List 
        getHeroAbilityStatsList();
    /**
     * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
     */
    com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat getHeroAbilityStats(int index);
    /**
     * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
     */
    int getHeroAbilityStatsCount();
    /**
     * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
     */
    java.util.List 
        getHeroAbilityStatsOrBuilderList();
    /**
     * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
     */
    com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStatOrBuilder getHeroAbilityStatsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code CMsgCombatAnalyzerPlayerStat}
   */
  public static final class CMsgCombatAnalyzerPlayerStat extends
      com.google.protobuf.GeneratedMessage
      implements CMsgCombatAnalyzerPlayerStatOrBuilder {
    // Use CMsgCombatAnalyzerPlayerStat.newBuilder() to construct.
    private CMsgCombatAnalyzerPlayerStat(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CMsgCombatAnalyzerPlayerStat(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CMsgCombatAnalyzerPlayerStat defaultInstance;
    public static CMsgCombatAnalyzerPlayerStat getDefaultInstance() {
      return defaultInstance;
    }

    public CMsgCombatAnalyzerPlayerStat getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CMsgCombatAnalyzerPlayerStat(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              accountId_ = input.readUInt32();
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                heroAbilityStats_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              heroAbilityStats_.add(input.readMessage(com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          heroAbilityStats_ = java.util.Collections.unmodifiableList(heroAbilityStats_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CMsgCombatAnalyzerPlayerStat_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CMsgCombatAnalyzerPlayerStat_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat.class, com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CMsgCombatAnalyzerPlayerStat parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CMsgCombatAnalyzerPlayerStat(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional uint32 account_id = 1;
    public static final int ACCOUNT_ID_FIELD_NUMBER = 1;
    private int accountId_;
    /**
     * optional uint32 account_id = 1;
     */
    public boolean hasAccountId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 account_id = 1;
     */
    public int getAccountId() {
      return accountId_;
    }

    // repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
    public static final int HERO_ABILITY_STATS_FIELD_NUMBER = 2;
    private java.util.List heroAbilityStats_;
    /**
     * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
     */
    public java.util.List getHeroAbilityStatsList() {
      return heroAbilityStats_;
    }
    /**
     * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
     */
    public java.util.List 
        getHeroAbilityStatsOrBuilderList() {
      return heroAbilityStats_;
    }
    /**
     * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
     */
    public int getHeroAbilityStatsCount() {
      return heroAbilityStats_.size();
    }
    /**
     * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
     */
    public com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat getHeroAbilityStats(int index) {
      return heroAbilityStats_.get(index);
    }
    /**
     * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
     */
    public com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStatOrBuilder getHeroAbilityStatsOrBuilder(
        int index) {
      return heroAbilityStats_.get(index);
    }

    private void initFields() {
      accountId_ = 0;
      heroAbilityStats_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, accountId_);
      }
      for (int i = 0; i < heroAbilityStats_.size(); i++) {
        output.writeMessage(2, heroAbilityStats_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, accountId_);
      }
      for (int i = 0; i < heroAbilityStats_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, heroAbilityStats_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CMsgCombatAnalyzerPlayerStat}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStatOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CMsgCombatAnalyzerPlayerStat_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CMsgCombatAnalyzerPlayerStat_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat.class, com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getHeroAbilityStatsFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        accountId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (heroAbilityStatsBuilder_ == null) {
          heroAbilityStats_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          heroAbilityStatsBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CMsgCombatAnalyzerPlayerStat_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat build() {
        com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat buildPartial() {
        com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat result = new com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.accountId_ = accountId_;
        if (heroAbilityStatsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            heroAbilityStats_ = java.util.Collections.unmodifiableList(heroAbilityStats_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.heroAbilityStats_ = heroAbilityStats_;
        } else {
          result.heroAbilityStats_ = heroAbilityStatsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat other) {
        if (other == com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat.getDefaultInstance()) return this;
        if (other.hasAccountId()) {
          setAccountId(other.getAccountId());
        }
        if (heroAbilityStatsBuilder_ == null) {
          if (!other.heroAbilityStats_.isEmpty()) {
            if (heroAbilityStats_.isEmpty()) {
              heroAbilityStats_ = other.heroAbilityStats_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureHeroAbilityStatsIsMutable();
              heroAbilityStats_.addAll(other.heroAbilityStats_);
            }
            onChanged();
          }
        } else {
          if (!other.heroAbilityStats_.isEmpty()) {
            if (heroAbilityStatsBuilder_.isEmpty()) {
              heroAbilityStatsBuilder_.dispose();
              heroAbilityStatsBuilder_ = null;
              heroAbilityStats_ = other.heroAbilityStats_;
              bitField0_ = (bitField0_ & ~0x00000002);
              heroAbilityStatsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getHeroAbilityStatsFieldBuilder() : null;
            } else {
              heroAbilityStatsBuilder_.addAllMessages(other.heroAbilityStats_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional uint32 account_id = 1;
      private int accountId_ ;
      /**
       * optional uint32 account_id = 1;
       */
      public boolean hasAccountId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 account_id = 1;
       */
      public int getAccountId() {
        return accountId_;
      }
      /**
       * optional uint32 account_id = 1;
       */
      public Builder setAccountId(int value) {
        bitField0_ |= 0x00000001;
        accountId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 account_id = 1;
       */
      public Builder clearAccountId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        accountId_ = 0;
        onChanged();
        return this;
      }

      // repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
      private java.util.List heroAbilityStats_ =
        java.util.Collections.emptyList();
      private void ensureHeroAbilityStatsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          heroAbilityStats_ = new java.util.ArrayList(heroAbilityStats_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat, com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat.Builder, com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStatOrBuilder> heroAbilityStatsBuilder_;

      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public java.util.List getHeroAbilityStatsList() {
        if (heroAbilityStatsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(heroAbilityStats_);
        } else {
          return heroAbilityStatsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public int getHeroAbilityStatsCount() {
        if (heroAbilityStatsBuilder_ == null) {
          return heroAbilityStats_.size();
        } else {
          return heroAbilityStatsBuilder_.getCount();
        }
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat getHeroAbilityStats(int index) {
        if (heroAbilityStatsBuilder_ == null) {
          return heroAbilityStats_.get(index);
        } else {
          return heroAbilityStatsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public Builder setHeroAbilityStats(
          int index, com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat value) {
        if (heroAbilityStatsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHeroAbilityStatsIsMutable();
          heroAbilityStats_.set(index, value);
          onChanged();
        } else {
          heroAbilityStatsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public Builder setHeroAbilityStats(
          int index, com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat.Builder builderForValue) {
        if (heroAbilityStatsBuilder_ == null) {
          ensureHeroAbilityStatsIsMutable();
          heroAbilityStats_.set(index, builderForValue.build());
          onChanged();
        } else {
          heroAbilityStatsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public Builder addHeroAbilityStats(com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat value) {
        if (heroAbilityStatsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHeroAbilityStatsIsMutable();
          heroAbilityStats_.add(value);
          onChanged();
        } else {
          heroAbilityStatsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public Builder addHeroAbilityStats(
          int index, com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat value) {
        if (heroAbilityStatsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHeroAbilityStatsIsMutable();
          heroAbilityStats_.add(index, value);
          onChanged();
        } else {
          heroAbilityStatsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public Builder addHeroAbilityStats(
          com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat.Builder builderForValue) {
        if (heroAbilityStatsBuilder_ == null) {
          ensureHeroAbilityStatsIsMutable();
          heroAbilityStats_.add(builderForValue.build());
          onChanged();
        } else {
          heroAbilityStatsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public Builder addHeroAbilityStats(
          int index, com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat.Builder builderForValue) {
        if (heroAbilityStatsBuilder_ == null) {
          ensureHeroAbilityStatsIsMutable();
          heroAbilityStats_.add(index, builderForValue.build());
          onChanged();
        } else {
          heroAbilityStatsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public Builder addAllHeroAbilityStats(
          java.lang.Iterable values) {
        if (heroAbilityStatsBuilder_ == null) {
          ensureHeroAbilityStatsIsMutable();
          super.addAll(values, heroAbilityStats_);
          onChanged();
        } else {
          heroAbilityStatsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public Builder clearHeroAbilityStats() {
        if (heroAbilityStatsBuilder_ == null) {
          heroAbilityStats_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          heroAbilityStatsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public Builder removeHeroAbilityStats(int index) {
        if (heroAbilityStatsBuilder_ == null) {
          ensureHeroAbilityStatsIsMutable();
          heroAbilityStats_.remove(index);
          onChanged();
        } else {
          heroAbilityStatsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat.Builder getHeroAbilityStatsBuilder(
          int index) {
        return getHeroAbilityStatsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStatOrBuilder getHeroAbilityStatsOrBuilder(
          int index) {
        if (heroAbilityStatsBuilder_ == null) {
          return heroAbilityStats_.get(index);  } else {
          return heroAbilityStatsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public java.util.List 
           getHeroAbilityStatsOrBuilderList() {
        if (heroAbilityStatsBuilder_ != null) {
          return heroAbilityStatsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(heroAbilityStats_);
        }
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat.Builder addHeroAbilityStatsBuilder() {
        return getHeroAbilityStatsFieldBuilder().addBuilder(
            com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat.getDefaultInstance());
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat.Builder addHeroAbilityStatsBuilder(
          int index) {
        return getHeroAbilityStatsFieldBuilder().addBuilder(
            index, com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat.getDefaultInstance());
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public java.util.List 
           getHeroAbilityStatsBuilderList() {
        return getHeroAbilityStatsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat, com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat.Builder, com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStatOrBuilder> 
          getHeroAbilityStatsFieldBuilder() {
        if (heroAbilityStatsBuilder_ == null) {
          heroAbilityStatsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat, com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStat.Builder, com.dota2.proto.DotaUsermessages.CMsgHeroAbilityStatOrBuilder>(
                  heroAbilityStats_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          heroAbilityStats_ = null;
        }
        return heroAbilityStatsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CMsgCombatAnalyzerPlayerStat)
    }

    static {
      defaultInstance = new CMsgCombatAnalyzerPlayerStat(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CMsgCombatAnalyzerPlayerStat)
  }

  public interface CMsgCombatAnalyzerStatsOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional uint64 match_id = 1;
    /**
     * optional uint64 match_id = 1;
     */
    boolean hasMatchId();
    /**
     * optional uint64 match_id = 1;
     */
    long getMatchId();

    // repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
    /**
     * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
     */
    java.util.List 
        getPlayerStatsList();
    /**
     * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
     */
    com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat getPlayerStats(int index);
    /**
     * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
     */
    int getPlayerStatsCount();
    /**
     * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
     */
    java.util.List 
        getPlayerStatsOrBuilderList();
    /**
     * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
     */
    com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStatOrBuilder getPlayerStatsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code CMsgCombatAnalyzerStats}
   */
  public static final class CMsgCombatAnalyzerStats extends
      com.google.protobuf.GeneratedMessage
      implements CMsgCombatAnalyzerStatsOrBuilder {
    // Use CMsgCombatAnalyzerStats.newBuilder() to construct.
    private CMsgCombatAnalyzerStats(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CMsgCombatAnalyzerStats(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CMsgCombatAnalyzerStats defaultInstance;
    public static CMsgCombatAnalyzerStats getDefaultInstance() {
      return defaultInstance;
    }

    public CMsgCombatAnalyzerStats getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CMsgCombatAnalyzerStats(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              matchId_ = input.readUInt64();
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                playerStats_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              playerStats_.add(input.readMessage(com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          playerStats_ = java.util.Collections.unmodifiableList(playerStats_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CMsgCombatAnalyzerStats_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CMsgCombatAnalyzerStats_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerStats.class, com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerStats.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CMsgCombatAnalyzerStats parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CMsgCombatAnalyzerStats(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional uint64 match_id = 1;
    public static final int MATCH_ID_FIELD_NUMBER = 1;
    private long matchId_;
    /**
     * optional uint64 match_id = 1;
     */
    public boolean hasMatchId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint64 match_id = 1;
     */
    public long getMatchId() {
      return matchId_;
    }

    // repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
    public static final int PLAYER_STATS_FIELD_NUMBER = 2;
    private java.util.List playerStats_;
    /**
     * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
     */
    public java.util.List getPlayerStatsList() {
      return playerStats_;
    }
    /**
     * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
     */
    public java.util.List 
        getPlayerStatsOrBuilderList() {
      return playerStats_;
    }
    /**
     * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
     */
    public int getPlayerStatsCount() {
      return playerStats_.size();
    }
    /**
     * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
     */
    public com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat getPlayerStats(int index) {
      return playerStats_.get(index);
    }
    /**
     * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
     */
    public com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStatOrBuilder getPlayerStatsOrBuilder(
        int index) {
      return playerStats_.get(index);
    }

    private void initFields() {
      matchId_ = 0L;
      playerStats_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt64(1, matchId_);
      }
      for (int i = 0; i < playerStats_.size(); i++) {
        output.writeMessage(2, playerStats_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(1, matchId_);
      }
      for (int i = 0; i < playerStats_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, playerStats_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerStats parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerStats parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerStats parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerStats parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerStats parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerStats parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerStats parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerStats parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerStats parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerStats parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerStats prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CMsgCombatAnalyzerStats}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerStatsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CMsgCombatAnalyzerStats_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CMsgCombatAnalyzerStats_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerStats.class, com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerStats.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerStats.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getPlayerStatsFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        matchId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (playerStatsBuilder_ == null) {
          playerStats_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          playerStatsBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CMsgCombatAnalyzerStats_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerStats getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerStats.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerStats build() {
        com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerStats result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerStats buildPartial() {
        com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerStats result = new com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerStats(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.matchId_ = matchId_;
        if (playerStatsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            playerStats_ = java.util.Collections.unmodifiableList(playerStats_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.playerStats_ = playerStats_;
        } else {
          result.playerStats_ = playerStatsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerStats) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerStats)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerStats other) {
        if (other == com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerStats.getDefaultInstance()) return this;
        if (other.hasMatchId()) {
          setMatchId(other.getMatchId());
        }
        if (playerStatsBuilder_ == null) {
          if (!other.playerStats_.isEmpty()) {
            if (playerStats_.isEmpty()) {
              playerStats_ = other.playerStats_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensurePlayerStatsIsMutable();
              playerStats_.addAll(other.playerStats_);
            }
            onChanged();
          }
        } else {
          if (!other.playerStats_.isEmpty()) {
            if (playerStatsBuilder_.isEmpty()) {
              playerStatsBuilder_.dispose();
              playerStatsBuilder_ = null;
              playerStats_ = other.playerStats_;
              bitField0_ = (bitField0_ & ~0x00000002);
              playerStatsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getPlayerStatsFieldBuilder() : null;
            } else {
              playerStatsBuilder_.addAllMessages(other.playerStats_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerStats parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerStats) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional uint64 match_id = 1;
      private long matchId_ ;
      /**
       * optional uint64 match_id = 1;
       */
      public boolean hasMatchId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint64 match_id = 1;
       */
      public long getMatchId() {
        return matchId_;
      }
      /**
       * optional uint64 match_id = 1;
       */
      public Builder setMatchId(long value) {
        bitField0_ |= 0x00000001;
        matchId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint64 match_id = 1;
       */
      public Builder clearMatchId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        matchId_ = 0L;
        onChanged();
        return this;
      }

      // repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
      private java.util.List playerStats_ =
        java.util.Collections.emptyList();
      private void ensurePlayerStatsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          playerStats_ = new java.util.ArrayList(playerStats_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat, com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat.Builder, com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStatOrBuilder> playerStatsBuilder_;

      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public java.util.List getPlayerStatsList() {
        if (playerStatsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(playerStats_);
        } else {
          return playerStatsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public int getPlayerStatsCount() {
        if (playerStatsBuilder_ == null) {
          return playerStats_.size();
        } else {
          return playerStatsBuilder_.getCount();
        }
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat getPlayerStats(int index) {
        if (playerStatsBuilder_ == null) {
          return playerStats_.get(index);
        } else {
          return playerStatsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public Builder setPlayerStats(
          int index, com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat value) {
        if (playerStatsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePlayerStatsIsMutable();
          playerStats_.set(index, value);
          onChanged();
        } else {
          playerStatsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public Builder setPlayerStats(
          int index, com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat.Builder builderForValue) {
        if (playerStatsBuilder_ == null) {
          ensurePlayerStatsIsMutable();
          playerStats_.set(index, builderForValue.build());
          onChanged();
        } else {
          playerStatsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public Builder addPlayerStats(com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat value) {
        if (playerStatsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePlayerStatsIsMutable();
          playerStats_.add(value);
          onChanged();
        } else {
          playerStatsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public Builder addPlayerStats(
          int index, com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat value) {
        if (playerStatsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePlayerStatsIsMutable();
          playerStats_.add(index, value);
          onChanged();
        } else {
          playerStatsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public Builder addPlayerStats(
          com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat.Builder builderForValue) {
        if (playerStatsBuilder_ == null) {
          ensurePlayerStatsIsMutable();
          playerStats_.add(builderForValue.build());
          onChanged();
        } else {
          playerStatsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public Builder addPlayerStats(
          int index, com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat.Builder builderForValue) {
        if (playerStatsBuilder_ == null) {
          ensurePlayerStatsIsMutable();
          playerStats_.add(index, builderForValue.build());
          onChanged();
        } else {
          playerStatsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public Builder addAllPlayerStats(
          java.lang.Iterable values) {
        if (playerStatsBuilder_ == null) {
          ensurePlayerStatsIsMutable();
          super.addAll(values, playerStats_);
          onChanged();
        } else {
          playerStatsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public Builder clearPlayerStats() {
        if (playerStatsBuilder_ == null) {
          playerStats_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          playerStatsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public Builder removePlayerStats(int index) {
        if (playerStatsBuilder_ == null) {
          ensurePlayerStatsIsMutable();
          playerStats_.remove(index);
          onChanged();
        } else {
          playerStatsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat.Builder getPlayerStatsBuilder(
          int index) {
        return getPlayerStatsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStatOrBuilder getPlayerStatsOrBuilder(
          int index) {
        if (playerStatsBuilder_ == null) {
          return playerStats_.get(index);  } else {
          return playerStatsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public java.util.List 
           getPlayerStatsOrBuilderList() {
        if (playerStatsBuilder_ != null) {
          return playerStatsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(playerStats_);
        }
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat.Builder addPlayerStatsBuilder() {
        return getPlayerStatsFieldBuilder().addBuilder(
            com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat.getDefaultInstance());
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat.Builder addPlayerStatsBuilder(
          int index) {
        return getPlayerStatsFieldBuilder().addBuilder(
            index, com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat.getDefaultInstance());
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public java.util.List 
           getPlayerStatsBuilderList() {
        return getPlayerStatsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat, com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat.Builder, com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStatOrBuilder> 
          getPlayerStatsFieldBuilder() {
        if (playerStatsBuilder_ == null) {
          playerStatsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat, com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStat.Builder, com.dota2.proto.DotaUsermessages.CMsgCombatAnalyzerPlayerStatOrBuilder>(
                  playerStats_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          playerStats_ = null;
        }
        return playerStatsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CMsgCombatAnalyzerStats)
    }

    static {
      defaultInstance = new CMsgCombatAnalyzerStats(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CMsgCombatAnalyzerStats)
  }

  public interface CDOTAUserMsg_CombatLogDataOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
    /**
     * optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
     */
    boolean hasType();
    /**
     * optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
     */
    com.dota2.proto.DotaUsermessages.DOTA_COMBATLOG_TYPES getType();

    // optional uint32 target_name = 2;
    /**
     * optional uint32 target_name = 2;
     */
    boolean hasTargetName();
    /**
     * optional uint32 target_name = 2;
     */
    int getTargetName();

    // optional uint32 attacker_name = 3;
    /**
     * optional uint32 attacker_name = 3;
     */
    boolean hasAttackerName();
    /**
     * optional uint32 attacker_name = 3;
     */
    int getAttackerName();

    // optional bool attacker_illusion = 4;
    /**
     * optional bool attacker_illusion = 4;
     */
    boolean hasAttackerIllusion();
    /**
     * optional bool attacker_illusion = 4;
     */
    boolean getAttackerIllusion();

    // optional bool target_illusion = 5;
    /**
     * optional bool target_illusion = 5;
     */
    boolean hasTargetIllusion();
    /**
     * optional bool target_illusion = 5;
     */
    boolean getTargetIllusion();

    // optional uint32 inflictor_name = 6;
    /**
     * optional uint32 inflictor_name = 6;
     */
    boolean hasInflictorName();
    /**
     * optional uint32 inflictor_name = 6;
     */
    int getInflictorName();

    // optional int32 value = 7;
    /**
     * optional int32 value = 7;
     */
    boolean hasValue();
    /**
     * optional int32 value = 7;
     */
    int getValue();

    // optional int32 health = 8;
    /**
     * optional int32 health = 8;
     */
    boolean hasHealth();
    /**
     * optional int32 health = 8;
     */
    int getHealth();

    // optional float time = 9;
    /**
     * optional float time = 9;
     */
    boolean hasTime();
    /**
     * optional float time = 9;
     */
    float getTime();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_CombatLogData}
   */
  public static final class CDOTAUserMsg_CombatLogData extends
      com.google.protobuf.GeneratedMessage
      implements CDOTAUserMsg_CombatLogDataOrBuilder {
    // Use CDOTAUserMsg_CombatLogData.newBuilder() to construct.
    private CDOTAUserMsg_CombatLogData(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_CombatLogData(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_CombatLogData defaultInstance;
    public static CDOTAUserMsg_CombatLogData getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_CombatLogData getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_CombatLogData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              com.dota2.proto.DotaUsermessages.DOTA_COMBATLOG_TYPES value = com.dota2.proto.DotaUsermessages.DOTA_COMBATLOG_TYPES.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                type_ = value;
              }
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              targetName_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              attackerName_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              attackerIllusion_ = input.readBool();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              targetIllusion_ = input.readBool();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              inflictorName_ = input.readUInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              value_ = input.readInt32();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              health_ = input.readInt32();
              break;
            }
            case 77: {
              bitField0_ |= 0x00000100;
              time_ = input.readFloat();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_CombatLogData_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_CombatLogData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogData.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogData.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_CombatLogData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_CombatLogData(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
    public static final int TYPE_FIELD_NUMBER = 1;
    private com.dota2.proto.DotaUsermessages.DOTA_COMBATLOG_TYPES type_;
    /**
     * optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
     */
    public com.dota2.proto.DotaUsermessages.DOTA_COMBATLOG_TYPES getType() {
      return type_;
    }

    // optional uint32 target_name = 2;
    public static final int TARGET_NAME_FIELD_NUMBER = 2;
    private int targetName_;
    /**
     * optional uint32 target_name = 2;
     */
    public boolean hasTargetName() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 target_name = 2;
     */
    public int getTargetName() {
      return targetName_;
    }

    // optional uint32 attacker_name = 3;
    public static final int ATTACKER_NAME_FIELD_NUMBER = 3;
    private int attackerName_;
    /**
     * optional uint32 attacker_name = 3;
     */
    public boolean hasAttackerName() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 attacker_name = 3;
     */
    public int getAttackerName() {
      return attackerName_;
    }

    // optional bool attacker_illusion = 4;
    public static final int ATTACKER_ILLUSION_FIELD_NUMBER = 4;
    private boolean attackerIllusion_;
    /**
     * optional bool attacker_illusion = 4;
     */
    public boolean hasAttackerIllusion() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional bool attacker_illusion = 4;
     */
    public boolean getAttackerIllusion() {
      return attackerIllusion_;
    }

    // optional bool target_illusion = 5;
    public static final int TARGET_ILLUSION_FIELD_NUMBER = 5;
    private boolean targetIllusion_;
    /**
     * optional bool target_illusion = 5;
     */
    public boolean hasTargetIllusion() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional bool target_illusion = 5;
     */
    public boolean getTargetIllusion() {
      return targetIllusion_;
    }

    // optional uint32 inflictor_name = 6;
    public static final int INFLICTOR_NAME_FIELD_NUMBER = 6;
    private int inflictorName_;
    /**
     * optional uint32 inflictor_name = 6;
     */
    public boolean hasInflictorName() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional uint32 inflictor_name = 6;
     */
    public int getInflictorName() {
      return inflictorName_;
    }

    // optional int32 value = 7;
    public static final int VALUE_FIELD_NUMBER = 7;
    private int value_;
    /**
     * optional int32 value = 7;
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional int32 value = 7;
     */
    public int getValue() {
      return value_;
    }

    // optional int32 health = 8;
    public static final int HEALTH_FIELD_NUMBER = 8;
    private int health_;
    /**
     * optional int32 health = 8;
     */
    public boolean hasHealth() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional int32 health = 8;
     */
    public int getHealth() {
      return health_;
    }

    // optional float time = 9;
    public static final int TIME_FIELD_NUMBER = 9;
    private float time_;
    /**
     * optional float time = 9;
     */
    public boolean hasTime() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * optional float time = 9;
     */
    public float getTime() {
      return time_;
    }

    private void initFields() {
      type_ = com.dota2.proto.DotaUsermessages.DOTA_COMBATLOG_TYPES.DOTA_COMBATLOG_DAMAGE;
      targetName_ = 0;
      attackerName_ = 0;
      attackerIllusion_ = false;
      targetIllusion_ = false;
      inflictorName_ = 0;
      value_ = 0;
      health_ = 0;
      time_ = 0F;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, type_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, targetName_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, attackerName_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBool(4, attackerIllusion_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBool(5, targetIllusion_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeUInt32(6, inflictorName_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeInt32(7, value_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeInt32(8, health_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeFloat(9, time_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, type_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, targetName_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, attackerName_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, attackerIllusion_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, targetIllusion_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, inflictorName_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(7, value_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(8, health_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(9, time_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogData prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_CombatLogData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_CombatLogData_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_CombatLogData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogData.class, com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogData.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        type_ = com.dota2.proto.DotaUsermessages.DOTA_COMBATLOG_TYPES.DOTA_COMBATLOG_DAMAGE;
        bitField0_ = (bitField0_ & ~0x00000001);
        targetName_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        attackerName_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        attackerIllusion_ = false;
        bitField0_ = (bitField0_ & ~0x00000008);
        targetIllusion_ = false;
        bitField0_ = (bitField0_ & ~0x00000010);
        inflictorName_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        value_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        health_ = 0;
        bitField0_ = (bitField0_ & ~0x00000080);
        time_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CDOTAUserMsg_CombatLogData_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogData getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogData.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogData build() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogData buildPartial() {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogData result = new com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogData(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.targetName_ = targetName_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.attackerName_ = attackerName_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.attackerIllusion_ = attackerIllusion_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.targetIllusion_ = targetIllusion_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.inflictorName_ = inflictorName_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.value_ = value_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.health_ = health_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        result.time_ = time_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogData) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogData other) {
        if (other == com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogData.getDefaultInstance()) return this;
        if (other.hasType()) {
          setType(other.getType());
        }
        if (other.hasTargetName()) {
          setTargetName(other.getTargetName());
        }
        if (other.hasAttackerName()) {
          setAttackerName(other.getAttackerName());
        }
        if (other.hasAttackerIllusion()) {
          setAttackerIllusion(other.getAttackerIllusion());
        }
        if (other.hasTargetIllusion()) {
          setTargetIllusion(other.getTargetIllusion());
        }
        if (other.hasInflictorName()) {
          setInflictorName(other.getInflictorName());
        }
        if (other.hasValue()) {
          setValue(other.getValue());
        }
        if (other.hasHealth()) {
          setHealth(other.getHealth());
        }
        if (other.hasTime()) {
          setTime(other.getTime());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CDOTAUserMsg_CombatLogData) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
      private com.dota2.proto.DotaUsermessages.DOTA_COMBATLOG_TYPES type_ = com.dota2.proto.DotaUsermessages.DOTA_COMBATLOG_TYPES.DOTA_COMBATLOG_DAMAGE;
      /**
       * optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
       */
      public com.dota2.proto.DotaUsermessages.DOTA_COMBATLOG_TYPES getType() {
        return type_;
      }
      /**
       * optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
       */
      public Builder setType(com.dota2.proto.DotaUsermessages.DOTA_COMBATLOG_TYPES value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = com.dota2.proto.DotaUsermessages.DOTA_COMBATLOG_TYPES.DOTA_COMBATLOG_DAMAGE;
        onChanged();
        return this;
      }

      // optional uint32 target_name = 2;
      private int targetName_ ;
      /**
       * optional uint32 target_name = 2;
       */
      public boolean hasTargetName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 target_name = 2;
       */
      public int getTargetName() {
        return targetName_;
      }
      /**
       * optional uint32 target_name = 2;
       */
      public Builder setTargetName(int value) {
        bitField0_ |= 0x00000002;
        targetName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 target_name = 2;
       */
      public Builder clearTargetName() {
        bitField0_ = (bitField0_ & ~0x00000002);
        targetName_ = 0;
        onChanged();
        return this;
      }

      // optional uint32 attacker_name = 3;
      private int attackerName_ ;
      /**
       * optional uint32 attacker_name = 3;
       */
      public boolean hasAttackerName() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 attacker_name = 3;
       */
      public int getAttackerName() {
        return attackerName_;
      }
      /**
       * optional uint32 attacker_name = 3;
       */
      public Builder setAttackerName(int value) {
        bitField0_ |= 0x00000004;
        attackerName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 attacker_name = 3;
       */
      public Builder clearAttackerName() {
        bitField0_ = (bitField0_ & ~0x00000004);
        attackerName_ = 0;
        onChanged();
        return this;
      }

      // optional bool attacker_illusion = 4;
      private boolean attackerIllusion_ ;
      /**
       * optional bool attacker_illusion = 4;
       */
      public boolean hasAttackerIllusion() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional bool attacker_illusion = 4;
       */
      public boolean getAttackerIllusion() {
        return attackerIllusion_;
      }
      /**
       * optional bool attacker_illusion = 4;
       */
      public Builder setAttackerIllusion(boolean value) {
        bitField0_ |= 0x00000008;
        attackerIllusion_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool attacker_illusion = 4;
       */
      public Builder clearAttackerIllusion() {
        bitField0_ = (bitField0_ & ~0x00000008);
        attackerIllusion_ = false;
        onChanged();
        return this;
      }

      // optional bool target_illusion = 5;
      private boolean targetIllusion_ ;
      /**
       * optional bool target_illusion = 5;
       */
      public boolean hasTargetIllusion() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional bool target_illusion = 5;
       */
      public boolean getTargetIllusion() {
        return targetIllusion_;
      }
      /**
       * optional bool target_illusion = 5;
       */
      public Builder setTargetIllusion(boolean value) {
        bitField0_ |= 0x00000010;
        targetIllusion_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool target_illusion = 5;
       */
      public Builder clearTargetIllusion() {
        bitField0_ = (bitField0_ & ~0x00000010);
        targetIllusion_ = false;
        onChanged();
        return this;
      }

      // optional uint32 inflictor_name = 6;
      private int inflictorName_ ;
      /**
       * optional uint32 inflictor_name = 6;
       */
      public boolean hasInflictorName() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional uint32 inflictor_name = 6;
       */
      public int getInflictorName() {
        return inflictorName_;
      }
      /**
       * optional uint32 inflictor_name = 6;
       */
      public Builder setInflictorName(int value) {
        bitField0_ |= 0x00000020;
        inflictorName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 inflictor_name = 6;
       */
      public Builder clearInflictorName() {
        bitField0_ = (bitField0_ & ~0x00000020);
        inflictorName_ = 0;
        onChanged();
        return this;
      }

      // optional int32 value = 7;
      private int value_ ;
      /**
       * optional int32 value = 7;
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional int32 value = 7;
       */
      public int getValue() {
        return value_;
      }
      /**
       * optional int32 value = 7;
       */
      public Builder setValue(int value) {
        bitField0_ |= 0x00000040;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 value = 7;
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000040);
        value_ = 0;
        onChanged();
        return this;
      }

      // optional int32 health = 8;
      private int health_ ;
      /**
       * optional int32 health = 8;
       */
      public boolean hasHealth() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional int32 health = 8;
       */
      public int getHealth() {
        return health_;
      }
      /**
       * optional int32 health = 8;
       */
      public Builder setHealth(int value) {
        bitField0_ |= 0x00000080;
        health_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 health = 8;
       */
      public Builder clearHealth() {
        bitField0_ = (bitField0_ & ~0x00000080);
        health_ = 0;
        onChanged();
        return this;
      }

      // optional float time = 9;
      private float time_ ;
      /**
       * optional float time = 9;
       */
      public boolean hasTime() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * optional float time = 9;
       */
      public float getTime() {
        return time_;
      }
      /**
       * optional float time = 9;
       */
      public Builder setTime(float value) {
        bitField0_ |= 0x00000100;
        time_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float time = 9;
       */
      public Builder clearTime() {
        bitField0_ = (bitField0_ & ~0x00000100);
        time_ = 0F;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_CombatLogData)
    }

    static {
      defaultInstance = new CDOTAUserMsg_CombatLogData(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_CombatLogData)
  }

  public interface CMsgDOTACombatLogEntryOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
    /**
     * optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
     */
    boolean hasType();
    /**
     * optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
     */
    com.dota2.proto.DotaUsermessages.DOTA_COMBATLOG_TYPES getType();

    // optional uint32 target_name = 2;
    /**
     * optional uint32 target_name = 2;
     */
    boolean hasTargetName();
    /**
     * optional uint32 target_name = 2;
     */
    int getTargetName();

    // optional uint32 target_source_name = 3;
    /**
     * optional uint32 target_source_name = 3;
     */
    boolean hasTargetSourceName();
    /**
     * optional uint32 target_source_name = 3;
     */
    int getTargetSourceName();

    // optional uint32 attacker_name = 4;
    /**
     * optional uint32 attacker_name = 4;
     */
    boolean hasAttackerName();
    /**
     * optional uint32 attacker_name = 4;
     */
    int getAttackerName();

    // optional uint32 damage_source_name = 5;
    /**
     * optional uint32 damage_source_name = 5;
     */
    boolean hasDamageSourceName();
    /**
     * optional uint32 damage_source_name = 5;
     */
    int getDamageSourceName();

    // optional uint32 inflictor_name = 6;
    /**
     * optional uint32 inflictor_name = 6;
     */
    boolean hasInflictorName();
    /**
     * optional uint32 inflictor_name = 6;
     */
    int getInflictorName();

    // optional bool is_attacker_illusion = 7;
    /**
     * optional bool is_attacker_illusion = 7;
     */
    boolean hasIsAttackerIllusion();
    /**
     * optional bool is_attacker_illusion = 7;
     */
    boolean getIsAttackerIllusion();

    // optional bool is_attacker_hero = 8;
    /**
     * optional bool is_attacker_hero = 8;
     */
    boolean hasIsAttackerHero();
    /**
     * optional bool is_attacker_hero = 8;
     */
    boolean getIsAttackerHero();

    // optional bool is_target_illusion = 9;
    /**
     * optional bool is_target_illusion = 9;
     */
    boolean hasIsTargetIllusion();
    /**
     * optional bool is_target_illusion = 9;
     */
    boolean getIsTargetIllusion();

    // optional bool is_target_hero = 10;
    /**
     * optional bool is_target_hero = 10;
     */
    boolean hasIsTargetHero();
    /**
     * optional bool is_target_hero = 10;
     */
    boolean getIsTargetHero();

    // optional bool is_visible_radiant = 11;
    /**
     * optional bool is_visible_radiant = 11;
     */
    boolean hasIsVisibleRadiant();
    /**
     * optional bool is_visible_radiant = 11;
     */
    boolean getIsVisibleRadiant();

    // optional bool is_visible_dire = 12;
    /**
     * optional bool is_visible_dire = 12;
     */
    boolean hasIsVisibleDire();
    /**
     * optional bool is_visible_dire = 12;
     */
    boolean getIsVisibleDire();

    // optional uint32 value = 13;
    /**
     * optional uint32 value = 13;
     */
    boolean hasValue();
    /**
     * optional uint32 value = 13;
     */
    int getValue();

    // optional int32 health = 14;
    /**
     * optional int32 health = 14;
     */
    boolean hasHealth();
    /**
     * optional int32 health = 14;
     */
    int getHealth();

    // optional float timestamp = 15;
    /**
     * optional float timestamp = 15;
     */
    boolean hasTimestamp();
    /**
     * optional float timestamp = 15;
     */
    float getTimestamp();

    // optional float stun_duration = 16;
    /**
     * optional float stun_duration = 16;
     */
    boolean hasStunDuration();
    /**
     * optional float stun_duration = 16;
     */
    float getStunDuration();

    // optional float slow_duration = 17;
    /**
     * optional float slow_duration = 17;
     */
    boolean hasSlowDuration();
    /**
     * optional float slow_duration = 17;
     */
    float getSlowDuration();

    // optional bool is_ability_toggle_on = 18;
    /**
     * optional bool is_ability_toggle_on = 18;
     */
    boolean hasIsAbilityToggleOn();
    /**
     * optional bool is_ability_toggle_on = 18;
     */
    boolean getIsAbilityToggleOn();

    // optional bool is_ability_toggle_off = 19;
    /**
     * optional bool is_ability_toggle_off = 19;
     */
    boolean hasIsAbilityToggleOff();
    /**
     * optional bool is_ability_toggle_off = 19;
     */
    boolean getIsAbilityToggleOff();

    // optional uint32 ability_level = 20;
    /**
     * optional uint32 ability_level = 20;
     */
    boolean hasAbilityLevel();
    /**
     * optional uint32 ability_level = 20;
     */
    int getAbilityLevel();

    // optional float location_x = 21;
    /**
     * optional float location_x = 21;
     */
    boolean hasLocationX();
    /**
     * optional float location_x = 21;
     */
    float getLocationX();

    // optional float location_y = 22;
    /**
     * optional float location_y = 22;
     */
    boolean hasLocationY();
    /**
     * optional float location_y = 22;
     */
    float getLocationY();

    // optional uint32 gold_reason = 23;
    /**
     * optional uint32 gold_reason = 23;
     */
    boolean hasGoldReason();
    /**
     * optional uint32 gold_reason = 23;
     */
    int getGoldReason();

    // optional float timestamp_raw = 24;
    /**
     * optional float timestamp_raw = 24;
     */
    boolean hasTimestampRaw();
    /**
     * optional float timestamp_raw = 24;
     */
    float getTimestampRaw();
  }
  /**
   * Protobuf type {@code CMsgDOTACombatLogEntry}
   */
  public static final class CMsgDOTACombatLogEntry extends
      com.google.protobuf.GeneratedMessage
      implements CMsgDOTACombatLogEntryOrBuilder {
    // Use CMsgDOTACombatLogEntry.newBuilder() to construct.
    private CMsgDOTACombatLogEntry(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CMsgDOTACombatLogEntry(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CMsgDOTACombatLogEntry defaultInstance;
    public static CMsgDOTACombatLogEntry getDefaultInstance() {
      return defaultInstance;
    }

    public CMsgDOTACombatLogEntry getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CMsgDOTACombatLogEntry(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              com.dota2.proto.DotaUsermessages.DOTA_COMBATLOG_TYPES value = com.dota2.proto.DotaUsermessages.DOTA_COMBATLOG_TYPES.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                type_ = value;
              }
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              targetName_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              targetSourceName_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              attackerName_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              damageSourceName_ = input.readUInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              inflictorName_ = input.readUInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              isAttackerIllusion_ = input.readBool();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              isAttackerHero_ = input.readBool();
              break;
            }
            case 72: {
              bitField0_ |= 0x00000100;
              isTargetIllusion_ = input.readBool();
              break;
            }
            case 80: {
              bitField0_ |= 0x00000200;
              isTargetHero_ = input.readBool();
              break;
            }
            case 88: {
              bitField0_ |= 0x00000400;
              isVisibleRadiant_ = input.readBool();
              break;
            }
            case 96: {
              bitField0_ |= 0x00000800;
              isVisibleDire_ = input.readBool();
              break;
            }
            case 104: {
              bitField0_ |= 0x00001000;
              value_ = input.readUInt32();
              break;
            }
            case 112: {
              bitField0_ |= 0x00002000;
              health_ = input.readInt32();
              break;
            }
            case 125: {
              bitField0_ |= 0x00004000;
              timestamp_ = input.readFloat();
              break;
            }
            case 133: {
              bitField0_ |= 0x00008000;
              stunDuration_ = input.readFloat();
              break;
            }
            case 141: {
              bitField0_ |= 0x00010000;
              slowDuration_ = input.readFloat();
              break;
            }
            case 144: {
              bitField0_ |= 0x00020000;
              isAbilityToggleOn_ = input.readBool();
              break;
            }
            case 152: {
              bitField0_ |= 0x00040000;
              isAbilityToggleOff_ = input.readBool();
              break;
            }
            case 160: {
              bitField0_ |= 0x00080000;
              abilityLevel_ = input.readUInt32();
              break;
            }
            case 173: {
              bitField0_ |= 0x00100000;
              locationX_ = input.readFloat();
              break;
            }
            case 181: {
              bitField0_ |= 0x00200000;
              locationY_ = input.readFloat();
              break;
            }
            case 184: {
              bitField0_ |= 0x00400000;
              goldReason_ = input.readUInt32();
              break;
            }
            case 197: {
              bitField0_ |= 0x00800000;
              timestampRaw_ = input.readFloat();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.dota2.proto.DotaUsermessages.internal_static_CMsgDOTACombatLogEntry_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.dota2.proto.DotaUsermessages.internal_static_CMsgDOTACombatLogEntry_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.dota2.proto.DotaUsermessages.CMsgDOTACombatLogEntry.class, com.dota2.proto.DotaUsermessages.CMsgDOTACombatLogEntry.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CMsgDOTACombatLogEntry parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CMsgDOTACombatLogEntry(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
    public static final int TYPE_FIELD_NUMBER = 1;
    private com.dota2.proto.DotaUsermessages.DOTA_COMBATLOG_TYPES type_;
    /**
     * optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
     */
    public com.dota2.proto.DotaUsermessages.DOTA_COMBATLOG_TYPES getType() {
      return type_;
    }

    // optional uint32 target_name = 2;
    public static final int TARGET_NAME_FIELD_NUMBER = 2;
    private int targetName_;
    /**
     * optional uint32 target_name = 2;
     */
    public boolean hasTargetName() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 target_name = 2;
     */
    public int getTargetName() {
      return targetName_;
    }

    // optional uint32 target_source_name = 3;
    public static final int TARGET_SOURCE_NAME_FIELD_NUMBER = 3;
    private int targetSourceName_;
    /**
     * optional uint32 target_source_name = 3;
     */
    public boolean hasTargetSourceName() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 target_source_name = 3;
     */
    public int getTargetSourceName() {
      return targetSourceName_;
    }

    // optional uint32 attacker_name = 4;
    public static final int ATTACKER_NAME_FIELD_NUMBER = 4;
    private int attackerName_;
    /**
     * optional uint32 attacker_name = 4;
     */
    public boolean hasAttackerName() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 attacker_name = 4;
     */
    public int getAttackerName() {
      return attackerName_;
    }

    // optional uint32 damage_source_name = 5;
    public static final int DAMAGE_SOURCE_NAME_FIELD_NUMBER = 5;
    private int damageSourceName_;
    /**
     * optional uint32 damage_source_name = 5;
     */
    public boolean hasDamageSourceName() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional uint32 damage_source_name = 5;
     */
    public int getDamageSourceName() {
      return damageSourceName_;
    }

    // optional uint32 inflictor_name = 6;
    public static final int INFLICTOR_NAME_FIELD_NUMBER = 6;
    private int inflictorName_;
    /**
     * optional uint32 inflictor_name = 6;
     */
    public boolean hasInflictorName() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional uint32 inflictor_name = 6;
     */
    public int getInflictorName() {
      return inflictorName_;
    }

    // optional bool is_attacker_illusion = 7;
    public static final int IS_ATTACKER_ILLUSION_FIELD_NUMBER = 7;
    private boolean isAttackerIllusion_;
    /**
     * optional bool is_attacker_illusion = 7;
     */
    public boolean hasIsAttackerIllusion() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional bool is_attacker_illusion = 7;
     */
    public boolean getIsAttackerIllusion() {
      return isAttackerIllusion_;
    }

    // optional bool is_attacker_hero = 8;
    public static final int IS_ATTACKER_HERO_FIELD_NUMBER = 8;
    private boolean isAttackerHero_;
    /**
     * optional bool is_attacker_hero = 8;
     */
    public boolean hasIsAttackerHero() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional bool is_attacker_hero = 8;
     */
    public boolean getIsAttackerHero() {
      return isAttackerHero_;
    }

    // optional bool is_target_illusion = 9;
    public static final int IS_TARGET_ILLUSION_FIELD_NUMBER = 9;
    private boolean isTargetIllusion_;
    /**
     * optional bool is_target_illusion = 9;
     */
    public boolean hasIsTargetIllusion() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * optional bool is_target_illusion = 9;
     */
    public boolean getIsTargetIllusion() {
      return isTargetIllusion_;
    }

    // optional bool is_target_hero = 10;
    public static final int IS_TARGET_HERO_FIELD_NUMBER = 10;
    private boolean isTargetHero_;
    /**
     * optional bool is_target_hero = 10;
     */
    public boolean hasIsTargetHero() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     * optional bool is_target_hero = 10;
     */
    public boolean getIsTargetHero() {
      return isTargetHero_;
    }

    // optional bool is_visible_radiant = 11;
    public static final int IS_VISIBLE_RADIANT_FIELD_NUMBER = 11;
    private boolean isVisibleRadiant_;
    /**
     * optional bool is_visible_radiant = 11;
     */
    public boolean hasIsVisibleRadiant() {
      return ((bitField0_ & 0x00000400) == 0x00000400);
    }
    /**
     * optional bool is_visible_radiant = 11;
     */
    public boolean getIsVisibleRadiant() {
      return isVisibleRadiant_;
    }

    // optional bool is_visible_dire = 12;
    public static final int IS_VISIBLE_DIRE_FIELD_NUMBER = 12;
    private boolean isVisibleDire_;
    /**
     * optional bool is_visible_dire = 12;
     */
    public boolean hasIsVisibleDire() {
      return ((bitField0_ & 0x00000800) == 0x00000800);
    }
    /**
     * optional bool is_visible_dire = 12;
     */
    public boolean getIsVisibleDire() {
      return isVisibleDire_;
    }

    // optional uint32 value = 13;
    public static final int VALUE_FIELD_NUMBER = 13;
    private int value_;
    /**
     * optional uint32 value = 13;
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00001000) == 0x00001000);
    }
    /**
     * optional uint32 value = 13;
     */
    public int getValue() {
      return value_;
    }

    // optional int32 health = 14;
    public static final int HEALTH_FIELD_NUMBER = 14;
    private int health_;
    /**
     * optional int32 health = 14;
     */
    public boolean hasHealth() {
      return ((bitField0_ & 0x00002000) == 0x00002000);
    }
    /**
     * optional int32 health = 14;
     */
    public int getHealth() {
      return health_;
    }

    // optional float timestamp = 15;
    public static final int TIMESTAMP_FIELD_NUMBER = 15;
    private float timestamp_;
    /**
     * optional float timestamp = 15;
     */
    public boolean hasTimestamp() {
      return ((bitField0_ & 0x00004000) == 0x00004000);
    }
    /**
     * optional float timestamp = 15;
     */
    public float getTimestamp() {
      return timestamp_;
    }

    // optional float stun_duration = 16;
    public static final int STUN_DURATION_FIELD_NUMBER = 16;
    private float stunDuration_;
    /**
     * optional float stun_duration = 16;
     */
    public boolean hasStunDuration() {
      return ((bitField0_ & 0x00008000) == 0x00008000);
    }
    /**
     * optional float stun_duration = 16;
     */
    public float getStunDuration() {
      return stunDuration_;
    }

    // optional float slow_duration = 17;
    public static final int SLOW_DURATION_FIELD_NUMBER = 17;
    private float slowDuration_;
    /**
     * optional float slow_duration = 17;
     */
    public boolean hasSlowDuration() {
      return ((bitField0_ & 0x00010000) == 0x00010000);
    }
    /**
     * optional float slow_duration = 17;
     */
    public float getSlowDuration() {
      return slowDuration_;
    }

    // optional bool is_ability_toggle_on = 18;
    public static final int IS_ABILITY_TOGGLE_ON_FIELD_NUMBER = 18;
    private boolean isAbilityToggleOn_;
    /**
     * optional bool is_ability_toggle_on = 18;
     */
    public boolean hasIsAbilityToggleOn() {
      return ((bitField0_ & 0x00020000) == 0x00020000);
    }
    /**
     * optional bool is_ability_toggle_on = 18;
     */
    public boolean getIsAbilityToggleOn() {
      return isAbilityToggleOn_;
    }

    // optional bool is_ability_toggle_off = 19;
    public static final int IS_ABILITY_TOGGLE_OFF_FIELD_NUMBER = 19;
    private boolean isAbilityToggleOff_;
    /**
     * optional bool is_ability_toggle_off = 19;
     */
    public boolean hasIsAbilityToggleOff() {
      return ((bitField0_ & 0x00040000) == 0x00040000);
    }
    /**
     * optional bool is_ability_toggle_off = 19;
     */
    public boolean getIsAbilityToggleOff() {
      return isAbilityToggleOff_;
    }

    // optional uint32 ability_level = 20;
    public static final int ABILITY_LEVEL_FIELD_NUMBER = 20;
    private int abilityLevel_;
    /**
     * optional uint32 ability_level = 20;
     */
    public boolean hasAbilityLevel() {
      return ((bitField0_ & 0x00080000) == 0x00080000);
    }
    /**
     * optional uint32 ability_level = 20;
     */
    public int getAbilityLevel() {
      return abilityLevel_;
    }

    // optional float location_x = 21;
    public static final int LOCATION_X_FIELD_NUMBER = 21;
    private float locationX_;
    /**
     * optional float location_x = 21;
     */
    public boolean hasLocationX() {
      return ((bitField0_ & 0x00100000) == 0x00100000);
    }
    /**
     * optional float location_x = 21;
     */
    public float getLocationX() {
      return locationX_;
    }

    // optional float location_y = 22;
    public static final int LOCATION_Y_FIELD_NUMBER = 22;
    private float locationY_;
    /**
     * optional float location_y = 22;
     */
    public boolean hasLocationY() {
      return ((bitField0_ & 0x00200000) == 0x00200000);
    }
    /**
     * optional float location_y = 22;
     */
    public float getLocationY() {
      return locationY_;
    }

    // optional uint32 gold_reason = 23;
    public static final int GOLD_REASON_FIELD_NUMBER = 23;
    private int goldReason_;
    /**
     * optional uint32 gold_reason = 23;
     */
    public boolean hasGoldReason() {
      return ((bitField0_ & 0x00400000) == 0x00400000);
    }
    /**
     * optional uint32 gold_reason = 23;
     */
    public int getGoldReason() {
      return goldReason_;
    }

    // optional float timestamp_raw = 24;
    public static final int TIMESTAMP_RAW_FIELD_NUMBER = 24;
    private float timestampRaw_;
    /**
     * optional float timestamp_raw = 24;
     */
    public boolean hasTimestampRaw() {
      return ((bitField0_ & 0x00800000) == 0x00800000);
    }
    /**
     * optional float timestamp_raw = 24;
     */
    public float getTimestampRaw() {
      return timestampRaw_;
    }

    private void initFields() {
      type_ = com.dota2.proto.DotaUsermessages.DOTA_COMBATLOG_TYPES.DOTA_COMBATLOG_DAMAGE;
      targetName_ = 0;
      targetSourceName_ = 0;
      attackerName_ = 0;
      damageSourceName_ = 0;
      inflictorName_ = 0;
      isAttackerIllusion_ = false;
      isAttackerHero_ = false;
      isTargetIllusion_ = false;
      isTargetHero_ = false;
      isVisibleRadiant_ = false;
      isVisibleDire_ = false;
      value_ = 0;
      health_ = 0;
      timestamp_ = 0F;
      stunDuration_ = 0F;
      slowDuration_ = 0F;
      isAbilityToggleOn_ = false;
      isAbilityToggleOff_ = false;
      abilityLevel_ = 0;
      locationX_ = 0F;
      locationY_ = 0F;
      goldReason_ = 0;
      timestampRaw_ = 0F;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, type_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, targetName_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, targetSourceName_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, attackerName_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, damageSourceName_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeUInt32(6, inflictorName_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeBool(7, isAttackerIllusion_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeBool(8, isAttackerHero_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeBool(9, isTargetIllusion_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeBool(10, isTargetHero_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        output.writeBool(11, isVisibleRadiant_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        output.writeBool(12, isVisibleDire_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        output.writeUInt32(13, value_);
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        output.writeInt32(14, health_);
      }
      if (((bitField0_ & 0x00004000) == 0x00004000)) {
        output.writeFloat(15, timestamp_);
      }
      if (((bitField0_ & 0x00008000) == 0x00008000)) {
        output.writeFloat(16, stunDuration_);
      }
      if (((bitField0_ & 0x00010000) == 0x00010000)) {
        output.writeFloat(17, slowDuration_);
      }
      if (((bitField0_ & 0x00020000) == 0x00020000)) {
        output.writeBool(18, isAbilityToggleOn_);
      }
      if (((bitField0_ & 0x00040000) == 0x00040000)) {
        output.writeBool(19, isAbilityToggleOff_);
      }
      if (((bitField0_ & 0x00080000) == 0x00080000)) {
        output.writeUInt32(20, abilityLevel_);
      }
      if (((bitField0_ & 0x00100000) == 0x00100000)) {
        output.writeFloat(21, locationX_);
      }
      if (((bitField0_ & 0x00200000) == 0x00200000)) {
        output.writeFloat(22, locationY_);
      }
      if (((bitField0_ & 0x00400000) == 0x00400000)) {
        output.writeUInt32(23, goldReason_);
      }
      if (((bitField0_ & 0x00800000) == 0x00800000)) {
        output.writeFloat(24, timestampRaw_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, type_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, targetName_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, targetSourceName_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, attackerName_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, damageSourceName_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, inflictorName_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(7, isAttackerIllusion_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(8, isAttackerHero_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(9, isTargetIllusion_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(10, isTargetHero_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(11, isVisibleRadiant_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(12, isVisibleDire_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(13, value_);
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(14, health_);
      }
      if (((bitField0_ & 0x00004000) == 0x00004000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(15, timestamp_);
      }
      if (((bitField0_ & 0x00008000) == 0x00008000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(16, stunDuration_);
      }
      if (((bitField0_ & 0x00010000) == 0x00010000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(17, slowDuration_);
      }
      if (((bitField0_ & 0x00020000) == 0x00020000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(18, isAbilityToggleOn_);
      }
      if (((bitField0_ & 0x00040000) == 0x00040000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(19, isAbilityToggleOff_);
      }
      if (((bitField0_ & 0x00080000) == 0x00080000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(20, abilityLevel_);
      }
      if (((bitField0_ & 0x00100000) == 0x00100000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(21, locationX_);
      }
      if (((bitField0_ & 0x00200000) == 0x00200000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(22, locationY_);
      }
      if (((bitField0_ & 0x00400000) == 0x00400000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(23, goldReason_);
      }
      if (((bitField0_ & 0x00800000) == 0x00800000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(24, timestampRaw_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static com.dota2.proto.DotaUsermessages.CMsgDOTACombatLogEntry parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CMsgDOTACombatLogEntry parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CMsgDOTACombatLogEntry parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.dota2.proto.DotaUsermessages.CMsgDOTACombatLogEntry parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CMsgDOTACombatLogEntry parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CMsgDOTACombatLogEntry parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CMsgDOTACombatLogEntry parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CMsgDOTACombatLogEntry parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.dota2.proto.DotaUsermessages.CMsgDOTACombatLogEntry parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.dota2.proto.DotaUsermessages.CMsgDOTACombatLogEntry parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.dota2.proto.DotaUsermessages.CMsgDOTACombatLogEntry prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CMsgDOTACombatLogEntry}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder
       implements com.dota2.proto.DotaUsermessages.CMsgDOTACombatLogEntryOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.dota2.proto.DotaUsermessages.internal_static_CMsgDOTACombatLogEntry_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.dota2.proto.DotaUsermessages.internal_static_CMsgDOTACombatLogEntry_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.dota2.proto.DotaUsermessages.CMsgDOTACombatLogEntry.class, com.dota2.proto.DotaUsermessages.CMsgDOTACombatLogEntry.Builder.class);
      }

      // Construct using com.dota2.proto.DotaUsermessages.CMsgDOTACombatLogEntry.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        type_ = com.dota2.proto.DotaUsermessages.DOTA_COMBATLOG_TYPES.DOTA_COMBATLOG_DAMAGE;
        bitField0_ = (bitField0_ & ~0x00000001);
        targetName_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        targetSourceName_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        attackerName_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        damageSourceName_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        inflictorName_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        isAttackerIllusion_ = false;
        bitField0_ = (bitField0_ & ~0x00000040);
        isAttackerHero_ = false;
        bitField0_ = (bitField0_ & ~0x00000080);
        isTargetIllusion_ = false;
        bitField0_ = (bitField0_ & ~0x00000100);
        isTargetHero_ = false;
        bitField0_ = (bitField0_ & ~0x00000200);
        isVisibleRadiant_ = false;
        bitField0_ = (bitField0_ & ~0x00000400);
        isVisibleDire_ = false;
        bitField0_ = (bitField0_ & ~0x00000800);
        value_ = 0;
        bitField0_ = (bitField0_ & ~0x00001000);
        health_ = 0;
        bitField0_ = (bitField0_ & ~0x00002000);
        timestamp_ = 0F;
        bitField0_ = (bitField0_ & ~0x00004000);
        stunDuration_ = 0F;
        bitField0_ = (bitField0_ & ~0x00008000);
        slowDuration_ = 0F;
        bitField0_ = (bitField0_ & ~0x00010000);
        isAbilityToggleOn_ = false;
        bitField0_ = (bitField0_ & ~0x00020000);
        isAbilityToggleOff_ = false;
        bitField0_ = (bitField0_ & ~0x00040000);
        abilityLevel_ = 0;
        bitField0_ = (bitField0_ & ~0x00080000);
        locationX_ = 0F;
        bitField0_ = (bitField0_ & ~0x00100000);
        locationY_ = 0F;
        bitField0_ = (bitField0_ & ~0x00200000);
        goldReason_ = 0;
        bitField0_ = (bitField0_ & ~0x00400000);
        timestampRaw_ = 0F;
        bitField0_ = (bitField0_ & ~0x00800000);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.dota2.proto.DotaUsermessages.internal_static_CMsgDOTACombatLogEntry_descriptor;
      }

      public com.dota2.proto.DotaUsermessages.CMsgDOTACombatLogEntry getDefaultInstanceForType() {
        return com.dota2.proto.DotaUsermessages.CMsgDOTACombatLogEntry.getDefaultInstance();
      }

      public com.dota2.proto.DotaUsermessages.CMsgDOTACombatLogEntry build() {
        com.dota2.proto.DotaUsermessages.CMsgDOTACombatLogEntry result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.dota2.proto.DotaUsermessages.CMsgDOTACombatLogEntry buildPartial() {
        com.dota2.proto.DotaUsermessages.CMsgDOTACombatLogEntry result = new com.dota2.proto.DotaUsermessages.CMsgDOTACombatLogEntry(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.targetName_ = targetName_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.targetSourceName_ = targetSourceName_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.attackerName_ = attackerName_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.damageSourceName_ = damageSourceName_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.inflictorName_ = inflictorName_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.isAttackerIllusion_ = isAttackerIllusion_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.isAttackerHero_ = isAttackerHero_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        result.isTargetIllusion_ = isTargetIllusion_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000200;
        }
        result.isTargetHero_ = isTargetHero_;
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000400;
        }
        result.isVisibleRadiant_ = isVisibleRadiant_;
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000800;
        }
        result.isVisibleDire_ = isVisibleDire_;
        if (((from_bitField0_ & 0x00001000) == 0x00001000)) {
          to_bitField0_ |= 0x00001000;
        }
        result.value_ = value_;
        if (((from_bitField0_ & 0x00002000) == 0x00002000)) {
          to_bitField0_ |= 0x00002000;
        }
        result.health_ = health_;
        if (((from_bitField0_ & 0x00004000) == 0x00004000)) {
          to_bitField0_ |= 0x00004000;
        }
        result.timestamp_ = timestamp_;
        if (((from_bitField0_ & 0x00008000) == 0x00008000)) {
          to_bitField0_ |= 0x00008000;
        }
        result.stunDuration_ = stunDuration_;
        if (((from_bitField0_ & 0x00010000) == 0x00010000)) {
          to_bitField0_ |= 0x00010000;
        }
        result.slowDuration_ = slowDuration_;
        if (((from_bitField0_ & 0x00020000) == 0x00020000)) {
          to_bitField0_ |= 0x00020000;
        }
        result.isAbilityToggleOn_ = isAbilityToggleOn_;
        if (((from_bitField0_ & 0x00040000) == 0x00040000)) {
          to_bitField0_ |= 0x00040000;
        }
        result.isAbilityToggleOff_ = isAbilityToggleOff_;
        if (((from_bitField0_ & 0x00080000) == 0x00080000)) {
          to_bitField0_ |= 0x00080000;
        }
        result.abilityLevel_ = abilityLevel_;
        if (((from_bitField0_ & 0x00100000) == 0x00100000)) {
          to_bitField0_ |= 0x00100000;
        }
        result.locationX_ = locationX_;
        if (((from_bitField0_ & 0x00200000) == 0x00200000)) {
          to_bitField0_ |= 0x00200000;
        }
        result.locationY_ = locationY_;
        if (((from_bitField0_ & 0x00400000) == 0x00400000)) {
          to_bitField0_ |= 0x00400000;
        }
        result.goldReason_ = goldReason_;
        if (((from_bitField0_ & 0x00800000) == 0x00800000)) {
          to_bitField0_ |= 0x00800000;
        }
        result.timestampRaw_ = timestampRaw_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.dota2.proto.DotaUsermessages.CMsgDOTACombatLogEntry) {
          return mergeFrom((com.dota2.proto.DotaUsermessages.CMsgDOTACombatLogEntry)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.dota2.proto.DotaUsermessages.CMsgDOTACombatLogEntry other) {
        if (other == com.dota2.proto.DotaUsermessages.CMsgDOTACombatLogEntry.getDefaultInstance()) return this;
        if (other.hasType()) {
          setType(other.getType());
        }
        if (other.hasTargetName()) {
          setTargetName(other.getTargetName());
        }
        if (other.hasTargetSourceName()) {
          setTargetSourceName(other.getTargetSourceName());
        }
        if (other.hasAttackerName()) {
          setAttackerName(other.getAttackerName());
        }
        if (other.hasDamageSourceName()) {
          setDamageSourceName(other.getDamageSourceName());
        }
        if (other.hasInflictorName()) {
          setInflictorName(other.getInflictorName());
        }
        if (other.hasIsAttackerIllusion()) {
          setIsAttackerIllusion(other.getIsAttackerIllusion());
        }
        if (other.hasIsAttackerHero()) {
          setIsAttackerHero(other.getIsAttackerHero());
        }
        if (other.hasIsTargetIllusion()) {
          setIsTargetIllusion(other.getIsTargetIllusion());
        }
        if (other.hasIsTargetHero()) {
          setIsTargetHero(other.getIsTargetHero());
        }
        if (other.hasIsVisibleRadiant()) {
          setIsVisibleRadiant(other.getIsVisibleRadiant());
        }
        if (other.hasIsVisibleDire()) {
          setIsVisibleDire(other.getIsVisibleDire());
        }
        if (other.hasValue()) {
          setValue(other.getValue());
        }
        if (other.hasHealth()) {
          setHealth(other.getHealth());
        }
        if (other.hasTimestamp()) {
          setTimestamp(other.getTimestamp());
        }
        if (other.hasStunDuration()) {
          setStunDuration(other.getStunDuration());
        }
        if (other.hasSlowDuration()) {
          setSlowDuration(other.getSlowDuration());
        }
        if (other.hasIsAbilityToggleOn()) {
          setIsAbilityToggleOn(other.getIsAbilityToggleOn());
        }
        if (other.hasIsAbilityToggleOff()) {
          setIsAbilityToggleOff(other.getIsAbilityToggleOff());
        }
        if (other.hasAbilityLevel()) {
          setAbilityLevel(other.getAbilityLevel());
        }
        if (other.hasLocationX()) {
          setLocationX(other.getLocationX());
        }
        if (other.hasLocationY()) {
          setLocationY(other.getLocationY());
        }
        if (other.hasGoldReason()) {
          setGoldReason(other.getGoldReason());
        }
        if (other.hasTimestampRaw()) {
          setTimestampRaw(other.getTimestampRaw());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.dota2.proto.DotaUsermessages.CMsgDOTACombatLogEntry parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.dota2.proto.DotaUsermessages.CMsgDOTACombatLogEntry) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
      private com.dota2.proto.DotaUsermessages.DOTA_COMBATLOG_TYPES type_ = com.dota2.proto.DotaUsermessages.DOTA_COMBATLOG_TYPES.DOTA_COMBATLOG_DAMAGE;
      /**
       * optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
       */
      public com.dota2.proto.DotaUsermessages.DOTA_COMBATLOG_TYPES getType() {
        return type_;
      }
      /**
       * optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
       */
      public Builder setType(com.dota2.proto.DotaUsermessages.DOTA_COMBATLOG_TYPES value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = com.dota2.proto.DotaUsermessages.DOTA_COMBATLOG_TYPES.DOTA_COMBATLOG_DAMAGE;
        onChanged();
        return this;
      }

      // optional uint32 target_name = 2;
      private int targetName_ ;
      /**
       * optional uint32 target_name = 2;
       */
      public boolean hasTargetName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 target_name = 2;
       */
      public int getTargetName() {
        return targetName_;
      }
      /**
       * optional uint32 target_name = 2;
       */
      public Builder setTargetName(int value) {
        bitField0_ |= 0x00000002;
        targetName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 target_name = 2;
       */
      public Builder clearTargetName() {
        bitField0_ = (bitField0_ & ~0x00000002);
        targetName_ = 0;
        onChanged();
        return this;
      }

      // optional uint32 target_source_name = 3;
      private int targetSourceName_ ;
      /**
       * optional uint32 target_source_name = 3;
       */
      public boolean hasTargetSourceName() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 target_source_name = 3;
       */
      public int getTargetSourceName() {
        return targetSourceName_;
      }
      /**
       * optional uint32 target_source_name = 3;
       */
      public Builder setTargetSourceName(int value) {
        bitField0_ |= 0x00000004;
        targetSourceName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 target_source_name = 3;
       */
      public Builder clearTargetSourceName() {
        bitField0_ = (bitField0_ & ~0x00000004);
        targetSourceName_ = 0;
        onChanged();
        return this;
      }

      // optional uint32 attacker_name = 4;
      private int attackerName_ ;
      /**
       * optional uint32 attacker_name = 4;
       */
      public boolean hasAttackerName() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 attacker_name = 4;
       */
      public int getAttackerName() {
        return attackerName_;
      }
      /**
       * optional uint32 attacker_name = 4;
       */
      public Builder setAttackerName(int value) {
        bitField0_ |= 0x00000008;
        attackerName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 attacker_name = 4;
       */
      public Builder clearAttackerName() {
        bitField0_ = (bitField0_ & ~0x00000008);
        attackerName_ = 0;
        onChanged();
        return this;
      }

      // optional uint32 damage_source_name = 5;
      private int damageSourceName_ ;
      /**
       * optional uint32 damage_source_name = 5;
       */
      public boolean hasDamageSourceName() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional uint32 damage_source_name = 5;
       */
      public int getDamageSourceName() {
        return damageSourceName_;
      }
      /**
       * optional uint32 damage_source_name = 5;
       */
      public Builder setDamageSourceName(int value) {
        bitField0_ |= 0x00000010;
        damageSourceName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 damage_source_name = 5;
       */
      public Builder clearDamageSourceName() {
        bitField0_ = (bitField0_ & ~0x00000010);
        damageSourceName_ = 0;
        onChanged();
        return this;
      }

      // optional uint32 inflictor_name = 6;
      private int inflictorName_ ;
      /**
       * optional uint32 inflictor_name = 6;
       */
      public boolean hasInflictorName() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional uint32 inflictor_name = 6;
       */
      public int getInflictorName() {
        return inflictorName_;
      }
      /**
       * optional uint32 inflictor_name = 6;
       */
      public Builder setInflictorName(int value) {
        bitField0_ |= 0x00000020;
        inflictorName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 inflictor_name = 6;
       */
      public Builder clearInflictorName() {
        bitField0_ = (bitField0_ & ~0x00000020);
        inflictorName_ = 0;
        onChanged();
        return this;
      }

      // optional bool is_attacker_illusion = 7;
      private boolean isAttackerIllusion_ ;
      /**
       * optional bool is_attacker_illusion = 7;
       */
      public boolean hasIsAttackerIllusion() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional bool is_attacker_illusion = 7;
       */
      public boolean getIsAttackerIllusion() {
        return isAttackerIllusion_;
      }
      /**
       * optional bool is_attacker_illusion = 7;
       */
      public Builder setIsAttackerIllusion(boolean value) {
        bitField0_ |= 0x00000040;
        isAttackerIllusion_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool is_attacker_illusion = 7;
       */
      public Builder clearIsAttackerIllusion() {
        bitField0_ = (bitField0_ & ~0x00000040);
        isAttackerIllusion_ = false;
        onChanged();
        return this;
      }

      // optional bool is_attacker_hero = 8;
      private boolean isAttackerHero_ ;
      /**
       * optional bool is_attacker_hero = 8;
       */
      public boolean hasIsAttackerHero() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional bool is_attacker_hero = 8;
       */
      public boolean getIsAttackerHero() {
        return isAttackerHero_;
      }
      /**
       * optional bool is_attacker_hero = 8;
       */
      public Builder setIsAttackerHero(boolean value) {
        bitField0_ |= 0x00000080;
        isAttackerHero_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool is_attacker_hero = 8;
       */
      public Builder clearIsAttackerHero() {
        bitField0_ = (bitField0_ & ~0x00000080);
        isAttackerHero_ = false;
        onChanged();
        return this;
      }

      // optional bool is_target_illusion = 9;
      private boolean isTargetIllusion_ ;
      /**
       * optional bool is_target_illusion = 9;
       */
      public boolean hasIsTargetIllusion() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * optional bool is_target_illusion = 9;
       */
      public boolean getIsTargetIllusion() {
        return isTargetIllusion_;
      }
      /**
       * optional bool is_target_illusion = 9;
       */
      public Builder setIsTargetIllusion(boolean value) {
        bitField0_ |= 0x00000100;
        isTargetIllusion_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool is_target_illusion = 9;
       */
      public Builder clearIsTargetIllusion() {
        bitField0_ = (bitField0_ & ~0x00000100);
        isTargetIllusion_ = false;
        onChanged();
        return this;
      }

      // optional bool is_target_hero = 10;
      private boolean isTargetHero_ ;
      /**
       * optional bool is_target_hero = 10;
       */
      public boolean hasIsTargetHero() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       * optional bool is_target_hero = 10;
       */
      public boolean getIsTargetHero() {
        return isTargetHero_;
      }
      /**
       * optional bool is_target_hero = 10;
       */
      public Builder setIsTargetHero(boolean value) {
        bitField0_ |= 0x00000200;
        isTargetHero_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool is_target_hero = 10;
       */
      public Builder clearIsTargetHero() {
        bitField0_ = (bitField0_ & ~0x00000200);
        isTargetHero_ = false;
        onChanged();
        return this;
      }

      // optional bool is_visible_radiant = 11;
      private boolean isVisibleRadiant_ ;
      /**
       * optional bool is_visible_radiant = 11;
       */
      public boolean hasIsVisibleRadiant() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /**
       * optional bool is_visible_radiant = 11;
       */
      public boolean getIsVisibleRadiant() {
        return isVisibleRadiant_;
      }
      /**
       * optional bool is_visible_radiant = 11;
       */
      public Builder setIsVisibleRadiant(boolean value) {
        bitField0_ |= 0x00000400;
        isVisibleRadiant_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool is_visible_radiant = 11;
       */
      public Builder clearIsVisibleRadiant() {
        bitField0_ = (bitField0_ & ~0x00000400);
        isVisibleRadiant_ = false;
        onChanged();
        return this;
      }

      // optional bool is_visible_dire = 12;
      private boolean isVisibleDire_ ;
      /**
       * optional bool is_visible_dire = 12;
       */
      public boolean hasIsVisibleDire() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      /**
       * optional bool is_visible_dire = 12;
       */
      public boolean getIsVisibleDire() {
        return isVisibleDire_;
      }
      /**
       * optional bool is_visible_dire = 12;
       */
      public Builder setIsVisibleDire(boolean value) {
        bitField0_ |= 0x00000800;
        isVisibleDire_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool is_visible_dire = 12;
       */
      public Builder clearIsVisibleDire() {
        bitField0_ = (bitField0_ & ~0x00000800);
        isVisibleDire_ = false;
        onChanged();
        return this;
      }

      // optional uint32 value = 13;
      private int value_ ;
      /**
       * optional uint32 value = 13;
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00001000) == 0x00001000);
      }
      /**
       * optional uint32 value = 13;
       */
      public int getValue() {
        return value_;
      }
      /**
       * optional uint32 value = 13;
       */
      public Builder setValue(int value) {
        bitField0_ |= 0x00001000;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 value = 13;
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00001000);
        value_ = 0;
        onChanged();
        return this;
      }

      // optional int32 health = 14;
      private int health_ ;
      /**
       * optional int32 health = 14;
       */
      public boolean hasHealth() {
        return ((bitField0_ & 0x00002000) == 0x00002000);
      }
      /**
       * optional int32 health = 14;
       */
      public int getHealth() {
        return health_;
      }
      /**
       * optional int32 health = 14;
       */
      public Builder setHealth(int value) {
        bitField0_ |= 0x00002000;
        health_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 health = 14;
       */
      public Builder clearHealth() {
        bitField0_ = (bitField0_ & ~0x00002000);
        health_ = 0;
        onChanged();
        return this;
      }

      // optional float timestamp = 15;
      private float timestamp_ ;
      /**
       * optional float timestamp = 15;
       */
      public boolean hasTimestamp() {
        return ((bitField0_ & 0x00004000) == 0x00004000);
      }
      /**
       * optional float timestamp = 15;
       */
      public float getTimestamp() {
        return timestamp_;
      }
      /**
       * optional float timestamp = 15;
       */
      public Builder setTimestamp(float value) {
        bitField0_ |= 0x00004000;
        timestamp_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float timestamp = 15;
       */
      public Builder clearTimestamp() {
        bitField0_ = (bitField0_ & ~0x00004000);
        timestamp_ = 0F;
        onChanged();
        return this;
      }

      // optional float stun_duration = 16;
      private float stunDuration_ ;
      /**
       * optional float stun_duration = 16;
       */
      public boolean hasStunDuration() {
        return ((bitField0_ & 0x00008000) == 0x00008000);
      }
      /**
       * optional float stun_duration = 16;
       */
      public float getStunDuration() {
        return stunDuration_;
      }
      /**
       * optional float stun_duration = 16;
       */
      public Builder setStunDuration(float value) {
        bitField0_ |= 0x00008000;
        stunDuration_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float stun_duration = 16;
       */
      public Builder clearStunDuration() {
        bitField0_ = (bitField0_ & ~0x00008000);
        stunDuration_ = 0F;
        onChanged();
        return this;
      }

      // optional float slow_duration = 17;
      private float slowDuration_ ;
      /**
       * optional float slow_duration = 17;
       */
      public boolean hasSlowDuration() {
        return ((bitField0_ & 0x00010000) == 0x00010000);
      }
      /**
       * optional float slow_duration = 17;
       */
      public float getSlowDuration() {
        return slowDuration_;
      }
      /**
       * optional float slow_duration = 17;
       */
      public Builder setSlowDuration(float value) {
        bitField0_ |= 0x00010000;
        slowDuration_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float slow_duration = 17;
       */
      public Builder clearSlowDuration() {
        bitField0_ = (bitField0_ & ~0x00010000);
        slowDuration_ = 0F;
        onChanged();
        return this;
      }

      // optional bool is_ability_toggle_on = 18;
      private boolean isAbilityToggleOn_ ;
      /**
       * optional bool is_ability_toggle_on = 18;
       */
      public boolean hasIsAbilityToggleOn() {
        return ((bitField0_ & 0x00020000) == 0x00020000);
      }
      /**
       * optional bool is_ability_toggle_on = 18;
       */
      public boolean getIsAbilityToggleOn() {
        return isAbilityToggleOn_;
      }
      /**
       * optional bool is_ability_toggle_on = 18;
       */
      public Builder setIsAbilityToggleOn(boolean value) {
        bitField0_ |= 0x00020000;
        isAbilityToggleOn_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool is_ability_toggle_on = 18;
       */
      public Builder clearIsAbilityToggleOn() {
        bitField0_ = (bitField0_ & ~0x00020000);
        isAbilityToggleOn_ = false;
        onChanged();
        return this;
      }

      // optional bool is_ability_toggle_off = 19;
      private boolean isAbilityToggleOff_ ;
      /**
       * optional bool is_ability_toggle_off = 19;
       */
      public boolean hasIsAbilityToggleOff() {
        return ((bitField0_ & 0x00040000) == 0x00040000);
      }
      /**
       * optional bool is_ability_toggle_off = 19;
       */
      public boolean getIsAbilityToggleOff() {
        return isAbilityToggleOff_;
      }
      /**
       * optional bool is_ability_toggle_off = 19;
       */
      public Builder setIsAbilityToggleOff(boolean value) {
        bitField0_ |= 0x00040000;
        isAbilityToggleOff_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool is_ability_toggle_off = 19;
       */
      public Builder clearIsAbilityToggleOff() {
        bitField0_ = (bitField0_ & ~0x00040000);
        isAbilityToggleOff_ = false;
        onChanged();
        return this;
      }

      // optional uint32 ability_level = 20;
      private int abilityLevel_ ;
      /**
       * optional uint32 ability_level = 20;
       */
      public boolean hasAbilityLevel() {
        return ((bitField0_ & 0x00080000) == 0x00080000);
      }
      /**
       * optional uint32 ability_level = 20;
       */
      public int getAbilityLevel() {
        return abilityLevel_;
      }
      /**
       * optional uint32 ability_level = 20;
       */
      public Builder setAbilityLevel(int value) {
        bitField0_ |= 0x00080000;
        abilityLevel_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 ability_level = 20;
       */
      public Builder clearAbilityLevel() {
        bitField0_ = (bitField0_ & ~0x00080000);
        abilityLevel_ = 0;
        onChanged();
        return this;
      }

      // optional float location_x = 21;
      private float locationX_ ;
      /**
       * optional float location_x = 21;
       */
      public boolean hasLocationX() {
        return ((bitField0_ & 0x00100000) == 0x00100000);
      }
      /**
       * optional float location_x = 21;
       */
      public float getLocationX() {
        return locationX_;
      }
      /**
       * optional float location_x = 21;
       */
      public Builder setLocationX(float value) {
        bitField0_ |= 0x00100000;
        locationX_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float location_x = 21;
       */
      public Builder clearLocationX() {
        bitField0_ = (bitField0_ & ~0x00100000);
        locationX_ = 0F;
        onChanged();
        return this;
      }

      // optional float location_y = 22;
      private float locationY_ ;
      /**
       * optional float location_y = 22;
       */
      public boolean hasLocationY() {
        return ((bitField0_ & 0x00200000) == 0x00200000);
      }
      /**
       * optional float location_y = 22;
       */
      public float getLocationY() {
        return locationY_;
      }
      /**
       * optional float location_y = 22;
       */
      public Builder setLocationY(float value) {
        bitField0_ |= 0x00200000;
        locationY_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float location_y = 22;
       */
      public Builder clearLocationY() {
        bitField0_ = (bitField0_ & ~0x00200000);
        locationY_ = 0F;
        onChanged();
        return this;
      }

      // optional uint32 gold_reason = 23;
      private int goldReason_ ;
      /**
       * optional uint32 gold_reason = 23;
       */
      public boolean hasGoldReason() {
        return ((bitField0_ & 0x00400000) == 0x00400000);
      }
      /**
       * optional uint32 gold_reason = 23;
       */
      public int getGoldReason() {
        return goldReason_;
      }
      /**
       * optional uint32 gold_reason = 23;
       */
      public Builder setGoldReason(int value) {
        bitField0_ |= 0x00400000;
        goldReason_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 gold_reason = 23;
       */
      public Builder clearGoldReason() {
        bitField0_ = (bitField0_ & ~0x00400000);
        goldReason_ = 0;
        onChanged();
        return this;
      }

      // optional float timestamp_raw = 24;
      private float timestampRaw_ ;
      /**
       * optional float timestamp_raw = 24;
       */
      public boolean hasTimestampRaw() {
        return ((bitField0_ & 0x00800000) == 0x00800000);
      }
      /**
       * optional float timestamp_raw = 24;
       */
      public float getTimestampRaw() {
        return timestampRaw_;
      }
      /**
       * optional float timestamp_raw = 24;
       */
      public Builder setTimestampRaw(float value) {
        bitField0_ |= 0x00800000;
        timestampRaw_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float timestamp_raw = 24;
       */
      public Builder clearTimestampRaw() {
        bitField0_ = (bitField0_ & ~0x00800000);
        timestampRaw_ = 0F;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CMsgDOTACombatLogEntry)
    }

    static {
      defaultInstance = new CMsgDOTACombatLogEntry(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CMsgDOTACombatLogEntry)
  }

  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_AIDebugLine_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_AIDebugLine_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_Ping_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_Ping_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_SwapVerify_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_SwapVerify_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ChatEvent_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ChatEvent_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_CombatLogShowDeath_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_CombatLogShowDeath_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_BotChat_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_BotChat_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_CombatHeroPositions_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_CombatHeroPositions_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_MiniKillCamInfo_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_MiniKillCamInfo_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_GlobalLightColor_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_GlobalLightColor_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_GlobalLightDirection_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_GlobalLightDirection_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_LocationPing_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_LocationPing_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ItemAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ItemAlert_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_EnemyItemAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_EnemyItemAlert_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_WillPurchaseAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_WillPurchaseAlert_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_BuyBackStateAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_BuyBackStateAlert_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_QuickBuyAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_QuickBuyAlert_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_CourierKilledAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_CourierKilledAlert_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_MinimapEvent_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_MinimapEvent_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_TournamentDrop_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_TournamentDrop_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_MapLine_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_MapLine_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_MinimapDebugPoint_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_MinimapDebugPoint_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_CreateLinearProjectile_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_CreateLinearProjectile_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_DestroyLinearProjectile_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_DestroyLinearProjectile_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_DodgeTrackingProjectiles_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_DodgeTrackingProjectiles_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_SpectatorPlayerClick_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_SpectatorPlayerClick_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_NevermoreRequiem_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_NevermoreRequiem_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_InvalidCommand_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_InvalidCommand_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_HudError_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_HudError_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_SharedCooldown_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_SharedCooldown_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_SetNextAutobuyItem_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_SetNextAutobuyItem_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_HalloweenDrops_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_HalloweenDrops_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAResponseQuerySerialized_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAResponseQuerySerialized_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAResponseQuerySerialized_Fact_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAResponseQuerySerialized_Fact_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTASpeechMatchOnClient_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTASpeechMatchOnClient_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_UnitEvent_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_UnitEvent_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_UnitEvent_Speech_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_UnitEvent_Speech_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_UnitEvent_SpeechMute_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_UnitEvent_SpeechMute_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_UnitEvent_AddGesture_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_UnitEvent_AddGesture_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_UnitEvent_RemoveGesture_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_UnitEvent_RemoveGesture_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_UnitEvent_BloodImpact_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_UnitEvent_BloodImpact_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_UnitEvent_FadeGesture_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_UnitEvent_FadeGesture_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ItemPurchased_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ItemPurchased_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ItemFound_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ItemFound_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ParticleManager_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ParticleManager_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ParticleManager_ReleaseParticleIndex_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ParticleManager_ReleaseParticleIndex_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ParticleManager_CreateParticle_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ParticleManager_CreateParticle_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ParticleManager_DestroyParticle_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ParticleManager_DestroyParticle_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ParticleManager_DestroyParticleInvolving_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ParticleManager_DestroyParticleInvolving_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ParticleManager_UpdateParticle_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ParticleManager_UpdateParticle_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFwd_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFwd_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOrient_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOrient_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFallback_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFallback_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOffset_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOffset_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleEnt_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleEnt_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleSetFrozen_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleSetFrozen_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleShouldDraw_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleShouldDraw_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_OverheadEvent_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_OverheadEvent_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_TutorialTipInfo_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_TutorialTipInfo_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_TutorialFinish_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_TutorialFinish_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_TutorialMinimapPosition_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_TutorialMinimapPosition_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_SendGenericToolTip_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_SendGenericToolTip_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_WorldLine_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_WorldLine_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ChatWheel_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ChatWheel_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ReceivedXmasGift_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ReceivedXmasGift_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ShowSurvey_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ShowSurvey_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_UpdateSharedContent_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_UpdateSharedContent_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_TutorialRequestExp_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_TutorialRequestExp_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_TutorialFade_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_TutorialFade_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_TutorialPingMinimap_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_TutorialPingMinimap_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTA_UM_GamerulesStateChanged_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTA_UM_GamerulesStateChanged_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_AddQuestLogEntry_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_AddQuestLogEntry_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_SendStatPopup_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_SendStatPopup_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_SendRoshanPopup_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_SendRoshanPopup_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_SendFinalGold_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_SendFinalGold_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_CustomMsg_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_CustomMsg_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_CoachHUDPing_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_CoachHUDPing_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ClientLoadGridNav_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ClientLoadGridNav_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_AbilityPing_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_AbilityPing_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ShowGenericPopup_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ShowGenericPopup_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_VoteStart_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_VoteStart_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_VoteUpdate_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_VoteUpdate_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_VoteEnd_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_VoteEnd_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_BoosterStatePlayer_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_BoosterStatePlayer_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_BoosterState_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_BoosterState_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_PlayerMMR_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_PlayerMMR_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_AbilitySteal_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_AbilitySteal_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_StatsHeroLookup_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_StatsHeroLookup_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_StatsHeroMinuteDetails_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_StatsHeroMinuteDetails_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_StatsTeamMinuteDetails_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_StatsTeamMinuteDetails_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_StatsPlayerKillShare_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_StatsPlayerKillShare_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_StatsKillDetails_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_StatsKillDetails_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_StatsMatchDetails_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_StatsMatchDetails_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_MiniTaunt_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_MiniTaunt_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CMsgHeroAbilityStat_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CMsgHeroAbilityStat_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CMsgCombatAnalyzerPlayerStat_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CMsgCombatAnalyzerPlayerStat_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CMsgCombatAnalyzerStats_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CMsgCombatAnalyzerStats_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_CombatLogData_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_CombatLogData_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_CMsgDOTACombatLogEntry_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CMsgDOTACombatLogEntry_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\027dota_usermessages.proto\032 google/protob" +
      "uf/descriptor.proto\032\026networkbasetypes.pr" +
      "oto\032\021ai_activity.proto\032\031dota_commonmessa" +
      "ges.proto\"+\n\030CDOTAUserMsg_AIDebugLine\022\017\n" +
      "\007message\030\001 \001(\t\"$\n\021CDOTAUserMsg_Ping\022\017\n\007m" +
      "essage\030\001 \001(\t\",\n\027CDOTAUserMsg_SwapVerify\022" +
      "\021\n\tplayer_id\030\001 \001(\r\"\357\001\n\026CDOTAUserMsg_Chat" +
      "Event\0226\n\004type\030\001 \001(\0162\022.DOTA_CHAT_MESSAGE:" +
      "\024CHAT_MESSAGE_INVALID\022\r\n\005value\030\002 \001(\r\022\026\n\n" +
      "playerid_1\030\003 \001(\021:\002-1\022\026\n\nplayerid_2\030\004 \001(\021",
      ":\002-1\022\026\n\nplayerid_3\030\005 \001(\021:\002-1\022\026\n\nplayerid" +
      "_4\030\006 \001(\021:\002-1\022\026\n\nplayerid_5\030\007 \001(\021:\002-1\022\026\n\n" +
      "playerid_6\030\010 \001(\021:\002-1\"!\n\037CDOTAUserMsg_Com" +
      "batLogShowDeath\"Z\n\024CDOTAUserMsg_BotChat\022" +
      "\021\n\tplayer_id\030\001 \001(\r\022\016\n\006format\030\002 \001(\t\022\017\n\007me" +
      "ssage\030\003 \001(\t\022\016\n\006target\030\004 \001(\t\"q\n CDOTAUser" +
      "Msg_CombatHeroPositions\022\r\n\005index\030\001 \001(\r\022\014" +
      "\n\004time\030\002 \001(\005\022 \n\tworld_pos\030\003 \001(\0132\r.CMsgVe" +
      "ctor2D\022\016\n\006health\030\004 \001(\005\"\375\001\n\034CDOTAUserMsg_" +
      "MiniKillCamInfo\0229\n\tattackers\030\001 \003(\0132&.CDO",
      "TAUserMsg_MiniKillCamInfo.Attacker\032\241\001\n\010A" +
      "ttacker\022\020\n\010attacker\030\001 \001(\r\022\024\n\014total_damag" +
      "e\030\002 \001(\005\022A\n\tabilities\030\003 \003(\0132..CDOTAUserMs" +
      "g_MiniKillCamInfo.Attacker.Ability\032*\n\007Ab" +
      "ility\022\017\n\007ability\030\001 \001(\r\022\016\n\006damage\030\002 \001(\005\"@" +
      "\n\035CDOTAUserMsg_GlobalLightColor\022\r\n\005color" +
      "\030\001 \001(\r\022\020\n\010duration\030\002 \001(\002\"U\n!CDOTAUserMsg" +
      "_GlobalLightDirection\022\036\n\tdirection\030\001 \001(\013" +
      "2\013.CMsgVector\022\020\n\010duration\030\002 \001(\002\"]\n\031CDOTA" +
      "UserMsg_LocationPing\022\021\n\tplayer_id\030\001 \001(\r\022",
      "-\n\rlocation_ping\030\002 \001(\0132\026.CDOTAMsg_Locati" +
      "onPing\"T\n\026CDOTAUserMsg_ItemAlert\022\021\n\tplay" +
      "er_id\030\001 \001(\r\022\'\n\nitem_alert\030\002 \001(\0132\023.CDOTAM" +
      "sg_ItemAlert\"d\n\033CDOTAUserMsg_EnemyItemAl" +
      "ert\022\021\n\tplayer_id\030\001 \001(\r\0222\n\020enemy_item_ale" +
      "rt\030\002 \001(\0132\030.CDOTAMsg_EnemyItemAlert\"[\n\036CD" +
      "OTAUserMsg_WillPurchaseAlert\022\016\n\006itemid\030\001" +
      " \001(\005\022\021\n\tplayer_id\030\002 \001(\005\022\026\n\016gold_remainin" +
      "g\030\003 \001(\r\"3\n\036CDOTAUserMsg_BuyBackStateAler" +
      "t\022\021\n\tplayer_id\030\001 \001(\005\"V\n\032CDOTAUserMsg_Qui",
      "ckBuyAlert\022\021\n\tplayer_id\030\001 \001(\005\022\016\n\006itemid\030" +
      "\002 \001(\005\022\025\n\rgold_required\030\003 \001(\005\"m\n\037CDOTAUse" +
      "rMsg_CourierKilledAlert\022\014\n\004team\030\001 \001(\r\022\022\n" +
      "\ngold_value\030\002 \001(\r\022\025\n\rentity_handle\030\003 \001(\005" +
      "\022\021\n\ttimestamp\030\004 \001(\005\"n\n\031CDOTAUserMsg_Mini" +
      "mapEvent\022\022\n\nevent_type\030\001 \001(\005\022\025\n\rentity_h" +
      "andle\030\002 \001(\005\022\t\n\001x\030\003 \001(\005\022\t\n\001y\030\004 \001(\005\022\020\n\010dur" +
      "ation\030\005 \001(\005\"\\\n\033CDOTAUserMsg_TournamentDr" +
      "op\022\036\n\026deprecated_winner_name\030\001 \001(\t\022\035\n\025de" +
      "precated_event_type\030\002 \001(\005\"M\n\024CDOTAUserMs",
      "g_MapLine\022\021\n\tplayer_id\030\001 \001(\005\022\"\n\007mapline\030" +
      "\002 \001(\0132\021.CDOTAMsg_MapLine\"n\n\036CDOTAUserMsg" +
      "_MinimapDebugPoint\022\035\n\010location\030\001 \001(\0132\013.C" +
      "MsgVector\022\r\n\005color\030\002 \001(\r\022\014\n\004size\030\003 \001(\005\022\020" +
      "\n\010duration\030\004 \001(\002\"\346\001\n#CDOTAUserMsg_Create" +
      "LinearProjectile\022\033\n\006origin\030\001 \001(\0132\013.CMsgV" +
      "ector\022\037\n\010velocity\030\002 \001(\0132\r.CMsgVector2D\022\017" +
      "\n\007latency\030\003 \001(\005\022\020\n\010entindex\030\004 \001(\005\022\026\n\016par" +
      "ticle_index\030\005 \001(\005\022\016\n\006handle\030\006 \001(\005\022#\n\014acc" +
      "eleration\030\007 \001(\0132\r.CMsgVector2D\022\021\n\tmax_sp",
      "eed\030\010 \001(\002\"6\n$CDOTAUserMsg_DestroyLinearP" +
      "rojectile\022\016\n\006handle\030\001 \001(\005\"O\n%CDOTAUserMs" +
      "g_DodgeTrackingProjectiles\022\020\n\010entindex\030\001" +
      " \002(\005\022\024\n\014attacks_only\030\002 \001(\010\"_\n!CDOTAUserM" +
      "sg_SpectatorPlayerClick\022\020\n\010entindex\030\001 \002(" +
      "\005\022\022\n\norder_type\030\002 \001(\005\022\024\n\014target_index\030\003 " +
      "\001(\005\"b\n\035CDOTAUserMsg_NevermoreRequiem\022\025\n\r" +
      "entity_handle\030\001 \001(\005\022\r\n\005lines\030\002 \001(\005\022\033\n\006or" +
      "igin\030\003 \001(\0132\013.CMsgVector\".\n\033CDOTAUserMsg_" +
      "InvalidCommand\022\017\n\007message\030\001 \001(\t\")\n\025CDOTA",
      "UserMsg_HudError\022\020\n\010order_id\030\001 \001(\005\"c\n\033CD" +
      "OTAUserMsg_SharedCooldown\022\020\n\010entindex\030\001 " +
      "\001(\005\022\014\n\004name\030\002 \001(\t\022\020\n\010cooldown\030\003 \001(\002\022\022\n\nn" +
      "ame_index\030\004 \001(\005\"/\n\037CDOTAUserMsg_SetNextA" +
      "utobuyItem\022\014\n\004name\030\001 \001(\t\"X\n\033CDOTAUserMsg" +
      "_HalloweenDrops\022\021\n\titem_defs\030\001 \003(\r\022\022\n\npl" +
      "ayer_ids\030\002 \003(\r\022\022\n\nprize_list\030\003 \001(\r\"\376\001\n\034C" +
      "DOTAResponseQuerySerialized\0221\n\005facts\030\001 \003" +
      "(\0132\".CDOTAResponseQuerySerialized.Fact\032\252" +
      "\001\n\004Fact\022\013\n\003key\030\001 \002(\005\022F\n\007valtype\030\002 \002(\0162,.",
      "CDOTAResponseQuerySerialized.Fact.ValueT" +
      "ype:\007NUMERIC\022\023\n\013val_numeric\030\003 \001(\002\022\022\n\nval" +
      "_string\030\004 \001(\t\"$\n\tValueType\022\013\n\007NUMERIC\020\001\022" +
      "\n\n\006STRING\020\002\"\220\001\n\030CDOTASpeechMatchOnClient" +
      "\022\017\n\007concept\030\001 \001(\005\022\026\n\016recipient_type\030\002 \001(" +
      "\005\0224\n\rresponsequery\030\003 \001(\0132\035.CDOTAResponse" +
      "QuerySerialized\022\025\n\nrandomseed\030\004 \001(\017:\0010\"\260" +
      "\007\n\026CDOTAUserMsg_UnitEvent\0228\n\010msg_type\030\001 " +
      "\002(\0162\024.EDotaEntityMessages:\020DOTA_UNIT_SPE" +
      "ECH\022\024\n\014entity_index\030\002 \002(\005\022.\n\006speech\030\003 \001(",
      "\0132\036.CDOTAUserMsg_UnitEvent.Speech\0227\n\013spe" +
      "ech_mute\030\004 \001(\0132\".CDOTAUserMsg_UnitEvent." +
      "SpeechMute\0227\n\013add_gesture\030\005 \001(\0132\".CDOTAU" +
      "serMsg_UnitEvent.AddGesture\022=\n\016remove_ge" +
      "sture\030\006 \001(\0132%.CDOTAUserMsg_UnitEvent.Rem" +
      "oveGesture\0229\n\014blood_impact\030\007 \001(\0132#.CDOTA" +
      "UserMsg_UnitEvent.BloodImpact\0229\n\014fade_ge" +
      "sture\030\010 \001(\0132#.CDOTAUserMsg_UnitEvent.Fad" +
      "eGesture\0229\n\026speech_match_on_client\030\t \001(\013" +
      "2\031.CDOTASpeechMatchOnClient\032k\n\006Speech\022\017\n",
      "\007concept\030\001 \001(\005\022\020\n\010response\030\002 \001(\t\022\026\n\016reci" +
      "pient_type\030\003 \001(\005\022\r\n\005level\030\004 \001(\005\022\027\n\010mutea" +
      "ble\030\005 \001(\010:\005false\032 \n\nSpeechMute\022\022\n\005delay\030" +
      "\001 \001(\002:\0030.5\032o\n\nAddGesture\022(\n\010activity\030\001 \001" +
      "(\0162\t.Activity:\013ACT_INVALID\022\014\n\004slot\030\002 \001(\005" +
      "\022\022\n\007fade_in\030\003 \001(\002:\0010\022\025\n\010fade_out\030\004 \001(\002:\003" +
      "0.1\0329\n\rRemoveGesture\022(\n\010activity\030\001 \001(\0162\t" +
      ".Activity:\013ACT_INVALID\032@\n\013BloodImpact\022\r\n" +
      "\005scale\030\001 \001(\005\022\020\n\010x_normal\030\002 \001(\005\022\020\n\010y_norm" +
      "al\030\003 \001(\005\0327\n\013FadeGesture\022(\n\010activity\030\001 \001(",
      "\0162\t.Activity:\013ACT_INVALID\"0\n\032CDOTAUserMs" +
      "g_ItemPurchased\022\022\n\nitem_index\030\001 \001(\005\"j\n\026C" +
      "DOTAUserMsg_ItemFound\022\016\n\006player\030\001 \001(\005\022\017\n" +
      "\007quality\030\002 \001(\005\022\016\n\006rarity\030\003 \001(\005\022\016\n\006method" +
      "\030\004 \001(\005\022\017\n\007itemdef\030\005 \001(\005\"\215\020\n\034CDOTAUserMsg" +
      "_ParticleManager\022H\n\004type\030\001 \002(\0162\026.DOTA_PA" +
      "RTICLE_MESSAGE:\"DOTA_PARTICLE_MANAGER_EV" +
      "ENT_CREATE\022\r\n\005index\030\002 \002(\r\022R\n\026release_par" +
      "ticle_index\030\003 \001(\01322.CDOTAUserMsg_Particl" +
      "eManager.ReleaseParticleIndex\022E\n\017create_",
      "particle\030\004 \001(\0132,.CDOTAUserMsg_ParticleMa" +
      "nager.CreateParticle\022G\n\020destroy_particle" +
      "\030\005 \001(\0132-.CDOTAUserMsg_ParticleManager.De" +
      "stroyParticle\022Z\n\032destroy_particle_involv" +
      "ing\030\006 \001(\01326.CDOTAUserMsg_ParticleManager" +
      ".DestroyParticleInvolving\022E\n\017update_part" +
      "icle\030\007 \001(\0132,.CDOTAUserMsg_ParticleManage" +
      "r.UpdateParticle\022L\n\023update_particle_fwd\030" +
      "\010 \001(\0132/.CDOTAUserMsg_ParticleManager.Upd" +
      "ateParticleFwd\022R\n\026update_particle_orient",
      "\030\t \001(\01322.CDOTAUserMsg_ParticleManager.Up" +
      "dateParticleOrient\022V\n\030update_particle_fa" +
      "llback\030\n \001(\01324.CDOTAUserMsg_ParticleMana" +
      "ger.UpdateParticleFallback\022R\n\026update_par" +
      "ticle_offset\030\013 \001(\01322.CDOTAUserMsg_Partic" +
      "leManager.UpdateParticleOffset\022L\n\023update" +
      "_particle_ent\030\014 \001(\0132/.CDOTAUserMsg_Parti" +
      "cleManager.UpdateParticleEnt\022[\n\033update_p" +
      "article_should_draw\030\016 \001(\01326.CDOTAUserMsg" +
      "_ParticleManager.UpdateParticleShouldDra",
      "w\022Y\n\032update_particle_set_frozen\030\017 \001(\01325." +
      "CDOTAUserMsg_ParticleManager.UpdateParti" +
      "cleSetFrozen\032\026\n\024ReleaseParticleIndex\032Y\n\016" +
      "CreateParticle\022\033\n\023particle_name_index\030\001 " +
      "\001(\005\022\023\n\013attach_type\030\002 \001(\005\022\025\n\rentity_handl" +
      "e\030\003 \001(\005\032.\n\017DestroyParticle\022\033\n\023destroy_im" +
      "mediately\030\001 \001(\010\032N\n\030DestroyParticleInvolv" +
      "ing\022\033\n\023destroy_immediately\030\001 \001(\010\022\025\n\renti" +
      "ty_handle\030\003 \001(\005\032F\n\016UpdateParticle\022\025\n\rcon" +
      "trol_point\030\001 \001(\005\022\035\n\010position\030\002 \001(\0132\013.CMs",
      "gVector\032H\n\021UpdateParticleFwd\022\025\n\rcontrol_" +
      "point\030\001 \001(\005\022\034\n\007forward\030\002 \001(\0132\013.CMsgVecto" +
      "r\032\200\001\n\024UpdateParticleOrient\022\025\n\rcontrol_po" +
      "int\030\001 \001(\005\022\034\n\007forward\030\002 \001(\0132\013.CMsgVector\022" +
      "\032\n\005right\030\003 \001(\0132\013.CMsgVector\022\027\n\002up\030\004 \001(\0132" +
      "\013.CMsgVector\032N\n\026UpdateParticleFallback\022\025" +
      "\n\rcontrol_point\030\001 \001(\005\022\035\n\010position\030\002 \001(\0132" +
      "\013.CMsgVector\032Q\n\024UpdateParticleOffset\022\025\n\r" +
      "control_point\030\001 \001(\005\022\"\n\rorigin_offset\030\002 \001" +
      "(\0132\013.CMsgVector\032\255\001\n\021UpdateParticleEnt\022\025\n",
      "\rcontrol_point\030\001 \001(\005\022\025\n\rentity_handle\030\002 " +
      "\001(\005\022\023\n\013attach_type\030\003 \001(\005\022\022\n\nattachment\030\004" +
      " \001(\005\022&\n\021fallback_position\030\005 \001(\0132\013.CMsgVe" +
      "ctor\022\031\n\021include_wearables\030\006 \001(\010\032-\n\027Updat" +
      "eParticleSetFrozen\022\022\n\nset_frozen\030\001 \001(\010\032/" +
      "\n\030UpdateParticleShouldDraw\022\023\n\013should_dra" +
      "w\030\001 \001(\010\"\305\001\n\032CDOTAUserMsg_OverheadEvent\022?" +
      "\n\014message_type\030\001 \002(\0162\024.DOTA_OVERHEAD_ALE" +
      "RT:\023OVERHEAD_ALERT_GOLD\022\r\n\005value\030\002 \001(\005\022\036" +
      "\n\026target_player_entindex\030\003 \001(\005\022\027\n\017target",
      "_entindex\030\004 \001(\005\022\036\n\026source_player_entinde" +
      "x\030\005 \001(\005\">\n\034CDOTAUserMsg_TutorialTipInfo\022" +
      "\014\n\004name\030\001 \001(\t\022\020\n\010progress\030\002 \001(\005\"]\n\033CDOTA" +
      "UserMsg_TutorialFinish\022\017\n\007heading\030\001 \001(\t\022" +
      "\016\n\006emblem\030\002 \001(\t\022\014\n\004body\030\003 \001(\t\022\017\n\007success" +
      "\030\004 \001(\010\"&\n$CDOTAUserMsg_TutorialMinimapPo" +
      "sition\"_\n\037CDOTAUserMsg_SendGenericToolTi" +
      "p\022\r\n\005title\030\001 \001(\t\022\014\n\004text\030\002 \001(\t\022\020\n\010entind" +
      "ex\030\003 \001(\005\022\r\n\005close\030\004 \001(\010\"S\n\026CDOTAUserMsg_" +
      "WorldLine\022\021\n\tplayer_id\030\001 \001(\005\022&\n\tworldlin",
      "e\030\002 \001(\0132\023.CDOTAMsg_WorldLine\"\223\001\n\026CDOTAUs" +
      "erMsg_ChatWheel\022;\n\014chat_message\030\001 \001(\0162\026." +
      "EDOTAChatWheelMessage:\rk_EDOTA_CW_Ok\022\021\n\t" +
      "player_id\030\002 \001(\r\022\022\n\naccount_id\030\003 \001(\r\022\025\n\rp" +
      "aram_hero_id\030\004 \001(\r\"]\n\035CDOTAUserMsg_Recei" +
      "vedXmasGift\022\021\n\tplayer_id\030\001 \001(\005\022\021\n\titem_n" +
      "ame\030\002 \001(\t\022\026\n\016inventory_slot\030\003 \001(\005\"\244\001\n\027CD" +
      "OTAUserMsg_ShowSurvey\022\021\n\tsurvey_id\030\001 \001(\005" +
      "\022\020\n\010match_id\030\002 \001(\r\022\026\n\016response_style\030\003 \001" +
      "(\t\022\030\n\020teammate_hero_id\030\004 \001(\r\022\025\n\rteammate",
      "_name\030\005 \001(\t\022\033\n\023teammate_account_id\030\006 \001(\r" +
      "\"5\n CDOTAUserMsg_UpdateSharedContent\022\021\n\t" +
      "slot_type\030\001 \001(\005\"!\n\037CDOTAUserMsg_Tutorial" +
      "RequestExp\".\n\031CDOTAUserMsg_TutorialFade\022" +
      "\021\n\ttgt_alpha\030\001 \001(\005\"x\n CDOTAUserMsg_Tutor" +
      "ialPingMinimap\022\021\n\tplayer_id\030\001 \001(\r\022\r\n\005pos" +
      "_x\030\002 \001(\002\022\r\n\005pos_y\030\003 \001(\002\022\r\n\005pos_z\030\004 \001(\002\022\024" +
      "\n\014entity_index\030\005 \001(\005\"/\n\036CDOTA_UM_Gamerul" +
      "esStateChanged\022\r\n\005state\030\001 \001(\r\"E\n\035CDOTAUs" +
      "erMsg_AddQuestLogEntry\022\020\n\010npc_name\030\001 \001(\t",
      "\022\022\n\nnpc_dialog\030\002 \001(\t\"[\n\032CDOTAUserMsg_Sen" +
      "dStatPopup\022\021\n\tplayer_id\030\001 \001(\005\022*\n\tstatpop" +
      "up\030\002 \001(\0132\027.CDOTAMsg_SendStatPopup\"C\n\034CDO" +
      "TAUserMsg_SendRoshanPopup\022\021\n\treclaimed\030\001" +
      " \001(\010\022\020\n\010gametime\030\002 \001(\005\"L\n\032CDOTAUserMsg_S" +
      "endFinalGold\022\025\n\rreliable_gold\030\001 \003(\r\022\027\n\017u" +
      "nreliable_gold\030\002 \003(\r\"K\n\026CDOTAUserMsg_Cus" +
      "tomMsg\022\017\n\007message\030\001 \001(\t\022\021\n\tplayer_id\030\002 \001" +
      "(\005\022\r\n\005value\030\003 \001(\005\"X\n\031CDOTAUserMsg_CoachH" +
      "UDPing\022\021\n\tplayer_id\030\001 \001(\r\022(\n\010hud_ping\030\002 ",
      "\001(\0132\026.CDOTAMsg_CoachHUDPing\" \n\036CDOTAUser" +
      "Msg_ClientLoadGridNav\"\226\001\n\030CDOTAUserMsg_A" +
      "bilityPing\022\021\n\tplayer_id\030\001 \001(\r\022\022\n\nability" +
      "_id\030\002 \001(\r\0229\n\004type\030\003 \001(\0162\027.DOTA_ABILITY_P" +
      "ING_TYPE:\022ABILITY_PING_READY\022\030\n\020cooldown" +
      "_seconds\030\004 \001(\r\"\221\001\n\035CDOTAUserMsg_ShowGene" +
      "ricPopup\022\016\n\006header\030\001 \002(\t\022\014\n\004body\030\002 \002(\t\022\016" +
      "\n\006param1\030\003 \001(\t\022\016\n\006param2\030\004 \001(\t\022\023\n\013tint_s" +
      "creen\030\005 \001(\010\022\035\n\025show_no_other_dialogs\030\006 \001" +
      "(\010\"`\n\026CDOTAUserMsg_VoteStart\022\r\n\005title\030\001 ",
      "\001(\t\022\020\n\010duration\030\002 \001(\002\022\024\n\014choice_count\030\003 " +
      "\001(\005\022\017\n\007choices\030\004 \003(\t\"0\n\027CDOTAUserMsg_Vot" +
      "eUpdate\022\025\n\rchoice_counts\030\001 \003(\005\"/\n\024CDOTAU" +
      "serMsg_VoteEnd\022\027\n\017selected_choice\030\001 \001(\005\"" +
      "\214\001\n\037CDOTAUserMsg_BoosterStatePlayer\022\021\n\tp" +
      "layer_id\030\001 \001(\r\022\r\n\005bonus\030\002 \001(\002\022\023\n\013event_b" +
      "onus\030\003 \001(\002\022\025\n\rbonus_item_id\030\004 \001(\r\022\033\n\023eve" +
      "nt_bonus_item_id\030\005 \001(\r\"V\n\031CDOTAUserMsg_B" +
      "oosterState\0229\n\017boosted_players\030\001 \003(\0132 .C" +
      "DOTAUserMsg_BoosterStatePlayer\")\n\026CDOTAU",
      "serMsg_PlayerMMR\022\017\n\003mmr\030\001 \003(\021B\002\020\001\"Y\n\031CDO" +
      "TAUserMsg_AbilitySteal\022\021\n\tplayer_id\030\001 \001(" +
      "\r\022\022\n\nability_id\030\002 \001(\r\022\025\n\rability_level\030\003" +
      " \001(\r\"B\n\034CDOTAUserMsg_StatsHeroLookup\022\021\n\t" +
      "player_id\030\001 \001(\005\022\017\n\007hero_id\030\002 \001(\005\"\324\001\n#CDO" +
      "TAUserMsg_StatsHeroMinuteDetails\022\021\n\tlast" +
      "_hits\030\001 \001(\r\022\022\n\nhero_kills\030\002 \001(\r\022\023\n\013hero_" +
      "damage\030\003 \001(\r\022\024\n\014tower_damage\030\004 \001(\r\022\030\n\020av" +
      "erage_position\030\005 \001(\002\022\020\n\010total_xp\030\006 \001(\r\022\021" +
      "\n\tnet_worth\030\007 \001(\r\022\034\n\024harvested_creep_gol",
      "d\030\010 \001(\r\"\277\002\n#CDOTAUserMsg_StatsTeamMinute" +
      "Details\022:\n\014player_stats\030\001 \003(\0132$.CDOTAUse" +
      "rMsg_StatsHeroMinuteDetails\022\023\n\013tower_kil" +
      "ls\030\002 \001(\r\022\025\n\rbarrack_kills\030\003 \001(\r\022!\n\031avail" +
      "able_lane_creep_gold\030\004 \001(\r\022\032\n\022balance_ki" +
      "ll_value\030\005 \001(\r\022\033\n\023balance_tower_value\030\006 " +
      "\001(\r\022\036\n\026balance_barracks_value\030\007 \001(\r\022\032\n\022b" +
      "alance_gold_value\030\010 \001(\r\022\030\n\020balance_xp_va" +
      "lue\030\t \001(\r\"R\n!CDOTAUserMsg_StatsPlayerKil" +
      "lShare\022\021\n\tplayer_id\030\001 \001(\005\022\032\n\022kill_share_",
      "percent\030\002 \001(\002\"\261\001\n\035CDOTAUserMsg_StatsKill" +
      "Details\022\021\n\tvictim_id\030\001 \001(\r\0227\n\013kill_share" +
      "s\030\002 \003(\0132\".CDOTAUserMsg_StatsPlayerKillSh" +
      "are\022\026\n\016damage_to_kill\030\003 \001(\r\022\030\n\020effective" +
      "_health\030\004 \001(\r\022\022\n\ndeath_time\030\005 \001(\002\"\266\002\n\036CD" +
      "OTAUserMsg_StatsMatchDetails\0222\n\013hero_loo" +
      "kup\030\001 \003(\0132\035.CDOTAUserMsg_StatsHeroLookup" +
      "\022;\n\rradiant_stats\030\002 \003(\0132$.CDOTAUserMsg_S" +
      "tatsTeamMinuteDetails\0228\n\ndire_stats\030\003 \003(" +
      "\0132$.CDOTAUserMsg_StatsTeamMinuteDetails\022",
      "5\n\rradiant_kills\030\004 \003(\0132\036.CDOTAUserMsg_St" +
      "atsKillDetails\0222\n\ndire_kills\030\005 \003(\0132\036.CDO" +
      "TAUserMsg_StatsKillDetails\"4\n\026CDOTAUserM" +
      "sg_MiniTaunt\022\032\n\022taunting_player_id\030\001 \001(\r" +
      "\"v\n\023CMsgHeroAbilityStat\0227\n\tstat_type\030\001 \001" +
      "(\0162\016.EHeroStatType:\024k_EHeroStatType_None" +
      "\022\021\n\tint_value\030\002 \001(\005\022\023\n\013float_value\030\003 \001(\002" +
      "\"d\n\034CMsgCombatAnalyzerPlayerStat\022\022\n\nacco" +
      "unt_id\030\001 \001(\r\0220\n\022hero_ability_stats\030\002 \003(\013" +
      "2\024.CMsgHeroAbilityStat\"`\n\027CMsgCombatAnal",
      "yzerStats\022\020\n\010match_id\030\001 \001(\004\0223\n\014player_st" +
      "ats\030\002 \003(\0132\035.CMsgCombatAnalyzerPlayerStat" +
      "\"\375\001\n\032CDOTAUserMsg_CombatLogData\022:\n\004type\030" +
      "\001 \001(\0162\025.DOTA_COMBATLOG_TYPES:\025DOTA_COMBA" +
      "TLOG_DAMAGE\022\023\n\013target_name\030\002 \001(\r\022\025\n\ratta" +
      "cker_name\030\003 \001(\r\022\031\n\021attacker_illusion\030\004 \001" +
      "(\010\022\027\n\017target_illusion\030\005 \001(\010\022\026\n\016inflictor" +
      "_name\030\006 \001(\r\022\r\n\005value\030\007 \001(\005\022\016\n\006health\030\010 \001" +
      "(\005\022\014\n\004time\030\t \001(\002\"\371\004\n\026CMsgDOTACombatLogEn" +
      "try\022:\n\004type\030\001 \001(\0162\025.DOTA_COMBATLOG_TYPES",
      ":\025DOTA_COMBATLOG_DAMAGE\022\023\n\013target_name\030\002" +
      " \001(\r\022\032\n\022target_source_name\030\003 \001(\r\022\025\n\ratta" +
      "cker_name\030\004 \001(\r\022\032\n\022damage_source_name\030\005 " +
      "\001(\r\022\026\n\016inflictor_name\030\006 \001(\r\022\034\n\024is_attack" +
      "er_illusion\030\007 \001(\010\022\030\n\020is_attacker_hero\030\010 " +
      "\001(\010\022\032\n\022is_target_illusion\030\t \001(\010\022\026\n\016is_ta" +
      "rget_hero\030\n \001(\010\022\032\n\022is_visible_radiant\030\013 " +
      "\001(\010\022\027\n\017is_visible_dire\030\014 \001(\010\022\r\n\005value\030\r " +
      "\001(\r\022\016\n\006health\030\016 \001(\005\022\021\n\ttimestamp\030\017 \001(\002\022\025" +
      "\n\rstun_duration\030\020 \001(\002\022\025\n\rslow_duration\030\021",
      " \001(\002\022\034\n\024is_ability_toggle_on\030\022 \001(\010\022\035\n\025is" +
      "_ability_toggle_off\030\023 \001(\010\022\025\n\rability_lev" +
      "el\030\024 \001(\r\022\022\n\nlocation_x\030\025 \001(\002\022\022\n\nlocation" +
      "_y\030\026 \001(\002\022\023\n\013gold_reason\030\027 \001(\r\022\025\n\rtimesta" +
      "mp_raw\030\030 \001(\002*\313\017\n\021EDotaUserMessages\022\036\n\032DO" +
      "TA_UM_AddUnitToSelection\020@\022\027\n\023DOTA_UM_AI" +
      "DebugLine\020A\022\025\n\021DOTA_UM_ChatEvent\020B\022\037\n\033DO" +
      "TA_UM_CombatHeroPositions\020C\022\031\n\025DOTA_UM_C" +
      "ombatLogData\020D\022\036\n\032DOTA_UM_CombatLogShowD" +
      "eath\020F\022\"\n\036DOTA_UM_CreateLinearProjectile",
      "\020G\022#\n\037DOTA_UM_DestroyLinearProjectile\020H\022" +
      "$\n DOTA_UM_DodgeTrackingProjectiles\020I\022\034\n" +
      "\030DOTA_UM_GlobalLightColor\020J\022 \n\034DOTA_UM_G" +
      "lobalLightDirection\020K\022\032\n\026DOTA_UM_Invalid" +
      "Command\020L\022\030\n\024DOTA_UM_LocationPing\020M\022\023\n\017D" +
      "OTA_UM_MapLine\020N\022\033\n\027DOTA_UM_MiniKillCamI" +
      "nfo\020O\022\035\n\031DOTA_UM_MinimapDebugPoint\020P\022\030\n\024" +
      "DOTA_UM_MinimapEvent\020Q\022\034\n\030DOTA_UM_Neverm" +
      "oreRequiem\020R\022\031\n\025DOTA_UM_OverheadEvent\020S\022" +
      "\036\n\032DOTA_UM_SetNextAutobuyItem\020T\022\032\n\026DOTA_",
      "UM_SharedCooldown\020U\022 \n\034DOTA_UM_Spectator" +
      "PlayerClick\020V\022\033\n\027DOTA_UM_TutorialTipInfo" +
      "\020W\022\025\n\021DOTA_UM_UnitEvent\020X\022\033\n\027DOTA_UM_Par" +
      "ticleManager\020Y\022\023\n\017DOTA_UM_BotChat\020Z\022\024\n\020D" +
      "OTA_UM_HudError\020[\022\031\n\025DOTA_UM_ItemPurchas" +
      "ed\020\\\022\020\n\014DOTA_UM_Ping\020]\022\025\n\021DOTA_UM_ItemFo" +
      "und\020^\022!\n\035DOTA_UM_CharacterSpeakConcept\020_" +
      "\022\026\n\022DOTA_UM_SwapVerify\020`\022\025\n\021DOTA_UM_Worl" +
      "dLine\020a\022\032\n\026DOTA_UM_TournamentDrop\020b\022\025\n\021D" +
      "OTA_UM_ItemAlert\020c\022\032\n\026DOTA_UM_HalloweenD",
      "rops\020d\022\025\n\021DOTA_UM_ChatWheel\020e\022\034\n\030DOTA_UM" +
      "_ReceivedXmasGift\020f\022\037\n\033DOTA_UM_UpdateSha" +
      "redContent\020g\022\036\n\032DOTA_UM_TutorialRequestE" +
      "xp\020h\022\037\n\033DOTA_UM_TutorialPingMinimap\020i\022!\n" +
      "\035DOTA_UM_GamerulesStateChanged\020j\022\026\n\022DOTA" +
      "_UM_ShowSurvey\020k\022\030\n\024DOTA_UM_TutorialFade" +
      "\020l\022\034\n\030DOTA_UM_AddQuestLogEntry\020m\022\031\n\025DOTA" +
      "_UM_SendStatPopup\020n\022\032\n\026DOTA_UM_TutorialF" +
      "inish\020o\022\033\n\027DOTA_UM_SendRoshanPopup\020p\022\036\n\032" +
      "DOTA_UM_SendGenericToolTip\020q\022\031\n\025DOTA_UM_",
      "SendFinalGold\020r\022\025\n\021DOTA_UM_CustomMsg\020s\022\030" +
      "\n\024DOTA_UM_CoachHUDPing\020t\022\035\n\031DOTA_UM_Clie" +
      "ntLoadGridNav\020u\022\027\n\023DOTA_UM_AbilityPing\020v" +
      "\022\034\n\030DOTA_UM_ShowGenericPopup\020w\022\025\n\021DOTA_U" +
      "M_VoteStart\020x\022\026\n\022DOTA_UM_VoteUpdate\020y\022\023\n" +
      "\017DOTA_UM_VoteEnd\020z\022\030\n\024DOTA_UM_BoosterSta" +
      "te\020{\022\035\n\031DOTA_UM_WillPurchaseAlert\020|\022#\n\037D" +
      "OTA_UM_TutorialMinimapPosition\020}\022\025\n\021DOTA" +
      "_UM_PlayerMMR\020~\022\030\n\024DOTA_UM_AbilitySteal\020" +
      "\177\022\037\n\032DOTA_UM_CourierKilledAlert\020\200\001\022\033\n\026DO",
      "TA_UM_EnemyItemAlert\020\201\001\022\036\n\031DOTA_UM_Stats" +
      "MatchDetails\020\202\001\022\026\n\021DOTA_UM_MiniTaunt\020\203\001\022" +
      "\036\n\031DOTA_UM_BuyBackStateAlert\020\204\001\022\032\n\025DOTA_" +
      "UM_QuickBuyAlert\020\205\001\022\035\n\030DOTA_UM_StatsHero" +
      "Details\020\206\001*\241\026\n\021DOTA_CHAT_MESSAGE\022!\n\024CHAT" +
      "_MESSAGE_INVALID\020\377\377\377\377\377\377\377\377\377\001\022\032\n\026CHAT_MESS" +
      "AGE_HERO_KILL\020\000\022\032\n\026CHAT_MESSAGE_HERO_DEN" +
      "Y\020\001\022\036\n\032CHAT_MESSAGE_BARRACKS_KILL\020\002\022\033\n\027C" +
      "HAT_MESSAGE_TOWER_KILL\020\003\022\033\n\027CHAT_MESSAGE" +
      "_TOWER_DENY\020\004\022\033\n\027CHAT_MESSAGE_FIRSTBLOOD",
      "\020\005\022\034\n\030CHAT_MESSAGE_STREAK_KILL\020\006\022\030\n\024CHAT" +
      "_MESSAGE_BUYBACK\020\007\022\026\n\022CHAT_MESSAGE_AEGIS" +
      "\020\010\022\034\n\030CHAT_MESSAGE_ROSHAN_KILL\020\t\022\035\n\031CHAT" +
      "_MESSAGE_COURIER_LOST\020\n\022\"\n\036CHAT_MESSAGE_" +
      "COURIER_RESPAWNED\020\013\022\033\n\027CHAT_MESSAGE_GLYP" +
      "H_USED\020\014\022\036\n\032CHAT_MESSAGE_ITEM_PURCHASE\020\r" +
      "\022\030\n\024CHAT_MESSAGE_CONNECT\020\016\022\033\n\027CHAT_MESSA" +
      "GE_DISCONNECT\020\017\022.\n*CHAT_MESSAGE_DISCONNE" +
      "CT_WAIT_FOR_RECONNECT\020\020\022*\n&CHAT_MESSAGE_" +
      "DISCONNECT_TIME_REMAINING\020\021\0221\n-CHAT_MESS",
      "AGE_DISCONNECT_TIME_REMAINING_PLURAL\020\022\022\032" +
      "\n\026CHAT_MESSAGE_RECONNECT\020\023\022\034\n\030CHAT_MESSA" +
      "GE_PLAYER_LEFT\020\024\022\036\n\032CHAT_MESSAGE_SAFE_TO" +
      "_LEAVE\020\025\022\034\n\030CHAT_MESSAGE_RUNE_PICKUP\020\026\022\034" +
      "\n\030CHAT_MESSAGE_RUNE_BOTTLE\020\027\022\031\n\025CHAT_MES" +
      "SAGE_INTHEBAG\020\030\022\033\n\027CHAT_MESSAGE_SECRETSH" +
      "OP\020\031\022#\n\037CHAT_MESSAGE_ITEM_AUTOPURCHASED\020" +
      "\032\022\037\n\033CHAT_MESSAGE_ITEMS_COMBINED\020\033\022\035\n\031CH" +
      "AT_MESSAGE_SUPER_CREEPS\020\034\022%\n!CHAT_MESSAG" +
      "E_CANT_USE_ACTION_ITEM\020\035\022\"\n\036CHAT_MESSAGE",
      "_CHARGES_EXHAUSTED\020\036\022\032\n\026CHAT_MESSAGE_CAN" +
      "TPAUSE\020\037\022\035\n\031CHAT_MESSAGE_NOPAUSESLEFT\020 \022" +
      "\035\n\031CHAT_MESSAGE_CANTPAUSEYET\020!\022\027\n\023CHAT_M" +
      "ESSAGE_PAUSED\020\"\022\"\n\036CHAT_MESSAGE_UNPAUSE_" +
      "COUNTDOWN\020#\022\031\n\025CHAT_MESSAGE_UNPAUSED\020$\022\036" +
      "\n\032CHAT_MESSAGE_AUTO_UNPAUSED\020%\022\032\n\026CHAT_M" +
      "ESSAGE_YOUPAUSED\020&\022 \n\034CHAT_MESSAGE_CANTU" +
      "NPAUSETEAM\020\'\022\"\n\036CHAT_MESSAGE_VOICE_TEXT_" +
      "BANNED\020)\022.\n*CHAT_MESSAGE_SPECTATORS_WATC" +
      "HING_THIS_GAME\020*\022 \n\034CHAT_MESSAGE_REPORT_",
      "REMINDER\020+\022\032\n\026CHAT_MESSAGE_ECON_ITEM\020,\022\026" +
      "\n\022CHAT_MESSAGE_TAUNT\020-\022\027\n\023CHAT_MESSAGE_R" +
      "ANDOM\020.\022\030\n\024CHAT_MESSAGE_RD_TURN\020/\022 \n\034CHA" +
      "T_MESSAGE_DROP_RATE_BONUS\0201\022!\n\035CHAT_MESS" +
      "AGE_NO_BATTLE_POINTS\0202\022\035\n\031CHAT_MESSAGE_D" +
      "ENIED_AEGIS\0203\022\036\n\032CHAT_MESSAGE_INFORMATIO" +
      "NAL\0204\022\035\n\031CHAT_MESSAGE_AEGIS_STOLEN\0205\022\035\n\031" +
      "CHAT_MESSAGE_ROSHAN_CANDY\0206\022\034\n\030CHAT_MESS" +
      "AGE_ITEM_GIFTED\0207\022\'\n#CHAT_MESSAGE_HERO_K" +
      "ILL_WITH_GREEVIL\0208\022(\n$CHAT_MESSAGE_HOLDO",
      "UT_TOWER_DESTROYED\0209\022\'\n#CHAT_MESSAGE_HOL" +
      "DOUT_WALL_DESTROYED\020:\022&\n\"CHAT_MESSAGE_HO" +
      "LDOUT_WALL_FINISHED\020;\022)\n%CHAT_MESSAGE_PL" +
      "AYER_LEFT_LIMITED_HERO\020>\0221\n-CHAT_MESSAGE" +
      "_ABANDON_LIMITED_HERO_EXPLANATION\020?\022(\n$C" +
      "HAT_MESSAGE_DISCONNECT_LIMITED_HERO\020@\0223\n" +
      "/CHAT_MESSAGE_LOW_PRIORITY_COMPLETED_EXP" +
      "LANATION\020A\022,\n(CHAT_MESSAGE_RECRUITMENT_D" +
      "ROP_RATE_BONUS\020B\0221\n-CHAT_MESSAGE_FROSTIV" +
      "US_SHINING_BOOSTER_ACTIVE\020C\022 \n\034CHAT_MESS",
      "AGE_PLAYER_LEFT_AFK\020I\0222\n.CHAT_MESSAGE_PL" +
      "AYER_LEFT_DISCONNECTED_TOO_LONG\020J\022!\n\035CHA" +
      "T_MESSAGE_PLAYER_ABANDONED\020K\022%\n!CHAT_MES" +
      "SAGE_PLAYER_ABANDONED_AFK\020L\0227\n3CHAT_MESS" +
      "AGE_PLAYER_ABANDONED_DISCONNECTED_TOO_LO" +
      "NG\020M\022#\n\037CHAT_MESSAGE_WILL_NOT_BE_SCORED\020" +
      "N\022*\n&CHAT_MESSAGE_WILL_NOT_BE_SCORED_RAN" +
      "KED\020O\022+\n\'CHAT_MESSAGE_WILL_NOT_BE_SCORED" +
      "_NETWORK\020P\0222\n.CHAT_MESSAGE_WILL_NOT_BE_S" +
      "CORED_NETWORK_RANKED\020Q\022)\n%CHAT_MESSAGE_C",
      "AN_QUIT_WITHOUT_ABANDON\020R\022:\n6CHAT_MESSAG" +
      "E_RANKED_GAME_STILL_SCORED_LEAVERS_GET_L" +
      "OSS\020S\0228\n4CHAT_MESSAGE_ABANDON_RANKED_BEF" +
      "ORE_FIRST_BLOOD_PARTY\020T\022!\n\035CHAT_MESSAGE_" +
      "COMPENDIUM_LEVEL\020U\022*\n&CHAT_MESSAGE_VICTO" +
      "RY_PREDICTION_STREAK\020V*\262\001\n\035DOTA_NO_BATTL" +
      "E_POINTS_REASONS\022%\n!NO_BATTLE_POINTS_WRO" +
      "NG_LOBBY_TYPE\020\001\022\"\n\036NO_BATTLE_POINTS_PRAC" +
      "TICE_BOTS\020\002\022#\n\037NO_BATTLE_POINTS_CHEATS_E" +
      "NABLED\020\003\022!\n\035NO_BATTLE_POINTS_LOW_PRIORIT",
      "Y\020\004*\250\001\n\027DOTA_CHAT_INFORMATIONAL\022!\n\035INFO_" +
      "COOP_BATTLE_POINTS_RULES\020\001\022#\n\037INFO_FROST" +
      "IVUS_ABANDON_REMINDER\020\002\022\030\n\024INFO_RANKED_R" +
      "EMINDER\020\003\022+\n\'INFO_COOP_LOW_PRIORITY_PASS" +
      "IVE_REMINDER\020\004*z\n\026DOTA_ABILITY_PING_TYPE" +
      "\022\026\n\022ABILITY_PING_READY\020\001\022\025\n\021ABILITY_PING" +
      "_MANA\020\002\022\031\n\025ABILITY_PING_COOLDOWN\020\003\022\026\n\022AB" +
      "ILITY_PING_ENEMY\020\004*\247\003\n\024DOTA_COMBATLOG_TY" +
      "PES\022\031\n\025DOTA_COMBATLOG_DAMAGE\020\000\022\027\n\023DOTA_C" +
      "OMBATLOG_HEAL\020\001\022\037\n\033DOTA_COMBATLOG_MODIFI",
      "ER_ADD\020\002\022\"\n\036DOTA_COMBATLOG_MODIFIER_REMO" +
      "VE\020\003\022\030\n\024DOTA_COMBATLOG_DEATH\020\004\022\032\n\026DOTA_C" +
      "OMBATLOG_ABILITY\020\005\022\027\n\023DOTA_COMBATLOG_ITE" +
      "M\020\006\022\033\n\027DOTA_COMBATLOG_LOCATION\020\007\022\027\n\023DOTA" +
      "_COMBATLOG_GOLD\020\010\022\035\n\031DOTA_COMBATLOG_GAME" +
      "_STATE\020\t\022\025\n\021DOTA_COMBATLOG_XP\020\n\022\033\n\027DOTA_" +
      "COMBATLOG_PURCHASE\020\013\022\032\n\026DOTA_COMBATLOG_B" +
      "UYBACK\020\014\022\"\n\036DOTA_COMBATLOG_ABILITY_TRIGG" +
      "ER\020\r*\345\001\n\023EDotaEntityMessages\022\024\n\020DOTA_UNI" +
      "T_SPEECH\020\000\022\031\n\025DOTA_UNIT_SPEECH_MUTE\020\001\022\031\n",
      "\025DOTA_UNIT_ADD_GESTURE\020\002\022\034\n\030DOTA_UNIT_RE" +
      "MOVE_GESTURE\020\003\022!\n\035DOTA_UNIT_REMOVE_ALL_G" +
      "ESTURES\020\004\022\032\n\026DOTA_UNIT_FADE_GESTURE\020\006\022%\n" +
      "!DOTA_UNIT_SPEECH_CLIENTSIDE_RULES\020\007*\332\004\n" +
      "\025DOTA_PARTICLE_MESSAGE\022&\n\"DOTA_PARTICLE_" +
      "MANAGER_EVENT_CREATE\020\000\022&\n\"DOTA_PARTICLE_" +
      "MANAGER_EVENT_UPDATE\020\001\022.\n*DOTA_PARTICLE_" +
      "MANAGER_EVENT_UPDATE_FORWARD\020\002\0222\n.DOTA_P" +
      "ARTICLE_MANAGER_EVENT_UPDATE_ORIENTATION" +
      "\020\003\022/\n+DOTA_PARTICLE_MANAGER_EVENT_UPDATE",
      "_FALLBACK\020\004\022*\n&DOTA_PARTICLE_MANAGER_EVE" +
      "NT_UPDATE_ENT\020\005\022-\n)DOTA_PARTICLE_MANAGER" +
      "_EVENT_UPDATE_OFFSET\020\006\022\'\n#DOTA_PARTICLE_" +
      "MANAGER_EVENT_DESTROY\020\007\0221\n-DOTA_PARTICLE" +
      "_MANAGER_EVENT_DESTROY_INVOLVING\020\010\022\'\n#DO" +
      "TA_PARTICLE_MANAGER_EVENT_RELEASE\020\t\022\'\n#D" +
      "OTA_PARTICLE_MANAGER_EVENT_LATENCY\020\n\022+\n\'" +
      "DOTA_PARTICLE_MANAGER_EVENT_SHOULD_DRAW\020" +
      "\013\022&\n\"DOTA_PARTICLE_MANAGER_EVENT_FROZEN\020" +
      "\014*\356\003\n\023DOTA_OVERHEAD_ALERT\022\027\n\023OVERHEAD_AL",
      "ERT_GOLD\020\000\022\027\n\023OVERHEAD_ALERT_DENY\020\001\022\033\n\027O" +
      "VERHEAD_ALERT_CRITICAL\020\002\022\025\n\021OVERHEAD_ALE" +
      "RT_XP\020\003\022%\n!OVERHEAD_ALERT_BONUS_SPELL_DA" +
      "MAGE\020\004\022\027\n\023OVERHEAD_ALERT_MISS\020\005\022\031\n\025OVERH" +
      "EAD_ALERT_DAMAGE\020\006\022\030\n\024OVERHEAD_ALERT_EVA" +
      "DE\020\007\022\030\n\024OVERHEAD_ALERT_BLOCK\020\010\022&\n\"OVERHE" +
      "AD_ALERT_BONUS_POISON_DAMAGE\020\t\022\027\n\023OVERHE" +
      "AD_ALERT_HEAL\020\n\022\033\n\027OVERHEAD_ALERT_MANA_A" +
      "DD\020\013\022\034\n\030OVERHEAD_ALERT_MANA_LOSS\020\014\022!\n\035OV" +
      "ERHEAD_ALERT_LAST_HIT_EARLY\020\r\022!\n\035OVERHEA",
      "D_ALERT_LAST_HIT_CLOSE\020\016\022 \n\034OVERHEAD_ALE" +
      "RT_LAST_HIT_MISS\020\017*\230\010\n\rEHeroStatType\022\030\n\024" +
      "k_EHeroStatType_None\020\000\022#\n\036k_EHeroStatTyp" +
      "e_AxeTotalDamage\020\320\017\022\'\n\"k_EHeroStatType_B" +
      "attleHungerDamage\020\321\017\022\'\n\"k_EHeroStatType_" +
      "CounterHelixDamage\020\322\017\022\'\n\"k_EHeroStatType" +
      "_CullingBladeDamage\020\323\017\022,\n\'k_EHeroStatTyp" +
      "e_BerserkersCallCastCount\020\324\017\0223\n.k_EHeroS" +
      "tatType_BerserkersCallHeroesHitAverage\020\325" +
      "\017\0220\n+k_EHeroStatType_BerserkersCallOther",
      "UnitsHit\020\326\017\0223\n.k_EHeroStatType_Berserker" +
      "sCallHeroAttacksTaken\020\327\017\0224\n/k_EHeroStatT" +
      "ype_BerserkersCallOtherAttacksTaken\020\330\017\022*" +
      "\n%k_EHeroStatType_BattleHungerCastCount\020" +
      "\331\017\0222\n-k_EHeroStatType_BattleHungerPotent" +
      "ialDuration\020\332\017\0220\n+k_EHeroStatType_Battle" +
      "HungerAverageDuration\020\333\017\022*\n%k_EHeroStatT" +
      "ype_CounterHelixProcCount\020\334\017\022.\n)k_EHeroS" +
      "tatType_CounterHelixHeroProcCount\020\335\017\0221\n," +
      "k_EHeroStatType_CounterHelixHeroesHitAve",
      "rage\020\336\017\0223\n.k_EHeroStatType_CounterHelixO" +
      "therUnitsHitCount\020\337\017\022*\n%k_EHeroStatType_" +
      "CullingBladeCastCount\020\340\017\022*\n%k_EHeroStatT" +
      "ype_CullingBladeKillCount\020\341\017\0224\n/k_EHeroS" +
      "tatType_CullingBladeAverageHealthCulled\020" +
      "\342\017\0227\n2k_EHeroStatType_CullingBladeAverag" +
      "eDamageAvailable\020\343\017\0220\n+k_EHeroStatType_C" +
      "ullingBladeHeroBuffAverage\020\344\017B\021\n\017com.dot" +
      "a2.proto"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
      new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
        public com.google.protobuf.ExtensionRegistry assignDescriptors(
            com.google.protobuf.Descriptors.FileDescriptor root) {
          descriptor = root;
          internal_static_CDOTAUserMsg_AIDebugLine_descriptor =
            getDescriptor().getMessageTypes().get(0);
          internal_static_CDOTAUserMsg_AIDebugLine_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_AIDebugLine_descriptor,
              new java.lang.String[] { "Message", });
          internal_static_CDOTAUserMsg_Ping_descriptor =
            getDescriptor().getMessageTypes().get(1);
          internal_static_CDOTAUserMsg_Ping_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_Ping_descriptor,
              new java.lang.String[] { "Message", });
          internal_static_CDOTAUserMsg_SwapVerify_descriptor =
            getDescriptor().getMessageTypes().get(2);
          internal_static_CDOTAUserMsg_SwapVerify_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_SwapVerify_descriptor,
              new java.lang.String[] { "PlayerId", });
          internal_static_CDOTAUserMsg_ChatEvent_descriptor =
            getDescriptor().getMessageTypes().get(3);
          internal_static_CDOTAUserMsg_ChatEvent_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_ChatEvent_descriptor,
              new java.lang.String[] { "Type", "Value", "Playerid1", "Playerid2", "Playerid3", "Playerid4", "Playerid5", "Playerid6", });
          internal_static_CDOTAUserMsg_CombatLogShowDeath_descriptor =
            getDescriptor().getMessageTypes().get(4);
          internal_static_CDOTAUserMsg_CombatLogShowDeath_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_CombatLogShowDeath_descriptor,
              new java.lang.String[] { });
          internal_static_CDOTAUserMsg_BotChat_descriptor =
            getDescriptor().getMessageTypes().get(5);
          internal_static_CDOTAUserMsg_BotChat_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_BotChat_descriptor,
              new java.lang.String[] { "PlayerId", "Format", "Message", "Target", });
          internal_static_CDOTAUserMsg_CombatHeroPositions_descriptor =
            getDescriptor().getMessageTypes().get(6);
          internal_static_CDOTAUserMsg_CombatHeroPositions_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_CombatHeroPositions_descriptor,
              new java.lang.String[] { "Index", "Time", "WorldPos", "Health", });
          internal_static_CDOTAUserMsg_MiniKillCamInfo_descriptor =
            getDescriptor().getMessageTypes().get(7);
          internal_static_CDOTAUserMsg_MiniKillCamInfo_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_MiniKillCamInfo_descriptor,
              new java.lang.String[] { "Attackers", });
          internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_descriptor =
            internal_static_CDOTAUserMsg_MiniKillCamInfo_descriptor.getNestedTypes().get(0);
          internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_descriptor,
              new java.lang.String[] { "Attacker", "TotalDamage", "Abilities", });
          internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability_descriptor =
            internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_descriptor.getNestedTypes().get(0);
          internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability_descriptor,
              new java.lang.String[] { "Ability", "Damage", });
          internal_static_CDOTAUserMsg_GlobalLightColor_descriptor =
            getDescriptor().getMessageTypes().get(8);
          internal_static_CDOTAUserMsg_GlobalLightColor_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_GlobalLightColor_descriptor,
              new java.lang.String[] { "Color", "Duration", });
          internal_static_CDOTAUserMsg_GlobalLightDirection_descriptor =
            getDescriptor().getMessageTypes().get(9);
          internal_static_CDOTAUserMsg_GlobalLightDirection_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_GlobalLightDirection_descriptor,
              new java.lang.String[] { "Direction", "Duration", });
          internal_static_CDOTAUserMsg_LocationPing_descriptor =
            getDescriptor().getMessageTypes().get(10);
          internal_static_CDOTAUserMsg_LocationPing_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_LocationPing_descriptor,
              new java.lang.String[] { "PlayerId", "LocationPing", });
          internal_static_CDOTAUserMsg_ItemAlert_descriptor =
            getDescriptor().getMessageTypes().get(11);
          internal_static_CDOTAUserMsg_ItemAlert_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_ItemAlert_descriptor,
              new java.lang.String[] { "PlayerId", "ItemAlert", });
          internal_static_CDOTAUserMsg_EnemyItemAlert_descriptor =
            getDescriptor().getMessageTypes().get(12);
          internal_static_CDOTAUserMsg_EnemyItemAlert_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_EnemyItemAlert_descriptor,
              new java.lang.String[] { "PlayerId", "EnemyItemAlert", });
          internal_static_CDOTAUserMsg_WillPurchaseAlert_descriptor =
            getDescriptor().getMessageTypes().get(13);
          internal_static_CDOTAUserMsg_WillPurchaseAlert_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_WillPurchaseAlert_descriptor,
              new java.lang.String[] { "Itemid", "PlayerId", "GoldRemaining", });
          internal_static_CDOTAUserMsg_BuyBackStateAlert_descriptor =
            getDescriptor().getMessageTypes().get(14);
          internal_static_CDOTAUserMsg_BuyBackStateAlert_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_BuyBackStateAlert_descriptor,
              new java.lang.String[] { "PlayerId", });
          internal_static_CDOTAUserMsg_QuickBuyAlert_descriptor =
            getDescriptor().getMessageTypes().get(15);
          internal_static_CDOTAUserMsg_QuickBuyAlert_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_QuickBuyAlert_descriptor,
              new java.lang.String[] { "PlayerId", "Itemid", "GoldRequired", });
          internal_static_CDOTAUserMsg_CourierKilledAlert_descriptor =
            getDescriptor().getMessageTypes().get(16);
          internal_static_CDOTAUserMsg_CourierKilledAlert_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_CourierKilledAlert_descriptor,
              new java.lang.String[] { "Team", "GoldValue", "EntityHandle", "Timestamp", });
          internal_static_CDOTAUserMsg_MinimapEvent_descriptor =
            getDescriptor().getMessageTypes().get(17);
          internal_static_CDOTAUserMsg_MinimapEvent_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_MinimapEvent_descriptor,
              new java.lang.String[] { "EventType", "EntityHandle", "X", "Y", "Duration", });
          internal_static_CDOTAUserMsg_TournamentDrop_descriptor =
            getDescriptor().getMessageTypes().get(18);
          internal_static_CDOTAUserMsg_TournamentDrop_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_TournamentDrop_descriptor,
              new java.lang.String[] { "DeprecatedWinnerName", "DeprecatedEventType", });
          internal_static_CDOTAUserMsg_MapLine_descriptor =
            getDescriptor().getMessageTypes().get(19);
          internal_static_CDOTAUserMsg_MapLine_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_MapLine_descriptor,
              new java.lang.String[] { "PlayerId", "Mapline", });
          internal_static_CDOTAUserMsg_MinimapDebugPoint_descriptor =
            getDescriptor().getMessageTypes().get(20);
          internal_static_CDOTAUserMsg_MinimapDebugPoint_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_MinimapDebugPoint_descriptor,
              new java.lang.String[] { "Location", "Color", "Size", "Duration", });
          internal_static_CDOTAUserMsg_CreateLinearProjectile_descriptor =
            getDescriptor().getMessageTypes().get(21);
          internal_static_CDOTAUserMsg_CreateLinearProjectile_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_CreateLinearProjectile_descriptor,
              new java.lang.String[] { "Origin", "Velocity", "Latency", "Entindex", "ParticleIndex", "Handle", "Acceleration", "MaxSpeed", });
          internal_static_CDOTAUserMsg_DestroyLinearProjectile_descriptor =
            getDescriptor().getMessageTypes().get(22);
          internal_static_CDOTAUserMsg_DestroyLinearProjectile_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_DestroyLinearProjectile_descriptor,
              new java.lang.String[] { "Handle", });
          internal_static_CDOTAUserMsg_DodgeTrackingProjectiles_descriptor =
            getDescriptor().getMessageTypes().get(23);
          internal_static_CDOTAUserMsg_DodgeTrackingProjectiles_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_DodgeTrackingProjectiles_descriptor,
              new java.lang.String[] { "Entindex", "AttacksOnly", });
          internal_static_CDOTAUserMsg_SpectatorPlayerClick_descriptor =
            getDescriptor().getMessageTypes().get(24);
          internal_static_CDOTAUserMsg_SpectatorPlayerClick_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_SpectatorPlayerClick_descriptor,
              new java.lang.String[] { "Entindex", "OrderType", "TargetIndex", });
          internal_static_CDOTAUserMsg_NevermoreRequiem_descriptor =
            getDescriptor().getMessageTypes().get(25);
          internal_static_CDOTAUserMsg_NevermoreRequiem_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_NevermoreRequiem_descriptor,
              new java.lang.String[] { "EntityHandle", "Lines", "Origin", });
          internal_static_CDOTAUserMsg_InvalidCommand_descriptor =
            getDescriptor().getMessageTypes().get(26);
          internal_static_CDOTAUserMsg_InvalidCommand_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_InvalidCommand_descriptor,
              new java.lang.String[] { "Message", });
          internal_static_CDOTAUserMsg_HudError_descriptor =
            getDescriptor().getMessageTypes().get(27);
          internal_static_CDOTAUserMsg_HudError_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_HudError_descriptor,
              new java.lang.String[] { "OrderId", });
          internal_static_CDOTAUserMsg_SharedCooldown_descriptor =
            getDescriptor().getMessageTypes().get(28);
          internal_static_CDOTAUserMsg_SharedCooldown_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_SharedCooldown_descriptor,
              new java.lang.String[] { "Entindex", "Name", "Cooldown", "NameIndex", });
          internal_static_CDOTAUserMsg_SetNextAutobuyItem_descriptor =
            getDescriptor().getMessageTypes().get(29);
          internal_static_CDOTAUserMsg_SetNextAutobuyItem_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_SetNextAutobuyItem_descriptor,
              new java.lang.String[] { "Name", });
          internal_static_CDOTAUserMsg_HalloweenDrops_descriptor =
            getDescriptor().getMessageTypes().get(30);
          internal_static_CDOTAUserMsg_HalloweenDrops_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_HalloweenDrops_descriptor,
              new java.lang.String[] { "ItemDefs", "PlayerIds", "PrizeList", });
          internal_static_CDOTAResponseQuerySerialized_descriptor =
            getDescriptor().getMessageTypes().get(31);
          internal_static_CDOTAResponseQuerySerialized_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAResponseQuerySerialized_descriptor,
              new java.lang.String[] { "Facts", });
          internal_static_CDOTAResponseQuerySerialized_Fact_descriptor =
            internal_static_CDOTAResponseQuerySerialized_descriptor.getNestedTypes().get(0);
          internal_static_CDOTAResponseQuerySerialized_Fact_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAResponseQuerySerialized_Fact_descriptor,
              new java.lang.String[] { "Key", "Valtype", "ValNumeric", "ValString", });
          internal_static_CDOTASpeechMatchOnClient_descriptor =
            getDescriptor().getMessageTypes().get(32);
          internal_static_CDOTASpeechMatchOnClient_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTASpeechMatchOnClient_descriptor,
              new java.lang.String[] { "Concept", "RecipientType", "Responsequery", "Randomseed", });
          internal_static_CDOTAUserMsg_UnitEvent_descriptor =
            getDescriptor().getMessageTypes().get(33);
          internal_static_CDOTAUserMsg_UnitEvent_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_UnitEvent_descriptor,
              new java.lang.String[] { "MsgType", "EntityIndex", "Speech", "SpeechMute", "AddGesture", "RemoveGesture", "BloodImpact", "FadeGesture", "SpeechMatchOnClient", });
          internal_static_CDOTAUserMsg_UnitEvent_Speech_descriptor =
            internal_static_CDOTAUserMsg_UnitEvent_descriptor.getNestedTypes().get(0);
          internal_static_CDOTAUserMsg_UnitEvent_Speech_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_UnitEvent_Speech_descriptor,
              new java.lang.String[] { "Concept", "Response", "RecipientType", "Level", "Muteable", });
          internal_static_CDOTAUserMsg_UnitEvent_SpeechMute_descriptor =
            internal_static_CDOTAUserMsg_UnitEvent_descriptor.getNestedTypes().get(1);
          internal_static_CDOTAUserMsg_UnitEvent_SpeechMute_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_UnitEvent_SpeechMute_descriptor,
              new java.lang.String[] { "Delay", });
          internal_static_CDOTAUserMsg_UnitEvent_AddGesture_descriptor =
            internal_static_CDOTAUserMsg_UnitEvent_descriptor.getNestedTypes().get(2);
          internal_static_CDOTAUserMsg_UnitEvent_AddGesture_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_UnitEvent_AddGesture_descriptor,
              new java.lang.String[] { "Activity", "Slot", "FadeIn", "FadeOut", });
          internal_static_CDOTAUserMsg_UnitEvent_RemoveGesture_descriptor =
            internal_static_CDOTAUserMsg_UnitEvent_descriptor.getNestedTypes().get(3);
          internal_static_CDOTAUserMsg_UnitEvent_RemoveGesture_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_UnitEvent_RemoveGesture_descriptor,
              new java.lang.String[] { "Activity", });
          internal_static_CDOTAUserMsg_UnitEvent_BloodImpact_descriptor =
            internal_static_CDOTAUserMsg_UnitEvent_descriptor.getNestedTypes().get(4);
          internal_static_CDOTAUserMsg_UnitEvent_BloodImpact_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_UnitEvent_BloodImpact_descriptor,
              new java.lang.String[] { "Scale", "XNormal", "YNormal", });
          internal_static_CDOTAUserMsg_UnitEvent_FadeGesture_descriptor =
            internal_static_CDOTAUserMsg_UnitEvent_descriptor.getNestedTypes().get(5);
          internal_static_CDOTAUserMsg_UnitEvent_FadeGesture_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_UnitEvent_FadeGesture_descriptor,
              new java.lang.String[] { "Activity", });
          internal_static_CDOTAUserMsg_ItemPurchased_descriptor =
            getDescriptor().getMessageTypes().get(34);
          internal_static_CDOTAUserMsg_ItemPurchased_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_ItemPurchased_descriptor,
              new java.lang.String[] { "ItemIndex", });
          internal_static_CDOTAUserMsg_ItemFound_descriptor =
            getDescriptor().getMessageTypes().get(35);
          internal_static_CDOTAUserMsg_ItemFound_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_ItemFound_descriptor,
              new java.lang.String[] { "Player", "Quality", "Rarity", "Method", "Itemdef", });
          internal_static_CDOTAUserMsg_ParticleManager_descriptor =
            getDescriptor().getMessageTypes().get(36);
          internal_static_CDOTAUserMsg_ParticleManager_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_ParticleManager_descriptor,
              new java.lang.String[] { "Type", "Index", "ReleaseParticleIndex", "CreateParticle", "DestroyParticle", "DestroyParticleInvolving", "UpdateParticle", "UpdateParticleFwd", "UpdateParticleOrient", "UpdateParticleFallback", "UpdateParticleOffset", "UpdateParticleEnt", "UpdateParticleShouldDraw", "UpdateParticleSetFrozen", });
          internal_static_CDOTAUserMsg_ParticleManager_ReleaseParticleIndex_descriptor =
            internal_static_CDOTAUserMsg_ParticleManager_descriptor.getNestedTypes().get(0);
          internal_static_CDOTAUserMsg_ParticleManager_ReleaseParticleIndex_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_ParticleManager_ReleaseParticleIndex_descriptor,
              new java.lang.String[] { });
          internal_static_CDOTAUserMsg_ParticleManager_CreateParticle_descriptor =
            internal_static_CDOTAUserMsg_ParticleManager_descriptor.getNestedTypes().get(1);
          internal_static_CDOTAUserMsg_ParticleManager_CreateParticle_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_ParticleManager_CreateParticle_descriptor,
              new java.lang.String[] { "ParticleNameIndex", "AttachType", "EntityHandle", });
          internal_static_CDOTAUserMsg_ParticleManager_DestroyParticle_descriptor =
            internal_static_CDOTAUserMsg_ParticleManager_descriptor.getNestedTypes().get(2);
          internal_static_CDOTAUserMsg_ParticleManager_DestroyParticle_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_ParticleManager_DestroyParticle_descriptor,
              new java.lang.String[] { "DestroyImmediately", });
          internal_static_CDOTAUserMsg_ParticleManager_DestroyParticleInvolving_descriptor =
            internal_static_CDOTAUserMsg_ParticleManager_descriptor.getNestedTypes().get(3);
          internal_static_CDOTAUserMsg_ParticleManager_DestroyParticleInvolving_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_ParticleManager_DestroyParticleInvolving_descriptor,
              new java.lang.String[] { "DestroyImmediately", "EntityHandle", });
          internal_static_CDOTAUserMsg_ParticleManager_UpdateParticle_descriptor =
            internal_static_CDOTAUserMsg_ParticleManager_descriptor.getNestedTypes().get(4);
          internal_static_CDOTAUserMsg_ParticleManager_UpdateParticle_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_ParticleManager_UpdateParticle_descriptor,
              new java.lang.String[] { "ControlPoint", "Position", });
          internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFwd_descriptor =
            internal_static_CDOTAUserMsg_ParticleManager_descriptor.getNestedTypes().get(5);
          internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFwd_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFwd_descriptor,
              new java.lang.String[] { "ControlPoint", "Forward", });
          internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOrient_descriptor =
            internal_static_CDOTAUserMsg_ParticleManager_descriptor.getNestedTypes().get(6);
          internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOrient_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOrient_descriptor,
              new java.lang.String[] { "ControlPoint", "Forward", "Right", "Up", });
          internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFallback_descriptor =
            internal_static_CDOTAUserMsg_ParticleManager_descriptor.getNestedTypes().get(7);
          internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFallback_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleFallback_descriptor,
              new java.lang.String[] { "ControlPoint", "Position", });
          internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOffset_descriptor =
            internal_static_CDOTAUserMsg_ParticleManager_descriptor.getNestedTypes().get(8);
          internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOffset_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleOffset_descriptor,
              new java.lang.String[] { "ControlPoint", "OriginOffset", });
          internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleEnt_descriptor =
            internal_static_CDOTAUserMsg_ParticleManager_descriptor.getNestedTypes().get(9);
          internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleEnt_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleEnt_descriptor,
              new java.lang.String[] { "ControlPoint", "EntityHandle", "AttachType", "Attachment", "FallbackPosition", "IncludeWearables", });
          internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleSetFrozen_descriptor =
            internal_static_CDOTAUserMsg_ParticleManager_descriptor.getNestedTypes().get(10);
          internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleSetFrozen_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleSetFrozen_descriptor,
              new java.lang.String[] { "SetFrozen", });
          internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleShouldDraw_descriptor =
            internal_static_CDOTAUserMsg_ParticleManager_descriptor.getNestedTypes().get(11);
          internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleShouldDraw_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_ParticleManager_UpdateParticleShouldDraw_descriptor,
              new java.lang.String[] { "ShouldDraw", });
          internal_static_CDOTAUserMsg_OverheadEvent_descriptor =
            getDescriptor().getMessageTypes().get(37);
          internal_static_CDOTAUserMsg_OverheadEvent_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_OverheadEvent_descriptor,
              new java.lang.String[] { "MessageType", "Value", "TargetPlayerEntindex", "TargetEntindex", "SourcePlayerEntindex", });
          internal_static_CDOTAUserMsg_TutorialTipInfo_descriptor =
            getDescriptor().getMessageTypes().get(38);
          internal_static_CDOTAUserMsg_TutorialTipInfo_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_TutorialTipInfo_descriptor,
              new java.lang.String[] { "Name", "Progress", });
          internal_static_CDOTAUserMsg_TutorialFinish_descriptor =
            getDescriptor().getMessageTypes().get(39);
          internal_static_CDOTAUserMsg_TutorialFinish_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_TutorialFinish_descriptor,
              new java.lang.String[] { "Heading", "Emblem", "Body", "Success", });
          internal_static_CDOTAUserMsg_TutorialMinimapPosition_descriptor =
            getDescriptor().getMessageTypes().get(40);
          internal_static_CDOTAUserMsg_TutorialMinimapPosition_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_TutorialMinimapPosition_descriptor,
              new java.lang.String[] { });
          internal_static_CDOTAUserMsg_SendGenericToolTip_descriptor =
            getDescriptor().getMessageTypes().get(41);
          internal_static_CDOTAUserMsg_SendGenericToolTip_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_SendGenericToolTip_descriptor,
              new java.lang.String[] { "Title", "Text", "Entindex", "Close", });
          internal_static_CDOTAUserMsg_WorldLine_descriptor =
            getDescriptor().getMessageTypes().get(42);
          internal_static_CDOTAUserMsg_WorldLine_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_WorldLine_descriptor,
              new java.lang.String[] { "PlayerId", "Worldline", });
          internal_static_CDOTAUserMsg_ChatWheel_descriptor =
            getDescriptor().getMessageTypes().get(43);
          internal_static_CDOTAUserMsg_ChatWheel_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_ChatWheel_descriptor,
              new java.lang.String[] { "ChatMessage", "PlayerId", "AccountId", "ParamHeroId", });
          internal_static_CDOTAUserMsg_ReceivedXmasGift_descriptor =
            getDescriptor().getMessageTypes().get(44);
          internal_static_CDOTAUserMsg_ReceivedXmasGift_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_ReceivedXmasGift_descriptor,
              new java.lang.String[] { "PlayerId", "ItemName", "InventorySlot", });
          internal_static_CDOTAUserMsg_ShowSurvey_descriptor =
            getDescriptor().getMessageTypes().get(45);
          internal_static_CDOTAUserMsg_ShowSurvey_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_ShowSurvey_descriptor,
              new java.lang.String[] { "SurveyId", "MatchId", "ResponseStyle", "TeammateHeroId", "TeammateName", "TeammateAccountId", });
          internal_static_CDOTAUserMsg_UpdateSharedContent_descriptor =
            getDescriptor().getMessageTypes().get(46);
          internal_static_CDOTAUserMsg_UpdateSharedContent_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_UpdateSharedContent_descriptor,
              new java.lang.String[] { "SlotType", });
          internal_static_CDOTAUserMsg_TutorialRequestExp_descriptor =
            getDescriptor().getMessageTypes().get(47);
          internal_static_CDOTAUserMsg_TutorialRequestExp_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_TutorialRequestExp_descriptor,
              new java.lang.String[] { });
          internal_static_CDOTAUserMsg_TutorialFade_descriptor =
            getDescriptor().getMessageTypes().get(48);
          internal_static_CDOTAUserMsg_TutorialFade_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_TutorialFade_descriptor,
              new java.lang.String[] { "TgtAlpha", });
          internal_static_CDOTAUserMsg_TutorialPingMinimap_descriptor =
            getDescriptor().getMessageTypes().get(49);
          internal_static_CDOTAUserMsg_TutorialPingMinimap_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_TutorialPingMinimap_descriptor,
              new java.lang.String[] { "PlayerId", "PosX", "PosY", "PosZ", "EntityIndex", });
          internal_static_CDOTA_UM_GamerulesStateChanged_descriptor =
            getDescriptor().getMessageTypes().get(50);
          internal_static_CDOTA_UM_GamerulesStateChanged_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTA_UM_GamerulesStateChanged_descriptor,
              new java.lang.String[] { "State", });
          internal_static_CDOTAUserMsg_AddQuestLogEntry_descriptor =
            getDescriptor().getMessageTypes().get(51);
          internal_static_CDOTAUserMsg_AddQuestLogEntry_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_AddQuestLogEntry_descriptor,
              new java.lang.String[] { "NpcName", "NpcDialog", });
          internal_static_CDOTAUserMsg_SendStatPopup_descriptor =
            getDescriptor().getMessageTypes().get(52);
          internal_static_CDOTAUserMsg_SendStatPopup_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_SendStatPopup_descriptor,
              new java.lang.String[] { "PlayerId", "Statpopup", });
          internal_static_CDOTAUserMsg_SendRoshanPopup_descriptor =
            getDescriptor().getMessageTypes().get(53);
          internal_static_CDOTAUserMsg_SendRoshanPopup_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_SendRoshanPopup_descriptor,
              new java.lang.String[] { "Reclaimed", "Gametime", });
          internal_static_CDOTAUserMsg_SendFinalGold_descriptor =
            getDescriptor().getMessageTypes().get(54);
          internal_static_CDOTAUserMsg_SendFinalGold_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_SendFinalGold_descriptor,
              new java.lang.String[] { "ReliableGold", "UnreliableGold", });
          internal_static_CDOTAUserMsg_CustomMsg_descriptor =
            getDescriptor().getMessageTypes().get(55);
          internal_static_CDOTAUserMsg_CustomMsg_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_CustomMsg_descriptor,
              new java.lang.String[] { "Message", "PlayerId", "Value", });
          internal_static_CDOTAUserMsg_CoachHUDPing_descriptor =
            getDescriptor().getMessageTypes().get(56);
          internal_static_CDOTAUserMsg_CoachHUDPing_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_CoachHUDPing_descriptor,
              new java.lang.String[] { "PlayerId", "HudPing", });
          internal_static_CDOTAUserMsg_ClientLoadGridNav_descriptor =
            getDescriptor().getMessageTypes().get(57);
          internal_static_CDOTAUserMsg_ClientLoadGridNav_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_ClientLoadGridNav_descriptor,
              new java.lang.String[] { });
          internal_static_CDOTAUserMsg_AbilityPing_descriptor =
            getDescriptor().getMessageTypes().get(58);
          internal_static_CDOTAUserMsg_AbilityPing_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_AbilityPing_descriptor,
              new java.lang.String[] { "PlayerId", "AbilityId", "Type", "CooldownSeconds", });
          internal_static_CDOTAUserMsg_ShowGenericPopup_descriptor =
            getDescriptor().getMessageTypes().get(59);
          internal_static_CDOTAUserMsg_ShowGenericPopup_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_ShowGenericPopup_descriptor,
              new java.lang.String[] { "Header", "Body", "Param1", "Param2", "TintScreen", "ShowNoOtherDialogs", });
          internal_static_CDOTAUserMsg_VoteStart_descriptor =
            getDescriptor().getMessageTypes().get(60);
          internal_static_CDOTAUserMsg_VoteStart_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_VoteStart_descriptor,
              new java.lang.String[] { "Title", "Duration", "ChoiceCount", "Choices", });
          internal_static_CDOTAUserMsg_VoteUpdate_descriptor =
            getDescriptor().getMessageTypes().get(61);
          internal_static_CDOTAUserMsg_VoteUpdate_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_VoteUpdate_descriptor,
              new java.lang.String[] { "ChoiceCounts", });
          internal_static_CDOTAUserMsg_VoteEnd_descriptor =
            getDescriptor().getMessageTypes().get(62);
          internal_static_CDOTAUserMsg_VoteEnd_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_VoteEnd_descriptor,
              new java.lang.String[] { "SelectedChoice", });
          internal_static_CDOTAUserMsg_BoosterStatePlayer_descriptor =
            getDescriptor().getMessageTypes().get(63);
          internal_static_CDOTAUserMsg_BoosterStatePlayer_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_BoosterStatePlayer_descriptor,
              new java.lang.String[] { "PlayerId", "Bonus", "EventBonus", "BonusItemId", "EventBonusItemId", });
          internal_static_CDOTAUserMsg_BoosterState_descriptor =
            getDescriptor().getMessageTypes().get(64);
          internal_static_CDOTAUserMsg_BoosterState_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_BoosterState_descriptor,
              new java.lang.String[] { "BoostedPlayers", });
          internal_static_CDOTAUserMsg_PlayerMMR_descriptor =
            getDescriptor().getMessageTypes().get(65);
          internal_static_CDOTAUserMsg_PlayerMMR_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_PlayerMMR_descriptor,
              new java.lang.String[] { "Mmr", });
          internal_static_CDOTAUserMsg_AbilitySteal_descriptor =
            getDescriptor().getMessageTypes().get(66);
          internal_static_CDOTAUserMsg_AbilitySteal_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_AbilitySteal_descriptor,
              new java.lang.String[] { "PlayerId", "AbilityId", "AbilityLevel", });
          internal_static_CDOTAUserMsg_StatsHeroLookup_descriptor =
            getDescriptor().getMessageTypes().get(67);
          internal_static_CDOTAUserMsg_StatsHeroLookup_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_StatsHeroLookup_descriptor,
              new java.lang.String[] { "PlayerId", "HeroId", });
          internal_static_CDOTAUserMsg_StatsHeroMinuteDetails_descriptor =
            getDescriptor().getMessageTypes().get(68);
          internal_static_CDOTAUserMsg_StatsHeroMinuteDetails_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_StatsHeroMinuteDetails_descriptor,
              new java.lang.String[] { "LastHits", "HeroKills", "HeroDamage", "TowerDamage", "AveragePosition", "TotalXp", "NetWorth", "HarvestedCreepGold", });
          internal_static_CDOTAUserMsg_StatsTeamMinuteDetails_descriptor =
            getDescriptor().getMessageTypes().get(69);
          internal_static_CDOTAUserMsg_StatsTeamMinuteDetails_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_StatsTeamMinuteDetails_descriptor,
              new java.lang.String[] { "PlayerStats", "TowerKills", "BarrackKills", "AvailableLaneCreepGold", "BalanceKillValue", "BalanceTowerValue", "BalanceBarracksValue", "BalanceGoldValue", "BalanceXpValue", });
          internal_static_CDOTAUserMsg_StatsPlayerKillShare_descriptor =
            getDescriptor().getMessageTypes().get(70);
          internal_static_CDOTAUserMsg_StatsPlayerKillShare_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_StatsPlayerKillShare_descriptor,
              new java.lang.String[] { "PlayerId", "KillSharePercent", });
          internal_static_CDOTAUserMsg_StatsKillDetails_descriptor =
            getDescriptor().getMessageTypes().get(71);
          internal_static_CDOTAUserMsg_StatsKillDetails_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_StatsKillDetails_descriptor,
              new java.lang.String[] { "VictimId", "KillShares", "DamageToKill", "EffectiveHealth", "DeathTime", });
          internal_static_CDOTAUserMsg_StatsMatchDetails_descriptor =
            getDescriptor().getMessageTypes().get(72);
          internal_static_CDOTAUserMsg_StatsMatchDetails_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_StatsMatchDetails_descriptor,
              new java.lang.String[] { "HeroLookup", "RadiantStats", "DireStats", "RadiantKills", "DireKills", });
          internal_static_CDOTAUserMsg_MiniTaunt_descriptor =
            getDescriptor().getMessageTypes().get(73);
          internal_static_CDOTAUserMsg_MiniTaunt_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_MiniTaunt_descriptor,
              new java.lang.String[] { "TauntingPlayerId", });
          internal_static_CMsgHeroAbilityStat_descriptor =
            getDescriptor().getMessageTypes().get(74);
          internal_static_CMsgHeroAbilityStat_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CMsgHeroAbilityStat_descriptor,
              new java.lang.String[] { "StatType", "IntValue", "FloatValue", });
          internal_static_CMsgCombatAnalyzerPlayerStat_descriptor =
            getDescriptor().getMessageTypes().get(75);
          internal_static_CMsgCombatAnalyzerPlayerStat_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CMsgCombatAnalyzerPlayerStat_descriptor,
              new java.lang.String[] { "AccountId", "HeroAbilityStats", });
          internal_static_CMsgCombatAnalyzerStats_descriptor =
            getDescriptor().getMessageTypes().get(76);
          internal_static_CMsgCombatAnalyzerStats_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CMsgCombatAnalyzerStats_descriptor,
              new java.lang.String[] { "MatchId", "PlayerStats", });
          internal_static_CDOTAUserMsg_CombatLogData_descriptor =
            getDescriptor().getMessageTypes().get(77);
          internal_static_CDOTAUserMsg_CombatLogData_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CDOTAUserMsg_CombatLogData_descriptor,
              new java.lang.String[] { "Type", "TargetName", "AttackerName", "AttackerIllusion", "TargetIllusion", "InflictorName", "Value", "Health", "Time", });
          internal_static_CMsgDOTACombatLogEntry_descriptor =
            getDescriptor().getMessageTypes().get(78);
          internal_static_CMsgDOTACombatLogEntry_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_CMsgDOTACombatLogEntry_descriptor,
              new java.lang.String[] { "Type", "TargetName", "TargetSourceName", "AttackerName", "DamageSourceName", "InflictorName", "IsAttackerIllusion", "IsAttackerHero", "IsTargetIllusion", "IsTargetHero", "IsVisibleRadiant", "IsVisibleDire", "Value", "Health", "Timestamp", "StunDuration", "SlowDuration", "IsAbilityToggleOn", "IsAbilityToggleOff", "AbilityLevel", "LocationX", "LocationY", "GoldReason", "TimestampRaw", });
          return null;
        }
      };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          com.google.protobuf.DescriptorProtos.getDescriptor(),
          com.dota2.proto.Networkbasetypes.getDescriptor(),
          com.dota2.proto.AiActivity.getDescriptor(),
          com.dota2.proto.DotaCommonmessages.getDescriptor(),
        }, assigner);
  }

  // @@protoc_insertion_point(outer_class_scope)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy