// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.28.0
// 	protoc        v3.21.2
// source: dota_usermessages.proto

package demo

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type EDotaUserMessages int32

const (
	EDotaUserMessages_DOTA_UM_AddUnitToSelection         EDotaUserMessages = 464
	EDotaUserMessages_DOTA_UM_AIDebugLine                EDotaUserMessages = 465
	EDotaUserMessages_DOTA_UM_ChatEvent                  EDotaUserMessages = 466
	EDotaUserMessages_DOTA_UM_CombatHeroPositions        EDotaUserMessages = 467
	EDotaUserMessages_DOTA_UM_CombatLogData              EDotaUserMessages = 468
	EDotaUserMessages_DOTA_UM_CombatLogBulkData          EDotaUserMessages = 470
	EDotaUserMessages_DOTA_UM_CreateLinearProjectile     EDotaUserMessages = 471
	EDotaUserMessages_DOTA_UM_DestroyLinearProjectile    EDotaUserMessages = 472
	EDotaUserMessages_DOTA_UM_DodgeTrackingProjectiles   EDotaUserMessages = 473
	EDotaUserMessages_DOTA_UM_GlobalLightColor           EDotaUserMessages = 474
	EDotaUserMessages_DOTA_UM_GlobalLightDirection       EDotaUserMessages = 475
	EDotaUserMessages_DOTA_UM_InvalidCommand             EDotaUserMessages = 476
	EDotaUserMessages_DOTA_UM_LocationPing               EDotaUserMessages = 477
	EDotaUserMessages_DOTA_UM_MapLine                    EDotaUserMessages = 478
	EDotaUserMessages_DOTA_UM_MiniKillCamInfo            EDotaUserMessages = 479
	EDotaUserMessages_DOTA_UM_MinimapDebugPoint          EDotaUserMessages = 480
	EDotaUserMessages_DOTA_UM_MinimapEvent               EDotaUserMessages = 481
	EDotaUserMessages_DOTA_UM_NevermoreRequiem           EDotaUserMessages = 482
	EDotaUserMessages_DOTA_UM_OverheadEvent              EDotaUserMessages = 483
	EDotaUserMessages_DOTA_UM_SetNextAutobuyItem         EDotaUserMessages = 484
	EDotaUserMessages_DOTA_UM_SharedCooldown             EDotaUserMessages = 485
	EDotaUserMessages_DOTA_UM_SpectatorPlayerClick       EDotaUserMessages = 486
	EDotaUserMessages_DOTA_UM_TutorialTipInfo            EDotaUserMessages = 487
	EDotaUserMessages_DOTA_UM_UnitEvent                  EDotaUserMessages = 488
	EDotaUserMessages_DOTA_UM_ParticleManager            EDotaUserMessages = 489
	EDotaUserMessages_DOTA_UM_BotChat                    EDotaUserMessages = 490
	EDotaUserMessages_DOTA_UM_HudError                   EDotaUserMessages = 491
	EDotaUserMessages_DOTA_UM_ItemPurchased              EDotaUserMessages = 492
	EDotaUserMessages_DOTA_UM_Ping                       EDotaUserMessages = 493
	EDotaUserMessages_DOTA_UM_ItemFound                  EDotaUserMessages = 494
	EDotaUserMessages_DOTA_UM_CharacterSpeakConcept      EDotaUserMessages = 495
	EDotaUserMessages_DOTA_UM_SwapVerify                 EDotaUserMessages = 496
	EDotaUserMessages_DOTA_UM_WorldLine                  EDotaUserMessages = 497
	EDotaUserMessages_DOTA_UM_TournamentDrop             EDotaUserMessages = 498
	EDotaUserMessages_DOTA_UM_ItemAlert                  EDotaUserMessages = 499
	EDotaUserMessages_DOTA_UM_HalloweenDrops             EDotaUserMessages = 500
	EDotaUserMessages_DOTA_UM_ChatWheel                  EDotaUserMessages = 501
	EDotaUserMessages_DOTA_UM_ReceivedXmasGift           EDotaUserMessages = 502
	EDotaUserMessages_DOTA_UM_UpdateSharedContent        EDotaUserMessages = 503
	EDotaUserMessages_DOTA_UM_TutorialRequestExp         EDotaUserMessages = 504
	EDotaUserMessages_DOTA_UM_TutorialPingMinimap        EDotaUserMessages = 505
	EDotaUserMessages_DOTA_UM_GamerulesStateChanged      EDotaUserMessages = 506
	EDotaUserMessages_DOTA_UM_ShowSurvey                 EDotaUserMessages = 507
	EDotaUserMessages_DOTA_UM_TutorialFade               EDotaUserMessages = 508
	EDotaUserMessages_DOTA_UM_AddQuestLogEntry           EDotaUserMessages = 509
	EDotaUserMessages_DOTA_UM_SendStatPopup              EDotaUserMessages = 510
	EDotaUserMessages_DOTA_UM_TutorialFinish             EDotaUserMessages = 511
	EDotaUserMessages_DOTA_UM_SendRoshanPopup            EDotaUserMessages = 512
	EDotaUserMessages_DOTA_UM_SendGenericToolTip         EDotaUserMessages = 513
	EDotaUserMessages_DOTA_UM_SendFinalGold              EDotaUserMessages = 514
	EDotaUserMessages_DOTA_UM_CustomMsg                  EDotaUserMessages = 515
	EDotaUserMessages_DOTA_UM_CoachHUDPing               EDotaUserMessages = 516
	EDotaUserMessages_DOTA_UM_ClientLoadGridNav          EDotaUserMessages = 517
	EDotaUserMessages_DOTA_UM_TE_Projectile              EDotaUserMessages = 518
	EDotaUserMessages_DOTA_UM_TE_ProjectileLoc           EDotaUserMessages = 519
	EDotaUserMessages_DOTA_UM_TE_DotaBloodImpact         EDotaUserMessages = 520
	EDotaUserMessages_DOTA_UM_TE_UnitAnimation           EDotaUserMessages = 521
	EDotaUserMessages_DOTA_UM_TE_UnitAnimationEnd        EDotaUserMessages = 522
	EDotaUserMessages_DOTA_UM_AbilityPing                EDotaUserMessages = 523
	EDotaUserMessages_DOTA_UM_ShowGenericPopup           EDotaUserMessages = 524
	EDotaUserMessages_DOTA_UM_VoteStart                  EDotaUserMessages = 525
	EDotaUserMessages_DOTA_UM_VoteUpdate                 EDotaUserMessages = 526
	EDotaUserMessages_DOTA_UM_VoteEnd                    EDotaUserMessages = 527
	EDotaUserMessages_DOTA_UM_BoosterState               EDotaUserMessages = 528
	EDotaUserMessages_DOTA_UM_WillPurchaseAlert          EDotaUserMessages = 529
	EDotaUserMessages_DOTA_UM_TutorialMinimapPosition    EDotaUserMessages = 530
	EDotaUserMessages_DOTA_UM_PlayerMMR                  EDotaUserMessages = 531
	EDotaUserMessages_DOTA_UM_AbilitySteal               EDotaUserMessages = 532
	EDotaUserMessages_DOTA_UM_CourierKilledAlert         EDotaUserMessages = 533
	EDotaUserMessages_DOTA_UM_EnemyItemAlert             EDotaUserMessages = 534
	EDotaUserMessages_DOTA_UM_StatsMatchDetails          EDotaUserMessages = 535
	EDotaUserMessages_DOTA_UM_MiniTaunt                  EDotaUserMessages = 536
	EDotaUserMessages_DOTA_UM_BuyBackStateAlert          EDotaUserMessages = 537
	EDotaUserMessages_DOTA_UM_SpeechBubble               EDotaUserMessages = 538
	EDotaUserMessages_DOTA_UM_CustomHeaderMessage        EDotaUserMessages = 539
	EDotaUserMessages_DOTA_UM_QuickBuyAlert              EDotaUserMessages = 540
	EDotaUserMessages_DOTA_UM_StatsHeroDetails           EDotaUserMessages = 541
	EDotaUserMessages_DOTA_UM_PredictionResult           EDotaUserMessages = 542
	EDotaUserMessages_DOTA_UM_ModifierAlert              EDotaUserMessages = 543
	EDotaUserMessages_DOTA_UM_HPManaAlert                EDotaUserMessages = 544
	EDotaUserMessages_DOTA_UM_GlyphAlert                 EDotaUserMessages = 545
	EDotaUserMessages_DOTA_UM_BeastChat                  EDotaUserMessages = 546
	EDotaUserMessages_DOTA_UM_SpectatorPlayerUnitOrders  EDotaUserMessages = 547
	EDotaUserMessages_DOTA_UM_CustomHudElement_Create    EDotaUserMessages = 548
	EDotaUserMessages_DOTA_UM_CustomHudElement_Modify    EDotaUserMessages = 549
	EDotaUserMessages_DOTA_UM_CustomHudElement_Destroy   EDotaUserMessages = 550
	EDotaUserMessages_DOTA_UM_CompendiumState            EDotaUserMessages = 551
	EDotaUserMessages_DOTA_UM_ProjectionAbility          EDotaUserMessages = 552
	EDotaUserMessages_DOTA_UM_ProjectionEvent            EDotaUserMessages = 553
	EDotaUserMessages_DOTA_UM_CombatLogDataHLTV          EDotaUserMessages = 554
	EDotaUserMessages_DOTA_UM_XPAlert                    EDotaUserMessages = 555
	EDotaUserMessages_DOTA_UM_UpdateQuestProgress        EDotaUserMessages = 556
	EDotaUserMessages_DOTA_UM_MatchMetadata              EDotaUserMessages = 557
	EDotaUserMessages_DOTA_UM_MatchDetails               EDotaUserMessages = 558
	EDotaUserMessages_DOTA_UM_QuestStatus                EDotaUserMessages = 559
	EDotaUserMessages_DOTA_UM_SuggestHeroPick            EDotaUserMessages = 560
	EDotaUserMessages_DOTA_UM_SuggestHeroRole            EDotaUserMessages = 561
	EDotaUserMessages_DOTA_UM_KillcamDamageTaken         EDotaUserMessages = 562
	EDotaUserMessages_DOTA_UM_SelectPenaltyGold          EDotaUserMessages = 563
	EDotaUserMessages_DOTA_UM_RollDiceResult             EDotaUserMessages = 564
	EDotaUserMessages_DOTA_UM_FlipCoinResult             EDotaUserMessages = 565
	EDotaUserMessages_DOTA_UM_RequestItemSuggestions     EDotaUserMessages = 566
	EDotaUserMessages_DOTA_UM_TeamCaptainChanged         EDotaUserMessages = 567
	EDotaUserMessages_DOTA_UM_SendRoshanSpectatorPhase   EDotaUserMessages = 568
	EDotaUserMessages_DOTA_UM_ChatWheelCooldown          EDotaUserMessages = 569
	EDotaUserMessages_DOTA_UM_DismissAllStatPopups       EDotaUserMessages = 570
	EDotaUserMessages_DOTA_UM_TE_DestroyProjectile       EDotaUserMessages = 571
	EDotaUserMessages_DOTA_UM_HeroRelicProgress          EDotaUserMessages = 572
	EDotaUserMessages_DOTA_UM_AbilityDraftRequestAbility EDotaUserMessages = 573
	EDotaUserMessages_DOTA_UM_ItemSold                   EDotaUserMessages = 574
	EDotaUserMessages_DOTA_UM_DamageReport               EDotaUserMessages = 575
	EDotaUserMessages_DOTA_UM_SalutePlayer               EDotaUserMessages = 576
	EDotaUserMessages_DOTA_UM_TipAlert                   EDotaUserMessages = 577
	EDotaUserMessages_DOTA_UM_ReplaceQueryUnit           EDotaUserMessages = 578
	EDotaUserMessages_DOTA_UM_EmptyTeleportAlert         EDotaUserMessages = 579
	EDotaUserMessages_DOTA_UM_MarsArenaOfBloodAttack     EDotaUserMessages = 580
	EDotaUserMessages_DOTA_UM_ESArcanaCombo              EDotaUserMessages = 581
	EDotaUserMessages_DOTA_UM_ESArcanaComboSummary       EDotaUserMessages = 582
	EDotaUserMessages_DOTA_UM_HighFiveLeftHanging        EDotaUserMessages = 583
	EDotaUserMessages_DOTA_UM_HighFiveCompleted          EDotaUserMessages = 584
	EDotaUserMessages_DOTA_UM_ShovelUnearth              EDotaUserMessages = 585
	EDotaUserMessages_DOTA_EM_InvokerSpellCast           EDotaUserMessages = 586
	EDotaUserMessages_DOTA_UM_RadarAlert                 EDotaUserMessages = 587
	EDotaUserMessages_DOTA_UM_AllStarEvent               EDotaUserMessages = 588
	EDotaUserMessages_DOTA_UM_TalentTreeAlert            EDotaUserMessages = 589
	EDotaUserMessages_DOTA_UM_QueuedOrderRemoved         EDotaUserMessages = 590
	EDotaUserMessages_DOTA_UM_DebugChallenge             EDotaUserMessages = 591
	EDotaUserMessages_DOTA_UM_OMArcanaCombo              EDotaUserMessages = 592
	EDotaUserMessages_DOTA_UM_FoundNeutralItem           EDotaUserMessages = 593
	EDotaUserMessages_DOTA_UM_OutpostCaptured            EDotaUserMessages = 594
	EDotaUserMessages_DOTA_UM_OutpostGrantedXP           EDotaUserMessages = 595
	EDotaUserMessages_DOTA_UM_MoveCameraToUnit           EDotaUserMessages = 596
	EDotaUserMessages_DOTA_UM_PauseMinigameData          EDotaUserMessages = 597
	EDotaUserMessages_DOTA_UM_VersusScene_PlayerBehavior EDotaUserMessages = 598
	EDotaUserMessages_DOTA_UM_QoP_ArcanaSummary          EDotaUserMessages = 600
	EDotaUserMessages_DOTA_UM_HotPotato_Created          EDotaUserMessages = 601
	EDotaUserMessages_DOTA_UM_HotPotato_Exploded         EDotaUserMessages = 602
	EDotaUserMessages_DOTA_UM_WK_Arcana_Progress         EDotaUserMessages = 603
	EDotaUserMessages_DOTA_UM_GuildChallenge_Progress    EDotaUserMessages = 604
	EDotaUserMessages_DOTA_UM_WRArcanaProgress           EDotaUserMessages = 605
	EDotaUserMessages_DOTA_UM_WRArcanaSummary            EDotaUserMessages = 606
	EDotaUserMessages_DOTA_UM_EmptyItemSlotAlert         EDotaUserMessages = 607
	EDotaUserMessages_DOTA_UM_AghsStatusAlert            EDotaUserMessages = 608
	EDotaUserMessages_DOTA_UM_PingConfirmation           EDotaUserMessages = 609
	EDotaUserMessages_DOTA_UM_MutedPlayers               EDotaUserMessages = 610
	EDotaUserMessages_DOTA_UM_ContextualTip              EDotaUserMessages = 611
	EDotaUserMessages_DOTA_UM_ChatMessage                EDotaUserMessages = 612
)

// Enum value maps for EDotaUserMessages.
var (
	EDotaUserMessages_name = map[int32]string{
		464: "DOTA_UM_AddUnitToSelection",
		465: "DOTA_UM_AIDebugLine",
		466: "DOTA_UM_ChatEvent",
		467: "DOTA_UM_CombatHeroPositions",
		468: "DOTA_UM_CombatLogData",
		470: "DOTA_UM_CombatLogBulkData",
		471: "DOTA_UM_CreateLinearProjectile",
		472: "DOTA_UM_DestroyLinearProjectile",
		473: "DOTA_UM_DodgeTrackingProjectiles",
		474: "DOTA_UM_GlobalLightColor",
		475: "DOTA_UM_GlobalLightDirection",
		476: "DOTA_UM_InvalidCommand",
		477: "DOTA_UM_LocationPing",
		478: "DOTA_UM_MapLine",
		479: "DOTA_UM_MiniKillCamInfo",
		480: "DOTA_UM_MinimapDebugPoint",
		481: "DOTA_UM_MinimapEvent",
		482: "DOTA_UM_NevermoreRequiem",
		483: "DOTA_UM_OverheadEvent",
		484: "DOTA_UM_SetNextAutobuyItem",
		485: "DOTA_UM_SharedCooldown",
		486: "DOTA_UM_SpectatorPlayerClick",
		487: "DOTA_UM_TutorialTipInfo",
		488: "DOTA_UM_UnitEvent",
		489: "DOTA_UM_ParticleManager",
		490: "DOTA_UM_BotChat",
		491: "DOTA_UM_HudError",
		492: "DOTA_UM_ItemPurchased",
		493: "DOTA_UM_Ping",
		494: "DOTA_UM_ItemFound",
		495: "DOTA_UM_CharacterSpeakConcept",
		496: "DOTA_UM_SwapVerify",
		497: "DOTA_UM_WorldLine",
		498: "DOTA_UM_TournamentDrop",
		499: "DOTA_UM_ItemAlert",
		500: "DOTA_UM_HalloweenDrops",
		501: "DOTA_UM_ChatWheel",
		502: "DOTA_UM_ReceivedXmasGift",
		503: "DOTA_UM_UpdateSharedContent",
		504: "DOTA_UM_TutorialRequestExp",
		505: "DOTA_UM_TutorialPingMinimap",
		506: "DOTA_UM_GamerulesStateChanged",
		507: "DOTA_UM_ShowSurvey",
		508: "DOTA_UM_TutorialFade",
		509: "DOTA_UM_AddQuestLogEntry",
		510: "DOTA_UM_SendStatPopup",
		511: "DOTA_UM_TutorialFinish",
		512: "DOTA_UM_SendRoshanPopup",
		513: "DOTA_UM_SendGenericToolTip",
		514: "DOTA_UM_SendFinalGold",
		515: "DOTA_UM_CustomMsg",
		516: "DOTA_UM_CoachHUDPing",
		517: "DOTA_UM_ClientLoadGridNav",
		518: "DOTA_UM_TE_Projectile",
		519: "DOTA_UM_TE_ProjectileLoc",
		520: "DOTA_UM_TE_DotaBloodImpact",
		521: "DOTA_UM_TE_UnitAnimation",
		522: "DOTA_UM_TE_UnitAnimationEnd",
		523: "DOTA_UM_AbilityPing",
		524: "DOTA_UM_ShowGenericPopup",
		525: "DOTA_UM_VoteStart",
		526: "DOTA_UM_VoteUpdate",
		527: "DOTA_UM_VoteEnd",
		528: "DOTA_UM_BoosterState",
		529: "DOTA_UM_WillPurchaseAlert",
		530: "DOTA_UM_TutorialMinimapPosition",
		531: "DOTA_UM_PlayerMMR",
		532: "DOTA_UM_AbilitySteal",
		533: "DOTA_UM_CourierKilledAlert",
		534: "DOTA_UM_EnemyItemAlert",
		535: "DOTA_UM_StatsMatchDetails",
		536: "DOTA_UM_MiniTaunt",
		537: "DOTA_UM_BuyBackStateAlert",
		538: "DOTA_UM_SpeechBubble",
		539: "DOTA_UM_CustomHeaderMessage",
		540: "DOTA_UM_QuickBuyAlert",
		541: "DOTA_UM_StatsHeroDetails",
		542: "DOTA_UM_PredictionResult",
		543: "DOTA_UM_ModifierAlert",
		544: "DOTA_UM_HPManaAlert",
		545: "DOTA_UM_GlyphAlert",
		546: "DOTA_UM_BeastChat",
		547: "DOTA_UM_SpectatorPlayerUnitOrders",
		548: "DOTA_UM_CustomHudElement_Create",
		549: "DOTA_UM_CustomHudElement_Modify",
		550: "DOTA_UM_CustomHudElement_Destroy",
		551: "DOTA_UM_CompendiumState",
		552: "DOTA_UM_ProjectionAbility",
		553: "DOTA_UM_ProjectionEvent",
		554: "DOTA_UM_CombatLogDataHLTV",
		555: "DOTA_UM_XPAlert",
		556: "DOTA_UM_UpdateQuestProgress",
		557: "DOTA_UM_MatchMetadata",
		558: "DOTA_UM_MatchDetails",
		559: "DOTA_UM_QuestStatus",
		560: "DOTA_UM_SuggestHeroPick",
		561: "DOTA_UM_SuggestHeroRole",
		562: "DOTA_UM_KillcamDamageTaken",
		563: "DOTA_UM_SelectPenaltyGold",
		564: "DOTA_UM_RollDiceResult",
		565: "DOTA_UM_FlipCoinResult",
		566: "DOTA_UM_RequestItemSuggestions",
		567: "DOTA_UM_TeamCaptainChanged",
		568: "DOTA_UM_SendRoshanSpectatorPhase",
		569: "DOTA_UM_ChatWheelCooldown",
		570: "DOTA_UM_DismissAllStatPopups",
		571: "DOTA_UM_TE_DestroyProjectile",
		572: "DOTA_UM_HeroRelicProgress",
		573: "DOTA_UM_AbilityDraftRequestAbility",
		574: "DOTA_UM_ItemSold",
		575: "DOTA_UM_DamageReport",
		576: "DOTA_UM_SalutePlayer",
		577: "DOTA_UM_TipAlert",
		578: "DOTA_UM_ReplaceQueryUnit",
		579: "DOTA_UM_EmptyTeleportAlert",
		580: "DOTA_UM_MarsArenaOfBloodAttack",
		581: "DOTA_UM_ESArcanaCombo",
		582: "DOTA_UM_ESArcanaComboSummary",
		583: "DOTA_UM_HighFiveLeftHanging",
		584: "DOTA_UM_HighFiveCompleted",
		585: "DOTA_UM_ShovelUnearth",
		586: "DOTA_EM_InvokerSpellCast",
		587: "DOTA_UM_RadarAlert",
		588: "DOTA_UM_AllStarEvent",
		589: "DOTA_UM_TalentTreeAlert",
		590: "DOTA_UM_QueuedOrderRemoved",
		591: "DOTA_UM_DebugChallenge",
		592: "DOTA_UM_OMArcanaCombo",
		593: "DOTA_UM_FoundNeutralItem",
		594: "DOTA_UM_OutpostCaptured",
		595: "DOTA_UM_OutpostGrantedXP",
		596: "DOTA_UM_MoveCameraToUnit",
		597: "DOTA_UM_PauseMinigameData",
		598: "DOTA_UM_VersusScene_PlayerBehavior",
		600: "DOTA_UM_QoP_ArcanaSummary",
		601: "DOTA_UM_HotPotato_Created",
		602: "DOTA_UM_HotPotato_Exploded",
		603: "DOTA_UM_WK_Arcana_Progress",
		604: "DOTA_UM_GuildChallenge_Progress",
		605: "DOTA_UM_WRArcanaProgress",
		606: "DOTA_UM_WRArcanaSummary",
		607: "DOTA_UM_EmptyItemSlotAlert",
		608: "DOTA_UM_AghsStatusAlert",
		609: "DOTA_UM_PingConfirmation",
		610: "DOTA_UM_MutedPlayers",
		611: "DOTA_UM_ContextualTip",
		612: "DOTA_UM_ChatMessage",
	}
	EDotaUserMessages_value = map[string]int32{
		"DOTA_UM_AddUnitToSelection":         464,
		"DOTA_UM_AIDebugLine":                465,
		"DOTA_UM_ChatEvent":                  466,
		"DOTA_UM_CombatHeroPositions":        467,
		"DOTA_UM_CombatLogData":              468,
		"DOTA_UM_CombatLogBulkData":          470,
		"DOTA_UM_CreateLinearProjectile":     471,
		"DOTA_UM_DestroyLinearProjectile":    472,
		"DOTA_UM_DodgeTrackingProjectiles":   473,
		"DOTA_UM_GlobalLightColor":           474,
		"DOTA_UM_GlobalLightDirection":       475,
		"DOTA_UM_InvalidCommand":             476,
		"DOTA_UM_LocationPing":               477,
		"DOTA_UM_MapLine":                    478,
		"DOTA_UM_MiniKillCamInfo":            479,
		"DOTA_UM_MinimapDebugPoint":          480,
		"DOTA_UM_MinimapEvent":               481,
		"DOTA_UM_NevermoreRequiem":           482,
		"DOTA_UM_OverheadEvent":              483,
		"DOTA_UM_SetNextAutobuyItem":         484,
		"DOTA_UM_SharedCooldown":             485,
		"DOTA_UM_SpectatorPlayerClick":       486,
		"DOTA_UM_TutorialTipInfo":            487,
		"DOTA_UM_UnitEvent":                  488,
		"DOTA_UM_ParticleManager":            489,
		"DOTA_UM_BotChat":                    490,
		"DOTA_UM_HudError":                   491,
		"DOTA_UM_ItemPurchased":              492,
		"DOTA_UM_Ping":                       493,
		"DOTA_UM_ItemFound":                  494,
		"DOTA_UM_CharacterSpeakConcept":      495,
		"DOTA_UM_SwapVerify":                 496,
		"DOTA_UM_WorldLine":                  497,
		"DOTA_UM_TournamentDrop":             498,
		"DOTA_UM_ItemAlert":                  499,
		"DOTA_UM_HalloweenDrops":             500,
		"DOTA_UM_ChatWheel":                  501,
		"DOTA_UM_ReceivedXmasGift":           502,
		"DOTA_UM_UpdateSharedContent":        503,
		"DOTA_UM_TutorialRequestExp":         504,
		"DOTA_UM_TutorialPingMinimap":        505,
		"DOTA_UM_GamerulesStateChanged":      506,
		"DOTA_UM_ShowSurvey":                 507,
		"DOTA_UM_TutorialFade":               508,
		"DOTA_UM_AddQuestLogEntry":           509,
		"DOTA_UM_SendStatPopup":              510,
		"DOTA_UM_TutorialFinish":             511,
		"DOTA_UM_SendRoshanPopup":            512,
		"DOTA_UM_SendGenericToolTip":         513,
		"DOTA_UM_SendFinalGold":              514,
		"DOTA_UM_CustomMsg":                  515,
		"DOTA_UM_CoachHUDPing":               516,
		"DOTA_UM_ClientLoadGridNav":          517,
		"DOTA_UM_TE_Projectile":              518,
		"DOTA_UM_TE_ProjectileLoc":           519,
		"DOTA_UM_TE_DotaBloodImpact":         520,
		"DOTA_UM_TE_UnitAnimation":           521,
		"DOTA_UM_TE_UnitAnimationEnd":        522,
		"DOTA_UM_AbilityPing":                523,
		"DOTA_UM_ShowGenericPopup":           524,
		"DOTA_UM_VoteStart":                  525,
		"DOTA_UM_VoteUpdate":                 526,
		"DOTA_UM_VoteEnd":                    527,
		"DOTA_UM_BoosterState":               528,
		"DOTA_UM_WillPurchaseAlert":          529,
		"DOTA_UM_TutorialMinimapPosition":    530,
		"DOTA_UM_PlayerMMR":                  531,
		"DOTA_UM_AbilitySteal":               532,
		"DOTA_UM_CourierKilledAlert":         533,
		"DOTA_UM_EnemyItemAlert":             534,
		"DOTA_UM_StatsMatchDetails":          535,
		"DOTA_UM_MiniTaunt":                  536,
		"DOTA_UM_BuyBackStateAlert":          537,
		"DOTA_UM_SpeechBubble":               538,
		"DOTA_UM_CustomHeaderMessage":        539,
		"DOTA_UM_QuickBuyAlert":              540,
		"DOTA_UM_StatsHeroDetails":           541,
		"DOTA_UM_PredictionResult":           542,
		"DOTA_UM_ModifierAlert":              543,
		"DOTA_UM_HPManaAlert":                544,
		"DOTA_UM_GlyphAlert":                 545,
		"DOTA_UM_BeastChat":                  546,
		"DOTA_UM_SpectatorPlayerUnitOrders":  547,
		"DOTA_UM_CustomHudElement_Create":    548,
		"DOTA_UM_CustomHudElement_Modify":    549,
		"DOTA_UM_CustomHudElement_Destroy":   550,
		"DOTA_UM_CompendiumState":            551,
		"DOTA_UM_ProjectionAbility":          552,
		"DOTA_UM_ProjectionEvent":            553,
		"DOTA_UM_CombatLogDataHLTV":          554,
		"DOTA_UM_XPAlert":                    555,
		"DOTA_UM_UpdateQuestProgress":        556,
		"DOTA_UM_MatchMetadata":              557,
		"DOTA_UM_MatchDetails":               558,
		"DOTA_UM_QuestStatus":                559,
		"DOTA_UM_SuggestHeroPick":            560,
		"DOTA_UM_SuggestHeroRole":            561,
		"DOTA_UM_KillcamDamageTaken":         562,
		"DOTA_UM_SelectPenaltyGold":          563,
		"DOTA_UM_RollDiceResult":             564,
		"DOTA_UM_FlipCoinResult":             565,
		"DOTA_UM_RequestItemSuggestions":     566,
		"DOTA_UM_TeamCaptainChanged":         567,
		"DOTA_UM_SendRoshanSpectatorPhase":   568,
		"DOTA_UM_ChatWheelCooldown":          569,
		"DOTA_UM_DismissAllStatPopups":       570,
		"DOTA_UM_TE_DestroyProjectile":       571,
		"DOTA_UM_HeroRelicProgress":          572,
		"DOTA_UM_AbilityDraftRequestAbility": 573,
		"DOTA_UM_ItemSold":                   574,
		"DOTA_UM_DamageReport":               575,
		"DOTA_UM_SalutePlayer":               576,
		"DOTA_UM_TipAlert":                   577,
		"DOTA_UM_ReplaceQueryUnit":           578,
		"DOTA_UM_EmptyTeleportAlert":         579,
		"DOTA_UM_MarsArenaOfBloodAttack":     580,
		"DOTA_UM_ESArcanaCombo":              581,
		"DOTA_UM_ESArcanaComboSummary":       582,
		"DOTA_UM_HighFiveLeftHanging":        583,
		"DOTA_UM_HighFiveCompleted":          584,
		"DOTA_UM_ShovelUnearth":              585,
		"DOTA_EM_InvokerSpellCast":           586,
		"DOTA_UM_RadarAlert":                 587,
		"DOTA_UM_AllStarEvent":               588,
		"DOTA_UM_TalentTreeAlert":            589,
		"DOTA_UM_QueuedOrderRemoved":         590,
		"DOTA_UM_DebugChallenge":             591,
		"DOTA_UM_OMArcanaCombo":              592,
		"DOTA_UM_FoundNeutralItem":           593,
		"DOTA_UM_OutpostCaptured":            594,
		"DOTA_UM_OutpostGrantedXP":           595,
		"DOTA_UM_MoveCameraToUnit":           596,
		"DOTA_UM_PauseMinigameData":          597,
		"DOTA_UM_VersusScene_PlayerBehavior": 598,
		"DOTA_UM_QoP_ArcanaSummary":          600,
		"DOTA_UM_HotPotato_Created":          601,
		"DOTA_UM_HotPotato_Exploded":         602,
		"DOTA_UM_WK_Arcana_Progress":         603,
		"DOTA_UM_GuildChallenge_Progress":    604,
		"DOTA_UM_WRArcanaProgress":           605,
		"DOTA_UM_WRArcanaSummary":            606,
		"DOTA_UM_EmptyItemSlotAlert":         607,
		"DOTA_UM_AghsStatusAlert":            608,
		"DOTA_UM_PingConfirmation":           609,
		"DOTA_UM_MutedPlayers":               610,
		"DOTA_UM_ContextualTip":              611,
		"DOTA_UM_ChatMessage":                612,
	}
)

func (x EDotaUserMessages) Enum() *EDotaUserMessages {
	p := new(EDotaUserMessages)
	*p = x
	return p
}

func (x EDotaUserMessages) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (EDotaUserMessages) Descriptor() protoreflect.EnumDescriptor {
	return file_dota_usermessages_proto_enumTypes[0].Descriptor()
}

func (EDotaUserMessages) Type() protoreflect.EnumType {
	return &file_dota_usermessages_proto_enumTypes[0]
}

func (x EDotaUserMessages) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Do not use.
func (x *EDotaUserMessages) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = EDotaUserMessages(num)
	return nil
}

// Deprecated: Use EDotaUserMessages.Descriptor instead.
func (EDotaUserMessages) EnumDescriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{0}
}

type DOTA_CHAT_MESSAGE int32

const (
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_INVALID                                   DOTA_CHAT_MESSAGE = -1
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_HERO_KILL                                 DOTA_CHAT_MESSAGE = 0
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_HERO_DENY                                 DOTA_CHAT_MESSAGE = 1
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_BARRACKS_KILL                             DOTA_CHAT_MESSAGE = 2
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_TOWER_KILL                                DOTA_CHAT_MESSAGE = 3
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_TOWER_DENY                                DOTA_CHAT_MESSAGE = 4
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_FIRSTBLOOD                                DOTA_CHAT_MESSAGE = 5
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_STREAK_KILL                               DOTA_CHAT_MESSAGE = 6
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_BUYBACK                                   DOTA_CHAT_MESSAGE = 7
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_AEGIS                                     DOTA_CHAT_MESSAGE = 8
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_ROSHAN_KILL                               DOTA_CHAT_MESSAGE = 9
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_COURIER_LOST                              DOTA_CHAT_MESSAGE = 10
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_COURIER_RESPAWNED                         DOTA_CHAT_MESSAGE = 11
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_GLYPH_USED                                DOTA_CHAT_MESSAGE = 12
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_ITEM_PURCHASE                             DOTA_CHAT_MESSAGE = 13
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_CONNECT                                   DOTA_CHAT_MESSAGE = 14
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_DISCONNECT                                DOTA_CHAT_MESSAGE = 15
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_DISCONNECT_WAIT_FOR_RECONNECT             DOTA_CHAT_MESSAGE = 16
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_DISCONNECT_TIME_REMAINING                 DOTA_CHAT_MESSAGE = 17
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_DISCONNECT_TIME_REMAINING_PLURAL          DOTA_CHAT_MESSAGE = 18
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_RECONNECT                                 DOTA_CHAT_MESSAGE = 19
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_PLAYER_LEFT                               DOTA_CHAT_MESSAGE = 20
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_SAFE_TO_LEAVE                             DOTA_CHAT_MESSAGE = 21
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_RUNE_PICKUP                               DOTA_CHAT_MESSAGE = 22
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_RUNE_BOTTLE                               DOTA_CHAT_MESSAGE = 23
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_RUNE_DENY                                 DOTA_CHAT_MESSAGE = 114
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_INTHEBAG                                  DOTA_CHAT_MESSAGE = 24
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_SECRETSHOP                                DOTA_CHAT_MESSAGE = 25
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_ITEM_AUTOPURCHASED                        DOTA_CHAT_MESSAGE = 26
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_ITEMS_COMBINED                            DOTA_CHAT_MESSAGE = 27
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_SUPER_CREEPS                              DOTA_CHAT_MESSAGE = 28
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_CANT_USE_ACTION_ITEM                      DOTA_CHAT_MESSAGE = 29
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_CANTPAUSE                                 DOTA_CHAT_MESSAGE = 31
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_NOPAUSESLEFT                              DOTA_CHAT_MESSAGE = 32
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_CANTPAUSEYET                              DOTA_CHAT_MESSAGE = 33
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_PAUSED                                    DOTA_CHAT_MESSAGE = 34
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_UNPAUSE_COUNTDOWN                         DOTA_CHAT_MESSAGE = 35
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_UNPAUSED                                  DOTA_CHAT_MESSAGE = 36
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_AUTO_UNPAUSED                             DOTA_CHAT_MESSAGE = 37
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_YOUPAUSED                                 DOTA_CHAT_MESSAGE = 38
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_CANTUNPAUSETEAM                           DOTA_CHAT_MESSAGE = 39
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_VOICE_TEXT_BANNED                         DOTA_CHAT_MESSAGE = 41
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_SPECTATORS_WATCHING_THIS_GAME             DOTA_CHAT_MESSAGE = 42
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_REPORT_REMINDER                           DOTA_CHAT_MESSAGE = 43
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_ECON_ITEM                                 DOTA_CHAT_MESSAGE = 44
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_TAUNT                                     DOTA_CHAT_MESSAGE = 45
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_RANDOM                                    DOTA_CHAT_MESSAGE = 46
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_RD_TURN                                   DOTA_CHAT_MESSAGE = 47
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_DROP_RATE_BONUS                           DOTA_CHAT_MESSAGE = 49
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_NO_BATTLE_POINTS                          DOTA_CHAT_MESSAGE = 50
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_DENIED_AEGIS                              DOTA_CHAT_MESSAGE = 51
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_INFORMATIONAL                             DOTA_CHAT_MESSAGE = 52
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_AEGIS_STOLEN                              DOTA_CHAT_MESSAGE = 53
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_ROSHAN_CANDY                              DOTA_CHAT_MESSAGE = 54
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_ITEM_GIFTED                               DOTA_CHAT_MESSAGE = 55
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_HERO_KILL_WITH_GREEVIL                    DOTA_CHAT_MESSAGE = 56
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_HOLDOUT_TOWER_DESTROYED                   DOTA_CHAT_MESSAGE = 57
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_HOLDOUT_WALL_DESTROYED                    DOTA_CHAT_MESSAGE = 58
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_HOLDOUT_WALL_FINISHED                     DOTA_CHAT_MESSAGE = 59
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_PLAYER_LEFT_LIMITED_HERO                  DOTA_CHAT_MESSAGE = 62
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_ABANDON_LIMITED_HERO_EXPLANATION          DOTA_CHAT_MESSAGE = 63
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_DISCONNECT_LIMITED_HERO                   DOTA_CHAT_MESSAGE = 64
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_LOW_PRIORITY_COMPLETED_EXPLANATION        DOTA_CHAT_MESSAGE = 65
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_RECRUITMENT_DROP_RATE_BONUS               DOTA_CHAT_MESSAGE = 66
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_FROSTIVUS_SHINING_BOOSTER_ACTIVE          DOTA_CHAT_MESSAGE = 67
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_PLAYER_LEFT_AFK                           DOTA_CHAT_MESSAGE = 73
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_PLAYER_LEFT_DISCONNECTED_TOO_LONG         DOTA_CHAT_MESSAGE = 74
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_PLAYER_ABANDONED                          DOTA_CHAT_MESSAGE = 75
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_PLAYER_ABANDONED_AFK                      DOTA_CHAT_MESSAGE = 76
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_PLAYER_ABANDONED_DISCONNECTED_TOO_LONG    DOTA_CHAT_MESSAGE = 77
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_WILL_NOT_BE_SCORED                        DOTA_CHAT_MESSAGE = 78
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_WILL_NOT_BE_SCORED_RANKED                 DOTA_CHAT_MESSAGE = 79
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK                DOTA_CHAT_MESSAGE = 80
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK_RANKED         DOTA_CHAT_MESSAGE = 81
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_CAN_QUIT_WITHOUT_ABANDON                  DOTA_CHAT_MESSAGE = 82
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_RANKED_GAME_STILL_SCORED_LEAVERS_GET_LOSS DOTA_CHAT_MESSAGE = 83
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_ABANDON_RANKED_BEFORE_FIRST_BLOOD_PARTY   DOTA_CHAT_MESSAGE = 84
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_COMPENDIUM_LEVEL                          DOTA_CHAT_MESSAGE = 85
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_VICTORY_PREDICTION_STREAK                 DOTA_CHAT_MESSAGE = 86
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_ASSASSIN_ANNOUNCE                         DOTA_CHAT_MESSAGE = 87
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_ASSASSIN_SUCCESS                          DOTA_CHAT_MESSAGE = 88
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_ASSASSIN_DENIED                           DOTA_CHAT_MESSAGE = 89
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_VICTORY_PREDICTION_SINGLE_USER_CONFIRM    DOTA_CHAT_MESSAGE = 90
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_EFFIGY_KILL                               DOTA_CHAT_MESSAGE = 91
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_VOICE_TEXT_BANNED_OVERFLOW                DOTA_CHAT_MESSAGE = 92
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_YEAR_BEAST_KILLED                         DOTA_CHAT_MESSAGE = 93
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_PAUSE_COUNTDOWN                           DOTA_CHAT_MESSAGE = 94
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_COINS_WAGERED                             DOTA_CHAT_MESSAGE = 95
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_HERO_NOMINATED_BAN                        DOTA_CHAT_MESSAGE = 96
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_HERO_BANNED                               DOTA_CHAT_MESSAGE = 97
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_HERO_BAN_COUNT                            DOTA_CHAT_MESSAGE = 98
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_RIVER_PAINTED                             DOTA_CHAT_MESSAGE = 99
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_SCAN_USED                                 DOTA_CHAT_MESSAGE = 100
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_SHRINE_KILLED                             DOTA_CHAT_MESSAGE = 101
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_WAGER_TOKEN_SPENT                         DOTA_CHAT_MESSAGE = 102
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_RANK_WAGER                                DOTA_CHAT_MESSAGE = 103
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_NEW_PLAYER_REMINDER                       DOTA_CHAT_MESSAGE = 104
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_OBSERVER_WARD_KILLED                      DOTA_CHAT_MESSAGE = 105
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_SENTRY_WARD_KILLED                        DOTA_CHAT_MESSAGE = 106
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_ITEM_PLACED_IN_NEUTRAL_STASH              DOTA_CHAT_MESSAGE = 107
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_HERO_CHOICE_INVALID                       DOTA_CHAT_MESSAGE = 108
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_BOUNTY                                    DOTA_CHAT_MESSAGE = 109
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_ABILITY_DRAFT_START                       DOTA_CHAT_MESSAGE = 110
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_HERO_FOUND_CANDY                          DOTA_CHAT_MESSAGE = 111
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_ABILITY_DRAFT_RANDOMED                    DOTA_CHAT_MESSAGE = 112
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_PRIVATE_COACH_CONNECTED                   DOTA_CHAT_MESSAGE = 113
	DOTA_CHAT_MESSAGE_CHAT_MESSAGE_CANT_PAUSE_TOO_EARLY                      DOTA_CHAT_MESSAGE = 115
)

// Enum value maps for DOTA_CHAT_MESSAGE.
var (
	DOTA_CHAT_MESSAGE_name = map[int32]string{
		-1:  "CHAT_MESSAGE_INVALID",
		0:   "CHAT_MESSAGE_HERO_KILL",
		1:   "CHAT_MESSAGE_HERO_DENY",
		2:   "CHAT_MESSAGE_BARRACKS_KILL",
		3:   "CHAT_MESSAGE_TOWER_KILL",
		4:   "CHAT_MESSAGE_TOWER_DENY",
		5:   "CHAT_MESSAGE_FIRSTBLOOD",
		6:   "CHAT_MESSAGE_STREAK_KILL",
		7:   "CHAT_MESSAGE_BUYBACK",
		8:   "CHAT_MESSAGE_AEGIS",
		9:   "CHAT_MESSAGE_ROSHAN_KILL",
		10:  "CHAT_MESSAGE_COURIER_LOST",
		11:  "CHAT_MESSAGE_COURIER_RESPAWNED",
		12:  "CHAT_MESSAGE_GLYPH_USED",
		13:  "CHAT_MESSAGE_ITEM_PURCHASE",
		14:  "CHAT_MESSAGE_CONNECT",
		15:  "CHAT_MESSAGE_DISCONNECT",
		16:  "CHAT_MESSAGE_DISCONNECT_WAIT_FOR_RECONNECT",
		17:  "CHAT_MESSAGE_DISCONNECT_TIME_REMAINING",
		18:  "CHAT_MESSAGE_DISCONNECT_TIME_REMAINING_PLURAL",
		19:  "CHAT_MESSAGE_RECONNECT",
		20:  "CHAT_MESSAGE_PLAYER_LEFT",
		21:  "CHAT_MESSAGE_SAFE_TO_LEAVE",
		22:  "CHAT_MESSAGE_RUNE_PICKUP",
		23:  "CHAT_MESSAGE_RUNE_BOTTLE",
		114: "CHAT_MESSAGE_RUNE_DENY",
		24:  "CHAT_MESSAGE_INTHEBAG",
		25:  "CHAT_MESSAGE_SECRETSHOP",
		26:  "CHAT_MESSAGE_ITEM_AUTOPURCHASED",
		27:  "CHAT_MESSAGE_ITEMS_COMBINED",
		28:  "CHAT_MESSAGE_SUPER_CREEPS",
		29:  "CHAT_MESSAGE_CANT_USE_ACTION_ITEM",
		31:  "CHAT_MESSAGE_CANTPAUSE",
		32:  "CHAT_MESSAGE_NOPAUSESLEFT",
		33:  "CHAT_MESSAGE_CANTPAUSEYET",
		34:  "CHAT_MESSAGE_PAUSED",
		35:  "CHAT_MESSAGE_UNPAUSE_COUNTDOWN",
		36:  "CHAT_MESSAGE_UNPAUSED",
		37:  "CHAT_MESSAGE_AUTO_UNPAUSED",
		38:  "CHAT_MESSAGE_YOUPAUSED",
		39:  "CHAT_MESSAGE_CANTUNPAUSETEAM",
		41:  "CHAT_MESSAGE_VOICE_TEXT_BANNED",
		42:  "CHAT_MESSAGE_SPECTATORS_WATCHING_THIS_GAME",
		43:  "CHAT_MESSAGE_REPORT_REMINDER",
		44:  "CHAT_MESSAGE_ECON_ITEM",
		45:  "CHAT_MESSAGE_TAUNT",
		46:  "CHAT_MESSAGE_RANDOM",
		47:  "CHAT_MESSAGE_RD_TURN",
		49:  "CHAT_MESSAGE_DROP_RATE_BONUS",
		50:  "CHAT_MESSAGE_NO_BATTLE_POINTS",
		51:  "CHAT_MESSAGE_DENIED_AEGIS",
		52:  "CHAT_MESSAGE_INFORMATIONAL",
		53:  "CHAT_MESSAGE_AEGIS_STOLEN",
		54:  "CHAT_MESSAGE_ROSHAN_CANDY",
		55:  "CHAT_MESSAGE_ITEM_GIFTED",
		56:  "CHAT_MESSAGE_HERO_KILL_WITH_GREEVIL",
		57:  "CHAT_MESSAGE_HOLDOUT_TOWER_DESTROYED",
		58:  "CHAT_MESSAGE_HOLDOUT_WALL_DESTROYED",
		59:  "CHAT_MESSAGE_HOLDOUT_WALL_FINISHED",
		62:  "CHAT_MESSAGE_PLAYER_LEFT_LIMITED_HERO",
		63:  "CHAT_MESSAGE_ABANDON_LIMITED_HERO_EXPLANATION",
		64:  "CHAT_MESSAGE_DISCONNECT_LIMITED_HERO",
		65:  "CHAT_MESSAGE_LOW_PRIORITY_COMPLETED_EXPLANATION",
		66:  "CHAT_MESSAGE_RECRUITMENT_DROP_RATE_BONUS",
		67:  "CHAT_MESSAGE_FROSTIVUS_SHINING_BOOSTER_ACTIVE",
		73:  "CHAT_MESSAGE_PLAYER_LEFT_AFK",
		74:  "CHAT_MESSAGE_PLAYER_LEFT_DISCONNECTED_TOO_LONG",
		75:  "CHAT_MESSAGE_PLAYER_ABANDONED",
		76:  "CHAT_MESSAGE_PLAYER_ABANDONED_AFK",
		77:  "CHAT_MESSAGE_PLAYER_ABANDONED_DISCONNECTED_TOO_LONG",
		78:  "CHAT_MESSAGE_WILL_NOT_BE_SCORED",
		79:  "CHAT_MESSAGE_WILL_NOT_BE_SCORED_RANKED",
		80:  "CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK",
		81:  "CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK_RANKED",
		82:  "CHAT_MESSAGE_CAN_QUIT_WITHOUT_ABANDON",
		83:  "CHAT_MESSAGE_RANKED_GAME_STILL_SCORED_LEAVERS_GET_LOSS",
		84:  "CHAT_MESSAGE_ABANDON_RANKED_BEFORE_FIRST_BLOOD_PARTY",
		85:  "CHAT_MESSAGE_COMPENDIUM_LEVEL",
		86:  "CHAT_MESSAGE_VICTORY_PREDICTION_STREAK",
		87:  "CHAT_MESSAGE_ASSASSIN_ANNOUNCE",
		88:  "CHAT_MESSAGE_ASSASSIN_SUCCESS",
		89:  "CHAT_MESSAGE_ASSASSIN_DENIED",
		90:  "CHAT_MESSAGE_VICTORY_PREDICTION_SINGLE_USER_CONFIRM",
		91:  "CHAT_MESSAGE_EFFIGY_KILL",
		92:  "CHAT_MESSAGE_VOICE_TEXT_BANNED_OVERFLOW",
		93:  "CHAT_MESSAGE_YEAR_BEAST_KILLED",
		94:  "CHAT_MESSAGE_PAUSE_COUNTDOWN",
		95:  "CHAT_MESSAGE_COINS_WAGERED",
		96:  "CHAT_MESSAGE_HERO_NOMINATED_BAN",
		97:  "CHAT_MESSAGE_HERO_BANNED",
		98:  "CHAT_MESSAGE_HERO_BAN_COUNT",
		99:  "CHAT_MESSAGE_RIVER_PAINTED",
		100: "CHAT_MESSAGE_SCAN_USED",
		101: "CHAT_MESSAGE_SHRINE_KILLED",
		102: "CHAT_MESSAGE_WAGER_TOKEN_SPENT",
		103: "CHAT_MESSAGE_RANK_WAGER",
		104: "CHAT_MESSAGE_NEW_PLAYER_REMINDER",
		105: "CHAT_MESSAGE_OBSERVER_WARD_KILLED",
		106: "CHAT_MESSAGE_SENTRY_WARD_KILLED",
		107: "CHAT_MESSAGE_ITEM_PLACED_IN_NEUTRAL_STASH",
		108: "CHAT_MESSAGE_HERO_CHOICE_INVALID",
		109: "CHAT_MESSAGE_BOUNTY",
		110: "CHAT_MESSAGE_ABILITY_DRAFT_START",
		111: "CHAT_MESSAGE_HERO_FOUND_CANDY",
		112: "CHAT_MESSAGE_ABILITY_DRAFT_RANDOMED",
		113: "CHAT_MESSAGE_PRIVATE_COACH_CONNECTED",
		115: "CHAT_MESSAGE_CANT_PAUSE_TOO_EARLY",
	}
	DOTA_CHAT_MESSAGE_value = map[string]int32{
		"CHAT_MESSAGE_INVALID":                                   -1,
		"CHAT_MESSAGE_HERO_KILL":                                 0,
		"CHAT_MESSAGE_HERO_DENY":                                 1,
		"CHAT_MESSAGE_BARRACKS_KILL":                             2,
		"CHAT_MESSAGE_TOWER_KILL":                                3,
		"CHAT_MESSAGE_TOWER_DENY":                                4,
		"CHAT_MESSAGE_FIRSTBLOOD":                                5,
		"CHAT_MESSAGE_STREAK_KILL":                               6,
		"CHAT_MESSAGE_BUYBACK":                                   7,
		"CHAT_MESSAGE_AEGIS":                                     8,
		"CHAT_MESSAGE_ROSHAN_KILL":                               9,
		"CHAT_MESSAGE_COURIER_LOST":                              10,
		"CHAT_MESSAGE_COURIER_RESPAWNED":                         11,
		"CHAT_MESSAGE_GLYPH_USED":                                12,
		"CHAT_MESSAGE_ITEM_PURCHASE":                             13,
		"CHAT_MESSAGE_CONNECT":                                   14,
		"CHAT_MESSAGE_DISCONNECT":                                15,
		"CHAT_MESSAGE_DISCONNECT_WAIT_FOR_RECONNECT":             16,
		"CHAT_MESSAGE_DISCONNECT_TIME_REMAINING":                 17,
		"CHAT_MESSAGE_DISCONNECT_TIME_REMAINING_PLURAL":          18,
		"CHAT_MESSAGE_RECONNECT":                                 19,
		"CHAT_MESSAGE_PLAYER_LEFT":                               20,
		"CHAT_MESSAGE_SAFE_TO_LEAVE":                             21,
		"CHAT_MESSAGE_RUNE_PICKUP":                               22,
		"CHAT_MESSAGE_RUNE_BOTTLE":                               23,
		"CHAT_MESSAGE_RUNE_DENY":                                 114,
		"CHAT_MESSAGE_INTHEBAG":                                  24,
		"CHAT_MESSAGE_SECRETSHOP":                                25,
		"CHAT_MESSAGE_ITEM_AUTOPURCHASED":                        26,
		"CHAT_MESSAGE_ITEMS_COMBINED":                            27,
		"CHAT_MESSAGE_SUPER_CREEPS":                              28,
		"CHAT_MESSAGE_CANT_USE_ACTION_ITEM":                      29,
		"CHAT_MESSAGE_CANTPAUSE":                                 31,
		"CHAT_MESSAGE_NOPAUSESLEFT":                              32,
		"CHAT_MESSAGE_CANTPAUSEYET":                              33,
		"CHAT_MESSAGE_PAUSED":                                    34,
		"CHAT_MESSAGE_UNPAUSE_COUNTDOWN":                         35,
		"CHAT_MESSAGE_UNPAUSED":                                  36,
		"CHAT_MESSAGE_AUTO_UNPAUSED":                             37,
		"CHAT_MESSAGE_YOUPAUSED":                                 38,
		"CHAT_MESSAGE_CANTUNPAUSETEAM":                           39,
		"CHAT_MESSAGE_VOICE_TEXT_BANNED":                         41,
		"CHAT_MESSAGE_SPECTATORS_WATCHING_THIS_GAME":             42,
		"CHAT_MESSAGE_REPORT_REMINDER":                           43,
		"CHAT_MESSAGE_ECON_ITEM":                                 44,
		"CHAT_MESSAGE_TAUNT":                                     45,
		"CHAT_MESSAGE_RANDOM":                                    46,
		"CHAT_MESSAGE_RD_TURN":                                   47,
		"CHAT_MESSAGE_DROP_RATE_BONUS":                           49,
		"CHAT_MESSAGE_NO_BATTLE_POINTS":                          50,
		"CHAT_MESSAGE_DENIED_AEGIS":                              51,
		"CHAT_MESSAGE_INFORMATIONAL":                             52,
		"CHAT_MESSAGE_AEGIS_STOLEN":                              53,
		"CHAT_MESSAGE_ROSHAN_CANDY":                              54,
		"CHAT_MESSAGE_ITEM_GIFTED":                               55,
		"CHAT_MESSAGE_HERO_KILL_WITH_GREEVIL":                    56,
		"CHAT_MESSAGE_HOLDOUT_TOWER_DESTROYED":                   57,
		"CHAT_MESSAGE_HOLDOUT_WALL_DESTROYED":                    58,
		"CHAT_MESSAGE_HOLDOUT_WALL_FINISHED":                     59,
		"CHAT_MESSAGE_PLAYER_LEFT_LIMITED_HERO":                  62,
		"CHAT_MESSAGE_ABANDON_LIMITED_HERO_EXPLANATION":          63,
		"CHAT_MESSAGE_DISCONNECT_LIMITED_HERO":                   64,
		"CHAT_MESSAGE_LOW_PRIORITY_COMPLETED_EXPLANATION":        65,
		"CHAT_MESSAGE_RECRUITMENT_DROP_RATE_BONUS":               66,
		"CHAT_MESSAGE_FROSTIVUS_SHINING_BOOSTER_ACTIVE":          67,
		"CHAT_MESSAGE_PLAYER_LEFT_AFK":                           73,
		"CHAT_MESSAGE_PLAYER_LEFT_DISCONNECTED_TOO_LONG":         74,
		"CHAT_MESSAGE_PLAYER_ABANDONED":                          75,
		"CHAT_MESSAGE_PLAYER_ABANDONED_AFK":                      76,
		"CHAT_MESSAGE_PLAYER_ABANDONED_DISCONNECTED_TOO_LONG":    77,
		"CHAT_MESSAGE_WILL_NOT_BE_SCORED":                        78,
		"CHAT_MESSAGE_WILL_NOT_BE_SCORED_RANKED":                 79,
		"CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK":                80,
		"CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK_RANKED":         81,
		"CHAT_MESSAGE_CAN_QUIT_WITHOUT_ABANDON":                  82,
		"CHAT_MESSAGE_RANKED_GAME_STILL_SCORED_LEAVERS_GET_LOSS": 83,
		"CHAT_MESSAGE_ABANDON_RANKED_BEFORE_FIRST_BLOOD_PARTY":   84,
		"CHAT_MESSAGE_COMPENDIUM_LEVEL":                          85,
		"CHAT_MESSAGE_VICTORY_PREDICTION_STREAK":                 86,
		"CHAT_MESSAGE_ASSASSIN_ANNOUNCE":                         87,
		"CHAT_MESSAGE_ASSASSIN_SUCCESS":                          88,
		"CHAT_MESSAGE_ASSASSIN_DENIED":                           89,
		"CHAT_MESSAGE_VICTORY_PREDICTION_SINGLE_USER_CONFIRM":    90,
		"CHAT_MESSAGE_EFFIGY_KILL":                               91,
		"CHAT_MESSAGE_VOICE_TEXT_BANNED_OVERFLOW":                92,
		"CHAT_MESSAGE_YEAR_BEAST_KILLED":                         93,
		"CHAT_MESSAGE_PAUSE_COUNTDOWN":                           94,
		"CHAT_MESSAGE_COINS_WAGERED":                             95,
		"CHAT_MESSAGE_HERO_NOMINATED_BAN":                        96,
		"CHAT_MESSAGE_HERO_BANNED":                               97,
		"CHAT_MESSAGE_HERO_BAN_COUNT":                            98,
		"CHAT_MESSAGE_RIVER_PAINTED":                             99,
		"CHAT_MESSAGE_SCAN_USED":                                 100,
		"CHAT_MESSAGE_SHRINE_KILLED":                             101,
		"CHAT_MESSAGE_WAGER_TOKEN_SPENT":                         102,
		"CHAT_MESSAGE_RANK_WAGER":                                103,
		"CHAT_MESSAGE_NEW_PLAYER_REMINDER":                       104,
		"CHAT_MESSAGE_OBSERVER_WARD_KILLED":                      105,
		"CHAT_MESSAGE_SENTRY_WARD_KILLED":                        106,
		"CHAT_MESSAGE_ITEM_PLACED_IN_NEUTRAL_STASH":              107,
		"CHAT_MESSAGE_HERO_CHOICE_INVALID":                       108,
		"CHAT_MESSAGE_BOUNTY":                                    109,
		"CHAT_MESSAGE_ABILITY_DRAFT_START":                       110,
		"CHAT_MESSAGE_HERO_FOUND_CANDY":                          111,
		"CHAT_MESSAGE_ABILITY_DRAFT_RANDOMED":                    112,
		"CHAT_MESSAGE_PRIVATE_COACH_CONNECTED":                   113,
		"CHAT_MESSAGE_CANT_PAUSE_TOO_EARLY":                      115,
	}
)

func (x DOTA_CHAT_MESSAGE) Enum() *DOTA_CHAT_MESSAGE {
	p := new(DOTA_CHAT_MESSAGE)
	*p = x
	return p
}

func (x DOTA_CHAT_MESSAGE) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (DOTA_CHAT_MESSAGE) Descriptor() protoreflect.EnumDescriptor {
	return file_dota_usermessages_proto_enumTypes[1].Descriptor()
}

func (DOTA_CHAT_MESSAGE) Type() protoreflect.EnumType {
	return &file_dota_usermessages_proto_enumTypes[1]
}

func (x DOTA_CHAT_MESSAGE) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Do not use.
func (x *DOTA_CHAT_MESSAGE) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = DOTA_CHAT_MESSAGE(num)
	return nil
}

// Deprecated: Use DOTA_CHAT_MESSAGE.Descriptor instead.
func (DOTA_CHAT_MESSAGE) EnumDescriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{1}
}

type DOTA_NO_BATTLE_POINTS_REASONS int32

const (
	DOTA_NO_BATTLE_POINTS_REASONS_NO_BATTLE_POINTS_WRONG_LOBBY_TYPE DOTA_NO_BATTLE_POINTS_REASONS = 1
	DOTA_NO_BATTLE_POINTS_REASONS_NO_BATTLE_POINTS_PRACTICE_BOTS    DOTA_NO_BATTLE_POINTS_REASONS = 2
	DOTA_NO_BATTLE_POINTS_REASONS_NO_BATTLE_POINTS_CHEATS_ENABLED   DOTA_NO_BATTLE_POINTS_REASONS = 3
	DOTA_NO_BATTLE_POINTS_REASONS_NO_BATTLE_POINTS_LOW_PRIORITY     DOTA_NO_BATTLE_POINTS_REASONS = 4
)

// Enum value maps for DOTA_NO_BATTLE_POINTS_REASONS.
var (
	DOTA_NO_BATTLE_POINTS_REASONS_name = map[int32]string{
		1: "NO_BATTLE_POINTS_WRONG_LOBBY_TYPE",
		2: "NO_BATTLE_POINTS_PRACTICE_BOTS",
		3: "NO_BATTLE_POINTS_CHEATS_ENABLED",
		4: "NO_BATTLE_POINTS_LOW_PRIORITY",
	}
	DOTA_NO_BATTLE_POINTS_REASONS_value = map[string]int32{
		"NO_BATTLE_POINTS_WRONG_LOBBY_TYPE": 1,
		"NO_BATTLE_POINTS_PRACTICE_BOTS":    2,
		"NO_BATTLE_POINTS_CHEATS_ENABLED":   3,
		"NO_BATTLE_POINTS_LOW_PRIORITY":     4,
	}
)

func (x DOTA_NO_BATTLE_POINTS_REASONS) Enum() *DOTA_NO_BATTLE_POINTS_REASONS {
	p := new(DOTA_NO_BATTLE_POINTS_REASONS)
	*p = x
	return p
}

func (x DOTA_NO_BATTLE_POINTS_REASONS) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (DOTA_NO_BATTLE_POINTS_REASONS) Descriptor() protoreflect.EnumDescriptor {
	return file_dota_usermessages_proto_enumTypes[2].Descriptor()
}

func (DOTA_NO_BATTLE_POINTS_REASONS) Type() protoreflect.EnumType {
	return &file_dota_usermessages_proto_enumTypes[2]
}

func (x DOTA_NO_BATTLE_POINTS_REASONS) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Do not use.
func (x *DOTA_NO_BATTLE_POINTS_REASONS) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = DOTA_NO_BATTLE_POINTS_REASONS(num)
	return nil
}

// Deprecated: Use DOTA_NO_BATTLE_POINTS_REASONS.Descriptor instead.
func (DOTA_NO_BATTLE_POINTS_REASONS) EnumDescriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{2}
}

type DOTA_CHAT_INFORMATIONAL int32

const (
	DOTA_CHAT_INFORMATIONAL_INFO_COOP_BATTLE_POINTS_RULES           DOTA_CHAT_INFORMATIONAL = 1
	DOTA_CHAT_INFORMATIONAL_INFO_FROSTIVUS_ABANDON_REMINDER         DOTA_CHAT_INFORMATIONAL = 2
	DOTA_CHAT_INFORMATIONAL_INFO_RANKED_REMINDER                    DOTA_CHAT_INFORMATIONAL = 3
	DOTA_CHAT_INFORMATIONAL_INFO_COOP_LOW_PRIORITY_PASSIVE_REMINDER DOTA_CHAT_INFORMATIONAL = 4
	DOTA_CHAT_INFORMATIONAL_INFO_CUSTOM_GAME_PENALTY_REMINDER       DOTA_CHAT_INFORMATIONAL = 5
)

// Enum value maps for DOTA_CHAT_INFORMATIONAL.
var (
	DOTA_CHAT_INFORMATIONAL_name = map[int32]string{
		1: "INFO_COOP_BATTLE_POINTS_RULES",
		2: "INFO_FROSTIVUS_ABANDON_REMINDER",
		3: "INFO_RANKED_REMINDER",
		4: "INFO_COOP_LOW_PRIORITY_PASSIVE_REMINDER",
		5: "INFO_CUSTOM_GAME_PENALTY_REMINDER",
	}
	DOTA_CHAT_INFORMATIONAL_value = map[string]int32{
		"INFO_COOP_BATTLE_POINTS_RULES":           1,
		"INFO_FROSTIVUS_ABANDON_REMINDER":         2,
		"INFO_RANKED_REMINDER":                    3,
		"INFO_COOP_LOW_PRIORITY_PASSIVE_REMINDER": 4,
		"INFO_CUSTOM_GAME_PENALTY_REMINDER":       5,
	}
)

func (x DOTA_CHAT_INFORMATIONAL) Enum() *DOTA_CHAT_INFORMATIONAL {
	p := new(DOTA_CHAT_INFORMATIONAL)
	*p = x
	return p
}

func (x DOTA_CHAT_INFORMATIONAL) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (DOTA_CHAT_INFORMATIONAL) Descriptor() protoreflect.EnumDescriptor {
	return file_dota_usermessages_proto_enumTypes[3].Descriptor()
}

func (DOTA_CHAT_INFORMATIONAL) Type() protoreflect.EnumType {
	return &file_dota_usermessages_proto_enumTypes[3]
}

func (x DOTA_CHAT_INFORMATIONAL) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Do not use.
func (x *DOTA_CHAT_INFORMATIONAL) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = DOTA_CHAT_INFORMATIONAL(num)
	return nil
}

// Deprecated: Use DOTA_CHAT_INFORMATIONAL.Descriptor instead.
func (DOTA_CHAT_INFORMATIONAL) EnumDescriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{3}
}

type DOTA_ABILITY_PING_TYPE int32

const (
	DOTA_ABILITY_PING_TYPE_ABILITY_PING_READY           DOTA_ABILITY_PING_TYPE = 1
	DOTA_ABILITY_PING_TYPE_ABILITY_PING_MANA            DOTA_ABILITY_PING_TYPE = 2
	DOTA_ABILITY_PING_TYPE_ABILITY_PING_COOLDOWN        DOTA_ABILITY_PING_TYPE = 3
	DOTA_ABILITY_PING_TYPE_ABILITY_PING_ENEMY           DOTA_ABILITY_PING_TYPE = 4
	DOTA_ABILITY_PING_TYPE_ABILITY_PING_UNLEARNED       DOTA_ABILITY_PING_TYPE = 5
	DOTA_ABILITY_PING_TYPE_ABILITY_PING_INBACKPACK      DOTA_ABILITY_PING_TYPE = 6
	DOTA_ABILITY_PING_TYPE_ABILITY_PING_INSTASH         DOTA_ABILITY_PING_TYPE = 7
	DOTA_ABILITY_PING_TYPE_ABILITY_PING_ONCOURIER       DOTA_ABILITY_PING_TYPE = 8
	DOTA_ABILITY_PING_TYPE_ABILITY_PING_ALLY            DOTA_ABILITY_PING_TYPE = 9
	DOTA_ABILITY_PING_TYPE_ABILITY_PING_LEARN_READY     DOTA_ABILITY_PING_TYPE = 10
	DOTA_ABILITY_PING_TYPE_ABILITY_PING_WILL_LEARN      DOTA_ABILITY_PING_TYPE = 11
	DOTA_ABILITY_PING_TYPE_ABILITY_PING_FUTURE_LEARN    DOTA_ABILITY_PING_TYPE = 12
	DOTA_ABILITY_PING_TYPE_ABILITY_PING_NEUTRAL_OFFER   DOTA_ABILITY_PING_TYPE = 13
	DOTA_ABILITY_PING_TYPE_ABILITY_PING_NEUTRAL_REQUEST DOTA_ABILITY_PING_TYPE = 14
	DOTA_ABILITY_PING_TYPE_ABILITY_PING_NEUTRAL_EQUIP   DOTA_ABILITY_PING_TYPE = 15
)

// Enum value maps for DOTA_ABILITY_PING_TYPE.
var (
	DOTA_ABILITY_PING_TYPE_name = map[int32]string{
		1:  "ABILITY_PING_READY",
		2:  "ABILITY_PING_MANA",
		3:  "ABILITY_PING_COOLDOWN",
		4:  "ABILITY_PING_ENEMY",
		5:  "ABILITY_PING_UNLEARNED",
		6:  "ABILITY_PING_INBACKPACK",
		7:  "ABILITY_PING_INSTASH",
		8:  "ABILITY_PING_ONCOURIER",
		9:  "ABILITY_PING_ALLY",
		10: "ABILITY_PING_LEARN_READY",
		11: "ABILITY_PING_WILL_LEARN",
		12: "ABILITY_PING_FUTURE_LEARN",
		13: "ABILITY_PING_NEUTRAL_OFFER",
		14: "ABILITY_PING_NEUTRAL_REQUEST",
		15: "ABILITY_PING_NEUTRAL_EQUIP",
	}
	DOTA_ABILITY_PING_TYPE_value = map[string]int32{
		"ABILITY_PING_READY":           1,
		"ABILITY_PING_MANA":            2,
		"ABILITY_PING_COOLDOWN":        3,
		"ABILITY_PING_ENEMY":           4,
		"ABILITY_PING_UNLEARNED":       5,
		"ABILITY_PING_INBACKPACK":      6,
		"ABILITY_PING_INSTASH":         7,
		"ABILITY_PING_ONCOURIER":       8,
		"ABILITY_PING_ALLY":            9,
		"ABILITY_PING_LEARN_READY":     10,
		"ABILITY_PING_WILL_LEARN":      11,
		"ABILITY_PING_FUTURE_LEARN":    12,
		"ABILITY_PING_NEUTRAL_OFFER":   13,
		"ABILITY_PING_NEUTRAL_REQUEST": 14,
		"ABILITY_PING_NEUTRAL_EQUIP":   15,
	}
)

func (x DOTA_ABILITY_PING_TYPE) Enum() *DOTA_ABILITY_PING_TYPE {
	p := new(DOTA_ABILITY_PING_TYPE)
	*p = x
	return p
}

func (x DOTA_ABILITY_PING_TYPE) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (DOTA_ABILITY_PING_TYPE) Descriptor() protoreflect.EnumDescriptor {
	return file_dota_usermessages_proto_enumTypes[4].Descriptor()
}

func (DOTA_ABILITY_PING_TYPE) Type() protoreflect.EnumType {
	return &file_dota_usermessages_proto_enumTypes[4]
}

func (x DOTA_ABILITY_PING_TYPE) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Do not use.
func (x *DOTA_ABILITY_PING_TYPE) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = DOTA_ABILITY_PING_TYPE(num)
	return nil
}

// Deprecated: Use DOTA_ABILITY_PING_TYPE.Descriptor instead.
func (DOTA_ABILITY_PING_TYPE) EnumDescriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{4}
}

type DOTA_REPLAY_STATE_EVENT int32

const (
	DOTA_REPLAY_STATE_EVENT_DOTA_REPLAY_STATE_EVENT_GAME_START    DOTA_REPLAY_STATE_EVENT = 1
	DOTA_REPLAY_STATE_EVENT_DOTA_REPLAY_STATE_EVENT_STARTING_HORN DOTA_REPLAY_STATE_EVENT = 2
	DOTA_REPLAY_STATE_EVENT_DOTA_REPLAY_STATE_EVENT_FIRST_BLOOD   DOTA_REPLAY_STATE_EVENT = 3
	DOTA_REPLAY_STATE_EVENT_DOTA_REPLAY_STATE_EVENT_SHOWCASE      DOTA_REPLAY_STATE_EVENT = 4
	DOTA_REPLAY_STATE_EVENT_DOTA_REPLAY_STATE_EVENT_POST_GAME     DOTA_REPLAY_STATE_EVENT = 5
	DOTA_REPLAY_STATE_EVENT_DOTA_REPLAY_STATE_EVENT_WAIT_FOR_MAP  DOTA_REPLAY_STATE_EVENT = 6
)

// Enum value maps for DOTA_REPLAY_STATE_EVENT.
var (
	DOTA_REPLAY_STATE_EVENT_name = map[int32]string{
		1: "DOTA_REPLAY_STATE_EVENT_GAME_START",
		2: "DOTA_REPLAY_STATE_EVENT_STARTING_HORN",
		3: "DOTA_REPLAY_STATE_EVENT_FIRST_BLOOD",
		4: "DOTA_REPLAY_STATE_EVENT_SHOWCASE",
		5: "DOTA_REPLAY_STATE_EVENT_POST_GAME",
		6: "DOTA_REPLAY_STATE_EVENT_WAIT_FOR_MAP",
	}
	DOTA_REPLAY_STATE_EVENT_value = map[string]int32{
		"DOTA_REPLAY_STATE_EVENT_GAME_START":    1,
		"DOTA_REPLAY_STATE_EVENT_STARTING_HORN": 2,
		"DOTA_REPLAY_STATE_EVENT_FIRST_BLOOD":   3,
		"DOTA_REPLAY_STATE_EVENT_SHOWCASE":      4,
		"DOTA_REPLAY_STATE_EVENT_POST_GAME":     5,
		"DOTA_REPLAY_STATE_EVENT_WAIT_FOR_MAP":  6,
	}
)

func (x DOTA_REPLAY_STATE_EVENT) Enum() *DOTA_REPLAY_STATE_EVENT {
	p := new(DOTA_REPLAY_STATE_EVENT)
	*p = x
	return p
}

func (x DOTA_REPLAY_STATE_EVENT) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (DOTA_REPLAY_STATE_EVENT) Descriptor() protoreflect.EnumDescriptor {
	return file_dota_usermessages_proto_enumTypes[5].Descriptor()
}

func (DOTA_REPLAY_STATE_EVENT) Type() protoreflect.EnumType {
	return &file_dota_usermessages_proto_enumTypes[5]
}

func (x DOTA_REPLAY_STATE_EVENT) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Do not use.
func (x *DOTA_REPLAY_STATE_EVENT) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = DOTA_REPLAY_STATE_EVENT(num)
	return nil
}

// Deprecated: Use DOTA_REPLAY_STATE_EVENT.Descriptor instead.
func (DOTA_REPLAY_STATE_EVENT) EnumDescriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{5}
}

type EDotaEntityMessages int32

const (
	EDotaEntityMessages_DOTA_UNIT_SPEECH                  EDotaEntityMessages = 0
	EDotaEntityMessages_DOTA_UNIT_SPEECH_MUTE             EDotaEntityMessages = 1
	EDotaEntityMessages_DOTA_UNIT_ADD_GESTURE             EDotaEntityMessages = 2
	EDotaEntityMessages_DOTA_UNIT_REMOVE_GESTURE          EDotaEntityMessages = 3
	EDotaEntityMessages_DOTA_UNIT_REMOVE_ALL_GESTURES     EDotaEntityMessages = 4
	EDotaEntityMessages_DOTA_UNIT_FADE_GESTURE            EDotaEntityMessages = 6
	EDotaEntityMessages_DOTA_UNIT_SPEECH_CLIENTSIDE_RULES EDotaEntityMessages = 7
)

// Enum value maps for EDotaEntityMessages.
var (
	EDotaEntityMessages_name = map[int32]string{
		0: "DOTA_UNIT_SPEECH",
		1: "DOTA_UNIT_SPEECH_MUTE",
		2: "DOTA_UNIT_ADD_GESTURE",
		3: "DOTA_UNIT_REMOVE_GESTURE",
		4: "DOTA_UNIT_REMOVE_ALL_GESTURES",
		6: "DOTA_UNIT_FADE_GESTURE",
		7: "DOTA_UNIT_SPEECH_CLIENTSIDE_RULES",
	}
	EDotaEntityMessages_value = map[string]int32{
		"DOTA_UNIT_SPEECH":                  0,
		"DOTA_UNIT_SPEECH_MUTE":             1,
		"DOTA_UNIT_ADD_GESTURE":             2,
		"DOTA_UNIT_REMOVE_GESTURE":          3,
		"DOTA_UNIT_REMOVE_ALL_GESTURES":     4,
		"DOTA_UNIT_FADE_GESTURE":            6,
		"DOTA_UNIT_SPEECH_CLIENTSIDE_RULES": 7,
	}
)

func (x EDotaEntityMessages) Enum() *EDotaEntityMessages {
	p := new(EDotaEntityMessages)
	*p = x
	return p
}

func (x EDotaEntityMessages) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (EDotaEntityMessages) Descriptor() protoreflect.EnumDescriptor {
	return file_dota_usermessages_proto_enumTypes[6].Descriptor()
}

func (EDotaEntityMessages) Type() protoreflect.EnumType {
	return &file_dota_usermessages_proto_enumTypes[6]
}

func (x EDotaEntityMessages) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Do not use.
func (x *EDotaEntityMessages) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = EDotaEntityMessages(num)
	return nil
}

// Deprecated: Use EDotaEntityMessages.Descriptor instead.
func (EDotaEntityMessages) EnumDescriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{6}
}

type DOTA_OVERHEAD_ALERT int32

const (
	DOTA_OVERHEAD_ALERT_OVERHEAD_ALERT_GOLD                DOTA_OVERHEAD_ALERT = 0
	DOTA_OVERHEAD_ALERT_OVERHEAD_ALERT_DENY                DOTA_OVERHEAD_ALERT = 1
	DOTA_OVERHEAD_ALERT_OVERHEAD_ALERT_CRITICAL            DOTA_OVERHEAD_ALERT = 2
	DOTA_OVERHEAD_ALERT_OVERHEAD_ALERT_XP                  DOTA_OVERHEAD_ALERT = 3
	DOTA_OVERHEAD_ALERT_OVERHEAD_ALERT_BONUS_SPELL_DAMAGE  DOTA_OVERHEAD_ALERT = 4
	DOTA_OVERHEAD_ALERT_OVERHEAD_ALERT_MISS                DOTA_OVERHEAD_ALERT = 5
	DOTA_OVERHEAD_ALERT_OVERHEAD_ALERT_DAMAGE              DOTA_OVERHEAD_ALERT = 6
	DOTA_OVERHEAD_ALERT_OVERHEAD_ALERT_EVADE               DOTA_OVERHEAD_ALERT = 7
	DOTA_OVERHEAD_ALERT_OVERHEAD_ALERT_BLOCK               DOTA_OVERHEAD_ALERT = 8
	DOTA_OVERHEAD_ALERT_OVERHEAD_ALERT_BONUS_POISON_DAMAGE DOTA_OVERHEAD_ALERT = 9
	DOTA_OVERHEAD_ALERT_OVERHEAD_ALERT_HEAL                DOTA_OVERHEAD_ALERT = 10
	DOTA_OVERHEAD_ALERT_OVERHEAD_ALERT_MANA_ADD            DOTA_OVERHEAD_ALERT = 11
	DOTA_OVERHEAD_ALERT_OVERHEAD_ALERT_MANA_LOSS           DOTA_OVERHEAD_ALERT = 12
	DOTA_OVERHEAD_ALERT_OVERHEAD_ALERT_LAST_HIT_EARLY      DOTA_OVERHEAD_ALERT = 13
	DOTA_OVERHEAD_ALERT_OVERHEAD_ALERT_LAST_HIT_CLOSE      DOTA_OVERHEAD_ALERT = 14
	DOTA_OVERHEAD_ALERT_OVERHEAD_ALERT_LAST_HIT_MISS       DOTA_OVERHEAD_ALERT = 15
	DOTA_OVERHEAD_ALERT_OVERHEAD_ALERT_MAGICAL_BLOCK       DOTA_OVERHEAD_ALERT = 16
	DOTA_OVERHEAD_ALERT_OVERHEAD_ALERT_INCOMING_DAMAGE     DOTA_OVERHEAD_ALERT = 17
	DOTA_OVERHEAD_ALERT_OVERHEAD_ALERT_OUTGOING_DAMAGE     DOTA_OVERHEAD_ALERT = 18
	DOTA_OVERHEAD_ALERT_OVERHEAD_ALERT_DISABLE_RESIST      DOTA_OVERHEAD_ALERT = 19
	DOTA_OVERHEAD_ALERT_OVERHEAD_ALERT_DEATH               DOTA_OVERHEAD_ALERT = 20
	DOTA_OVERHEAD_ALERT_OVERHEAD_ALERT_BLOCKED             DOTA_OVERHEAD_ALERT = 21
	DOTA_OVERHEAD_ALERT_OVERHEAD_ALERT_ITEM_RECEIVED       DOTA_OVERHEAD_ALERT = 22
	DOTA_OVERHEAD_ALERT_OVERHEAD_ALERT_SHARD               DOTA_OVERHEAD_ALERT = 23
	DOTA_OVERHEAD_ALERT_OVERHEAD_ALERT_DEADLY_BLOW         DOTA_OVERHEAD_ALERT = 24
)

// Enum value maps for DOTA_OVERHEAD_ALERT.
var (
	DOTA_OVERHEAD_ALERT_name = map[int32]string{
		0:  "OVERHEAD_ALERT_GOLD",
		1:  "OVERHEAD_ALERT_DENY",
		2:  "OVERHEAD_ALERT_CRITICAL",
		3:  "OVERHEAD_ALERT_XP",
		4:  "OVERHEAD_ALERT_BONUS_SPELL_DAMAGE",
		5:  "OVERHEAD_ALERT_MISS",
		6:  "OVERHEAD_ALERT_DAMAGE",
		7:  "OVERHEAD_ALERT_EVADE",
		8:  "OVERHEAD_ALERT_BLOCK",
		9:  "OVERHEAD_ALERT_BONUS_POISON_DAMAGE",
		10: "OVERHEAD_ALERT_HEAL",
		11: "OVERHEAD_ALERT_MANA_ADD",
		12: "OVERHEAD_ALERT_MANA_LOSS",
		13: "OVERHEAD_ALERT_LAST_HIT_EARLY",
		14: "OVERHEAD_ALERT_LAST_HIT_CLOSE",
		15: "OVERHEAD_ALERT_LAST_HIT_MISS",
		16: "OVERHEAD_ALERT_MAGICAL_BLOCK",
		17: "OVERHEAD_ALERT_INCOMING_DAMAGE",
		18: "OVERHEAD_ALERT_OUTGOING_DAMAGE",
		19: "OVERHEAD_ALERT_DISABLE_RESIST",
		20: "OVERHEAD_ALERT_DEATH",
		21: "OVERHEAD_ALERT_BLOCKED",
		22: "OVERHEAD_ALERT_ITEM_RECEIVED",
		23: "OVERHEAD_ALERT_SHARD",
		24: "OVERHEAD_ALERT_DEADLY_BLOW",
	}
	DOTA_OVERHEAD_ALERT_value = map[string]int32{
		"OVERHEAD_ALERT_GOLD":                0,
		"OVERHEAD_ALERT_DENY":                1,
		"OVERHEAD_ALERT_CRITICAL":            2,
		"OVERHEAD_ALERT_XP":                  3,
		"OVERHEAD_ALERT_BONUS_SPELL_DAMAGE":  4,
		"OVERHEAD_ALERT_MISS":                5,
		"OVERHEAD_ALERT_DAMAGE":              6,
		"OVERHEAD_ALERT_EVADE":               7,
		"OVERHEAD_ALERT_BLOCK":               8,
		"OVERHEAD_ALERT_BONUS_POISON_DAMAGE": 9,
		"OVERHEAD_ALERT_HEAL":                10,
		"OVERHEAD_ALERT_MANA_ADD":            11,
		"OVERHEAD_ALERT_MANA_LOSS":           12,
		"OVERHEAD_ALERT_LAST_HIT_EARLY":      13,
		"OVERHEAD_ALERT_LAST_HIT_CLOSE":      14,
		"OVERHEAD_ALERT_LAST_HIT_MISS":       15,
		"OVERHEAD_ALERT_MAGICAL_BLOCK":       16,
		"OVERHEAD_ALERT_INCOMING_DAMAGE":     17,
		"OVERHEAD_ALERT_OUTGOING_DAMAGE":     18,
		"OVERHEAD_ALERT_DISABLE_RESIST":      19,
		"OVERHEAD_ALERT_DEATH":               20,
		"OVERHEAD_ALERT_BLOCKED":             21,
		"OVERHEAD_ALERT_ITEM_RECEIVED":       22,
		"OVERHEAD_ALERT_SHARD":               23,
		"OVERHEAD_ALERT_DEADLY_BLOW":         24,
	}
)

func (x DOTA_OVERHEAD_ALERT) Enum() *DOTA_OVERHEAD_ALERT {
	p := new(DOTA_OVERHEAD_ALERT)
	*p = x
	return p
}

func (x DOTA_OVERHEAD_ALERT) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (DOTA_OVERHEAD_ALERT) Descriptor() protoreflect.EnumDescriptor {
	return file_dota_usermessages_proto_enumTypes[7].Descriptor()
}

func (DOTA_OVERHEAD_ALERT) Type() protoreflect.EnumType {
	return &file_dota_usermessages_proto_enumTypes[7]
}

func (x DOTA_OVERHEAD_ALERT) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Do not use.
func (x *DOTA_OVERHEAD_ALERT) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = DOTA_OVERHEAD_ALERT(num)
	return nil
}

// Deprecated: Use DOTA_OVERHEAD_ALERT.Descriptor instead.
func (DOTA_OVERHEAD_ALERT) EnumDescriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{7}
}

type DOTA_ROSHAN_PHASE int32

const (
	DOTA_ROSHAN_PHASE_k_SRSP_ROSHAN_ALIVE         DOTA_ROSHAN_PHASE = 0
	DOTA_ROSHAN_PHASE_k_SRSP_ROSHAN_BASE_TIMER    DOTA_ROSHAN_PHASE = 1
	DOTA_ROSHAN_PHASE_k_SRSP_ROSHAN_VISIBLE_TIMER DOTA_ROSHAN_PHASE = 2
)

// Enum value maps for DOTA_ROSHAN_PHASE.
var (
	DOTA_ROSHAN_PHASE_name = map[int32]string{
		0: "k_SRSP_ROSHAN_ALIVE",
		1: "k_SRSP_ROSHAN_BASE_TIMER",
		2: "k_SRSP_ROSHAN_VISIBLE_TIMER",
	}
	DOTA_ROSHAN_PHASE_value = map[string]int32{
		"k_SRSP_ROSHAN_ALIVE":         0,
		"k_SRSP_ROSHAN_BASE_TIMER":    1,
		"k_SRSP_ROSHAN_VISIBLE_TIMER": 2,
	}
)

func (x DOTA_ROSHAN_PHASE) Enum() *DOTA_ROSHAN_PHASE {
	p := new(DOTA_ROSHAN_PHASE)
	*p = x
	return p
}

func (x DOTA_ROSHAN_PHASE) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (DOTA_ROSHAN_PHASE) Descriptor() protoreflect.EnumDescriptor {
	return file_dota_usermessages_proto_enumTypes[8].Descriptor()
}

func (DOTA_ROSHAN_PHASE) Type() protoreflect.EnumType {
	return &file_dota_usermessages_proto_enumTypes[8]
}

func (x DOTA_ROSHAN_PHASE) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Do not use.
func (x *DOTA_ROSHAN_PHASE) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = DOTA_ROSHAN_PHASE(num)
	return nil
}

// Deprecated: Use DOTA_ROSHAN_PHASE.Descriptor instead.
func (DOTA_ROSHAN_PHASE) EnumDescriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{8}
}

type DOTA_POSITION_CATEGORY int32

const (
	DOTA_POSITION_CATEGORY_DOTA_POSITION_NONE                DOTA_POSITION_CATEGORY = 0
	DOTA_POSITION_CATEGORY_DOTA_POSITION_BOTTOM_LANE         DOTA_POSITION_CATEGORY = 1
	DOTA_POSITION_CATEGORY_DOTA_POSITION_MID_LANE            DOTA_POSITION_CATEGORY = 2
	DOTA_POSITION_CATEGORY_DOTA_POSITION_TOP_LANE            DOTA_POSITION_CATEGORY = 3
	DOTA_POSITION_CATEGORY_DOTA_POSITION_RADIANT_JUNGLE      DOTA_POSITION_CATEGORY = 4
	DOTA_POSITION_CATEGORY_DOTA_POSITION_DIRE_JUNGLE         DOTA_POSITION_CATEGORY = 5
	DOTA_POSITION_CATEGORY_DOTA_POSITION_RADIANT_ANCIENTS    DOTA_POSITION_CATEGORY = 6
	DOTA_POSITION_CATEGORY_DOTA_POSITION_DIRE_ANCIENTS       DOTA_POSITION_CATEGORY = 7
	DOTA_POSITION_CATEGORY_DOTA_POSITION_RADIANT_SECRET_SHOP DOTA_POSITION_CATEGORY = 8
	DOTA_POSITION_CATEGORY_DOTA_POSITION_DIRE_SECRET_SHOP    DOTA_POSITION_CATEGORY = 9
	DOTA_POSITION_CATEGORY_DOTA_POSITION_RIVER               DOTA_POSITION_CATEGORY = 10
	DOTA_POSITION_CATEGORY_DOTA_POSITION_ROSHAN_PIT          DOTA_POSITION_CATEGORY = 11
	DOTA_POSITION_CATEGORY_DOTA_POSITION_RADIANT_BASE        DOTA_POSITION_CATEGORY = 12
	DOTA_POSITION_CATEGORY_DOTA_POSITION_DIRE_BASE           DOTA_POSITION_CATEGORY = 13
	DOTA_POSITION_CATEGORY_DOTA_POSITION_FOUNTAIN            DOTA_POSITION_CATEGORY = 14
	DOTA_POSITION_CATEGORY_DOTA_POSITION_OTHER               DOTA_POSITION_CATEGORY = 15
)

// Enum value maps for DOTA_POSITION_CATEGORY.
var (
	DOTA_POSITION_CATEGORY_name = map[int32]string{
		0:  "DOTA_POSITION_NONE",
		1:  "DOTA_POSITION_BOTTOM_LANE",
		2:  "DOTA_POSITION_MID_LANE",
		3:  "DOTA_POSITION_TOP_LANE",
		4:  "DOTA_POSITION_RADIANT_JUNGLE",
		5:  "DOTA_POSITION_DIRE_JUNGLE",
		6:  "DOTA_POSITION_RADIANT_ANCIENTS",
		7:  "DOTA_POSITION_DIRE_ANCIENTS",
		8:  "DOTA_POSITION_RADIANT_SECRET_SHOP",
		9:  "DOTA_POSITION_DIRE_SECRET_SHOP",
		10: "DOTA_POSITION_RIVER",
		11: "DOTA_POSITION_ROSHAN_PIT",
		12: "DOTA_POSITION_RADIANT_BASE",
		13: "DOTA_POSITION_DIRE_BASE",
		14: "DOTA_POSITION_FOUNTAIN",
		15: "DOTA_POSITION_OTHER",
	}
	DOTA_POSITION_CATEGORY_value = map[string]int32{
		"DOTA_POSITION_NONE":                0,
		"DOTA_POSITION_BOTTOM_LANE":         1,
		"DOTA_POSITION_MID_LANE":            2,
		"DOTA_POSITION_TOP_LANE":            3,
		"DOTA_POSITION_RADIANT_JUNGLE":      4,
		"DOTA_POSITION_DIRE_JUNGLE":         5,
		"DOTA_POSITION_RADIANT_ANCIENTS":    6,
		"DOTA_POSITION_DIRE_ANCIENTS":       7,
		"DOTA_POSITION_RADIANT_SECRET_SHOP": 8,
		"DOTA_POSITION_DIRE_SECRET_SHOP":    9,
		"DOTA_POSITION_RIVER":               10,
		"DOTA_POSITION_ROSHAN_PIT":          11,
		"DOTA_POSITION_RADIANT_BASE":        12,
		"DOTA_POSITION_DIRE_BASE":           13,
		"DOTA_POSITION_FOUNTAIN":            14,
		"DOTA_POSITION_OTHER":               15,
	}
)

func (x DOTA_POSITION_CATEGORY) Enum() *DOTA_POSITION_CATEGORY {
	p := new(DOTA_POSITION_CATEGORY)
	*p = x
	return p
}

func (x DOTA_POSITION_CATEGORY) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (DOTA_POSITION_CATEGORY) Descriptor() protoreflect.EnumDescriptor {
	return file_dota_usermessages_proto_enumTypes[9].Descriptor()
}

func (DOTA_POSITION_CATEGORY) Type() protoreflect.EnumType {
	return &file_dota_usermessages_proto_enumTypes[9]
}

func (x DOTA_POSITION_CATEGORY) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Do not use.
func (x *DOTA_POSITION_CATEGORY) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = DOTA_POSITION_CATEGORY(num)
	return nil
}

// Deprecated: Use DOTA_POSITION_CATEGORY.Descriptor instead.
func (DOTA_POSITION_CATEGORY) EnumDescriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{9}
}

type DOTA_ABILITY_TARGET_TYPE int32

const (
	DOTA_ABILITY_TARGET_TYPE_DOTA_ABILITY_TARGET_NONE        DOTA_ABILITY_TARGET_TYPE = 0
	DOTA_ABILITY_TARGET_TYPE_DOTA_ABILITY_TARGET_SELF        DOTA_ABILITY_TARGET_TYPE = 1
	DOTA_ABILITY_TARGET_TYPE_DOTA_ABILITY_TARGET_ALLY_HERO   DOTA_ABILITY_TARGET_TYPE = 2
	DOTA_ABILITY_TARGET_TYPE_DOTA_ABILITY_TARGET_ALLY_CREEP  DOTA_ABILITY_TARGET_TYPE = 3
	DOTA_ABILITY_TARGET_TYPE_DOTA_ABILITY_TARGET_ENEMY_HERO  DOTA_ABILITY_TARGET_TYPE = 4
	DOTA_ABILITY_TARGET_TYPE_DOTA_ABILITY_TARGET_ENEMY_CREEP DOTA_ABILITY_TARGET_TYPE = 5
)

// Enum value maps for DOTA_ABILITY_TARGET_TYPE.
var (
	DOTA_ABILITY_TARGET_TYPE_name = map[int32]string{
		0: "DOTA_ABILITY_TARGET_NONE",
		1: "DOTA_ABILITY_TARGET_SELF",
		2: "DOTA_ABILITY_TARGET_ALLY_HERO",
		3: "DOTA_ABILITY_TARGET_ALLY_CREEP",
		4: "DOTA_ABILITY_TARGET_ENEMY_HERO",
		5: "DOTA_ABILITY_TARGET_ENEMY_CREEP",
	}
	DOTA_ABILITY_TARGET_TYPE_value = map[string]int32{
		"DOTA_ABILITY_TARGET_NONE":        0,
		"DOTA_ABILITY_TARGET_SELF":        1,
		"DOTA_ABILITY_TARGET_ALLY_HERO":   2,
		"DOTA_ABILITY_TARGET_ALLY_CREEP":  3,
		"DOTA_ABILITY_TARGET_ENEMY_HERO":  4,
		"DOTA_ABILITY_TARGET_ENEMY_CREEP": 5,
	}
)

func (x DOTA_ABILITY_TARGET_TYPE) Enum() *DOTA_ABILITY_TARGET_TYPE {
	p := new(DOTA_ABILITY_TARGET_TYPE)
	*p = x
	return p
}

func (x DOTA_ABILITY_TARGET_TYPE) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (DOTA_ABILITY_TARGET_TYPE) Descriptor() protoreflect.EnumDescriptor {
	return file_dota_usermessages_proto_enumTypes[10].Descriptor()
}

func (DOTA_ABILITY_TARGET_TYPE) Type() protoreflect.EnumType {
	return &file_dota_usermessages_proto_enumTypes[10]
}

func (x DOTA_ABILITY_TARGET_TYPE) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Do not use.
func (x *DOTA_ABILITY_TARGET_TYPE) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = DOTA_ABILITY_TARGET_TYPE(num)
	return nil
}

// Deprecated: Use DOTA_ABILITY_TARGET_TYPE.Descriptor instead.
func (DOTA_ABILITY_TARGET_TYPE) EnumDescriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{10}
}

type EHeroStatType int32

const (
	EHeroStatType_k_EHeroStatType_None                               EHeroStatType = 0
	EHeroStatType_k_EHeroStatType_AxeTotalDamage                     EHeroStatType = 2000
	EHeroStatType_k_EHeroStatType_BattleHungerDamage                 EHeroStatType = 2001
	EHeroStatType_k_EHeroStatType_CounterHelixDamage                 EHeroStatType = 2002
	EHeroStatType_k_EHeroStatType_CullingBladeDamage                 EHeroStatType = 2003
	EHeroStatType_k_EHeroStatType_BerserkersCallCastCount            EHeroStatType = 2004
	EHeroStatType_k_EHeroStatType_BerserkersCallHeroesHitAverage     EHeroStatType = 2005
	EHeroStatType_k_EHeroStatType_BerserkersCallOtherUnitsHit        EHeroStatType = 2006
	EHeroStatType_k_EHeroStatType_BerserkersCallHeroAttacksTaken     EHeroStatType = 2007
	EHeroStatType_k_EHeroStatType_BerserkersCallOtherAttacksTaken    EHeroStatType = 2008
	EHeroStatType_k_EHeroStatType_BattleHungerCastCount              EHeroStatType = 2009
	EHeroStatType_k_EHeroStatType_BattleHungerPotentialDuration      EHeroStatType = 2010
	EHeroStatType_k_EHeroStatType_BattleHungerAverageDuration        EHeroStatType = 2011
	EHeroStatType_k_EHeroStatType_CounterHelixProcCount              EHeroStatType = 2012
	EHeroStatType_k_EHeroStatType_CounterHelixHeroProcCount          EHeroStatType = 2013
	EHeroStatType_k_EHeroStatType_CounterHelixHeroesHitAverage       EHeroStatType = 2014
	EHeroStatType_k_EHeroStatType_CounterHelixOtherUnitsHitCount     EHeroStatType = 2015
	EHeroStatType_k_EHeroStatType_CullingBladeCastCount              EHeroStatType = 2016
	EHeroStatType_k_EHeroStatType_CullingBladeKillCount              EHeroStatType = 2017
	EHeroStatType_k_EHeroStatType_CullingBladeAverageHealthCulled    EHeroStatType = 2018
	EHeroStatType_k_EHeroStatType_CullingBladeAverageDamageAvailable EHeroStatType = 2019
	EHeroStatType_k_EHeroStatType_CullingBladeHeroBuffAverage        EHeroStatType = 2020
)

// Enum value maps for EHeroStatType.
var (
	EHeroStatType_name = map[int32]string{
		0:    "k_EHeroStatType_None",
		2000: "k_EHeroStatType_AxeTotalDamage",
		2001: "k_EHeroStatType_BattleHungerDamage",
		2002: "k_EHeroStatType_CounterHelixDamage",
		2003: "k_EHeroStatType_CullingBladeDamage",
		2004: "k_EHeroStatType_BerserkersCallCastCount",
		2005: "k_EHeroStatType_BerserkersCallHeroesHitAverage",
		2006: "k_EHeroStatType_BerserkersCallOtherUnitsHit",
		2007: "k_EHeroStatType_BerserkersCallHeroAttacksTaken",
		2008: "k_EHeroStatType_BerserkersCallOtherAttacksTaken",
		2009: "k_EHeroStatType_BattleHungerCastCount",
		2010: "k_EHeroStatType_BattleHungerPotentialDuration",
		2011: "k_EHeroStatType_BattleHungerAverageDuration",
		2012: "k_EHeroStatType_CounterHelixProcCount",
		2013: "k_EHeroStatType_CounterHelixHeroProcCount",
		2014: "k_EHeroStatType_CounterHelixHeroesHitAverage",
		2015: "k_EHeroStatType_CounterHelixOtherUnitsHitCount",
		2016: "k_EHeroStatType_CullingBladeCastCount",
		2017: "k_EHeroStatType_CullingBladeKillCount",
		2018: "k_EHeroStatType_CullingBladeAverageHealthCulled",
		2019: "k_EHeroStatType_CullingBladeAverageDamageAvailable",
		2020: "k_EHeroStatType_CullingBladeHeroBuffAverage",
	}
	EHeroStatType_value = map[string]int32{
		"k_EHeroStatType_None":                               0,
		"k_EHeroStatType_AxeTotalDamage":                     2000,
		"k_EHeroStatType_BattleHungerDamage":                 2001,
		"k_EHeroStatType_CounterHelixDamage":                 2002,
		"k_EHeroStatType_CullingBladeDamage":                 2003,
		"k_EHeroStatType_BerserkersCallCastCount":            2004,
		"k_EHeroStatType_BerserkersCallHeroesHitAverage":     2005,
		"k_EHeroStatType_BerserkersCallOtherUnitsHit":        2006,
		"k_EHeroStatType_BerserkersCallHeroAttacksTaken":     2007,
		"k_EHeroStatType_BerserkersCallOtherAttacksTaken":    2008,
		"k_EHeroStatType_BattleHungerCastCount":              2009,
		"k_EHeroStatType_BattleHungerPotentialDuration":      2010,
		"k_EHeroStatType_BattleHungerAverageDuration":        2011,
		"k_EHeroStatType_CounterHelixProcCount":              2012,
		"k_EHeroStatType_CounterHelixHeroProcCount":          2013,
		"k_EHeroStatType_CounterHelixHeroesHitAverage":       2014,
		"k_EHeroStatType_CounterHelixOtherUnitsHitCount":     2015,
		"k_EHeroStatType_CullingBladeCastCount":              2016,
		"k_EHeroStatType_CullingBladeKillCount":              2017,
		"k_EHeroStatType_CullingBladeAverageHealthCulled":    2018,
		"k_EHeroStatType_CullingBladeAverageDamageAvailable": 2019,
		"k_EHeroStatType_CullingBladeHeroBuffAverage":        2020,
	}
)

func (x EHeroStatType) Enum() *EHeroStatType {
	p := new(EHeroStatType)
	*p = x
	return p
}

func (x EHeroStatType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (EHeroStatType) Descriptor() protoreflect.EnumDescriptor {
	return file_dota_usermessages_proto_enumTypes[11].Descriptor()
}

func (EHeroStatType) Type() protoreflect.EnumType {
	return &file_dota_usermessages_proto_enumTypes[11]
}

func (x EHeroStatType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Do not use.
func (x *EHeroStatType) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = EHeroStatType(num)
	return nil
}

// Deprecated: Use EHeroStatType.Descriptor instead.
func (EHeroStatType) EnumDescriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{11}
}

type EPlayerVoiceListenState int32

const (
	EPlayerVoiceListenState_kPVLS_None                           EPlayerVoiceListenState = 0
	EPlayerVoiceListenState_kPVLS_DeniedChatBanned               EPlayerVoiceListenState = 1
	EPlayerVoiceListenState_kPVLS_DeniedPartner                  EPlayerVoiceListenState = 2
	EPlayerVoiceListenState_kPVLS_DeniedHLTVTalkerNotSpectator   EPlayerVoiceListenState = 3
	EPlayerVoiceListenState_kPVLS_DeniedHLTVNoTalkerPlayerID     EPlayerVoiceListenState = 4
	EPlayerVoiceListenState_kPVLS_DeniedHLTVTalkerNotBroadcaster EPlayerVoiceListenState = 5
	EPlayerVoiceListenState_kPVLS_DeniedTeamSpectator            EPlayerVoiceListenState = 6
	EPlayerVoiceListenState_kPVLS_DeniedStudent                  EPlayerVoiceListenState = 8
	EPlayerVoiceListenState_kPVLS_DeniedPrivateCoach             EPlayerVoiceListenState = 9
	EPlayerVoiceListenState_kPVLS_Denied                         EPlayerVoiceListenState = 64
	EPlayerVoiceListenState_kPVLS_AllowHLTVTalkerIsBroadcaster   EPlayerVoiceListenState = 65
	EPlayerVoiceListenState_kPVLS_AllowCoBroadcaster             EPlayerVoiceListenState = 66
	EPlayerVoiceListenState_kPVLS_AllowAllChat                   EPlayerVoiceListenState = 67
	EPlayerVoiceListenState_kPVLS_AllowStudentToCoach            EPlayerVoiceListenState = 68
	EPlayerVoiceListenState_kPVLS_AllowFellowStudent             EPlayerVoiceListenState = 69
	EPlayerVoiceListenState_kPVLS_AllowTalkerIsCoach             EPlayerVoiceListenState = 70
	EPlayerVoiceListenState_kPVLS_AllowCoachHearTeam             EPlayerVoiceListenState = 71
	EPlayerVoiceListenState_kPVLS_AllowSameTeam                  EPlayerVoiceListenState = 72
	EPlayerVoiceListenState_kPVLS_AllowShowcase                  EPlayerVoiceListenState = 73
	EPlayerVoiceListenState_kPVLS_AllowPrivateCoach              EPlayerVoiceListenState = 74
)

// Enum value maps for EPlayerVoiceListenState.
var (
	EPlayerVoiceListenState_name = map[int32]string{
		0:  "kPVLS_None",
		1:  "kPVLS_DeniedChatBanned",
		2:  "kPVLS_DeniedPartner",
		3:  "kPVLS_DeniedHLTVTalkerNotSpectator",
		4:  "kPVLS_DeniedHLTVNoTalkerPlayerID",
		5:  "kPVLS_DeniedHLTVTalkerNotBroadcaster",
		6:  "kPVLS_DeniedTeamSpectator",
		8:  "kPVLS_DeniedStudent",
		9:  "kPVLS_DeniedPrivateCoach",
		64: "kPVLS_Denied",
		65: "kPVLS_AllowHLTVTalkerIsBroadcaster",
		66: "kPVLS_AllowCoBroadcaster",
		67: "kPVLS_AllowAllChat",
		68: "kPVLS_AllowStudentToCoach",
		69: "kPVLS_AllowFellowStudent",
		70: "kPVLS_AllowTalkerIsCoach",
		71: "kPVLS_AllowCoachHearTeam",
		72: "kPVLS_AllowSameTeam",
		73: "kPVLS_AllowShowcase",
		74: "kPVLS_AllowPrivateCoach",
	}
	EPlayerVoiceListenState_value = map[string]int32{
		"kPVLS_None":                           0,
		"kPVLS_DeniedChatBanned":               1,
		"kPVLS_DeniedPartner":                  2,
		"kPVLS_DeniedHLTVTalkerNotSpectator":   3,
		"kPVLS_DeniedHLTVNoTalkerPlayerID":     4,
		"kPVLS_DeniedHLTVTalkerNotBroadcaster": 5,
		"kPVLS_DeniedTeamSpectator":            6,
		"kPVLS_DeniedStudent":                  8,
		"kPVLS_DeniedPrivateCoach":             9,
		"kPVLS_Denied":                         64,
		"kPVLS_AllowHLTVTalkerIsBroadcaster":   65,
		"kPVLS_AllowCoBroadcaster":             66,
		"kPVLS_AllowAllChat":                   67,
		"kPVLS_AllowStudentToCoach":            68,
		"kPVLS_AllowFellowStudent":             69,
		"kPVLS_AllowTalkerIsCoach":             70,
		"kPVLS_AllowCoachHearTeam":             71,
		"kPVLS_AllowSameTeam":                  72,
		"kPVLS_AllowShowcase":                  73,
		"kPVLS_AllowPrivateCoach":              74,
	}
)

func (x EPlayerVoiceListenState) Enum() *EPlayerVoiceListenState {
	p := new(EPlayerVoiceListenState)
	*p = x
	return p
}

func (x EPlayerVoiceListenState) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (EPlayerVoiceListenState) Descriptor() protoreflect.EnumDescriptor {
	return file_dota_usermessages_proto_enumTypes[12].Descriptor()
}

func (EPlayerVoiceListenState) Type() protoreflect.EnumType {
	return &file_dota_usermessages_proto_enumTypes[12]
}

func (x EPlayerVoiceListenState) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Do not use.
func (x *EPlayerVoiceListenState) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = EPlayerVoiceListenState(num)
	return nil
}

// Deprecated: Use EPlayerVoiceListenState.Descriptor instead.
func (EPlayerVoiceListenState) EnumDescriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{12}
}

type EProjectionEvent int32

const (
	EProjectionEvent_ePE_FirstBlood         EProjectionEvent = 0
	EProjectionEvent_ePE_Killstreak_godlike EProjectionEvent = 1
)

// Enum value maps for EProjectionEvent.
var (
	EProjectionEvent_name = map[int32]string{
		0: "ePE_FirstBlood",
		1: "ePE_Killstreak_godlike",
	}
	EProjectionEvent_value = map[string]int32{
		"ePE_FirstBlood":         0,
		"ePE_Killstreak_godlike": 1,
	}
)

func (x EProjectionEvent) Enum() *EProjectionEvent {
	p := new(EProjectionEvent)
	*p = x
	return p
}

func (x EProjectionEvent) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (EProjectionEvent) Descriptor() protoreflect.EnumDescriptor {
	return file_dota_usermessages_proto_enumTypes[13].Descriptor()
}

func (EProjectionEvent) Type() protoreflect.EnumType {
	return &file_dota_usermessages_proto_enumTypes[13]
}

func (x EProjectionEvent) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Do not use.
func (x *EProjectionEvent) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = EProjectionEvent(num)
	return nil
}

// Deprecated: Use EProjectionEvent.Descriptor instead.
func (EProjectionEvent) EnumDescriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{13}
}

type CDOTAUserMsg_PredictionResult_Prediction_EResult int32

const (
	CDOTAUserMsg_PredictionResult_Prediction_k_eResult_ItemGranted CDOTAUserMsg_PredictionResult_Prediction_EResult = 1
	CDOTAUserMsg_PredictionResult_Prediction_k_eResult_Destroyed   CDOTAUserMsg_PredictionResult_Prediction_EResult = 2
)

// Enum value maps for CDOTAUserMsg_PredictionResult_Prediction_EResult.
var (
	CDOTAUserMsg_PredictionResult_Prediction_EResult_name = map[int32]string{
		1: "k_eResult_ItemGranted",
		2: "k_eResult_Destroyed",
	}
	CDOTAUserMsg_PredictionResult_Prediction_EResult_value = map[string]int32{
		"k_eResult_ItemGranted": 1,
		"k_eResult_Destroyed":   2,
	}
)

func (x CDOTAUserMsg_PredictionResult_Prediction_EResult) Enum() *CDOTAUserMsg_PredictionResult_Prediction_EResult {
	p := new(CDOTAUserMsg_PredictionResult_Prediction_EResult)
	*p = x
	return p
}

func (x CDOTAUserMsg_PredictionResult_Prediction_EResult) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (CDOTAUserMsg_PredictionResult_Prediction_EResult) Descriptor() protoreflect.EnumDescriptor {
	return file_dota_usermessages_proto_enumTypes[14].Descriptor()
}

func (CDOTAUserMsg_PredictionResult_Prediction_EResult) Type() protoreflect.EnumType {
	return &file_dota_usermessages_proto_enumTypes[14]
}

func (x CDOTAUserMsg_PredictionResult_Prediction_EResult) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Do not use.
func (x *CDOTAUserMsg_PredictionResult_Prediction_EResult) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = CDOTAUserMsg_PredictionResult_Prediction_EResult(num)
	return nil
}

// Deprecated: Use CDOTAUserMsg_PredictionResult_Prediction_EResult.Descriptor instead.
func (CDOTAUserMsg_PredictionResult_Prediction_EResult) EnumDescriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{40, 0, 0}
}

type CDOTAResponseQuerySerialized_Fact_ValueType int32

const (
	CDOTAResponseQuerySerialized_Fact_NUMERIC           CDOTAResponseQuerySerialized_Fact_ValueType = 1
	CDOTAResponseQuerySerialized_Fact_STRING            CDOTAResponseQuerySerialized_Fact_ValueType = 2
	CDOTAResponseQuerySerialized_Fact_STRINGTABLE_INDEX CDOTAResponseQuerySerialized_Fact_ValueType = 3
	CDOTAResponseQuerySerialized_Fact_INT_NUMERIC       CDOTAResponseQuerySerialized_Fact_ValueType = 4
)

// Enum value maps for CDOTAResponseQuerySerialized_Fact_ValueType.
var (
	CDOTAResponseQuerySerialized_Fact_ValueType_name = map[int32]string{
		1: "NUMERIC",
		2: "STRING",
		3: "STRINGTABLE_INDEX",
		4: "INT_NUMERIC",
	}
	CDOTAResponseQuerySerialized_Fact_ValueType_value = map[string]int32{
		"NUMERIC":           1,
		"STRING":            2,
		"STRINGTABLE_INDEX": 3,
		"INT_NUMERIC":       4,
	}
)

func (x CDOTAResponseQuerySerialized_Fact_ValueType) Enum() *CDOTAResponseQuerySerialized_Fact_ValueType {
	p := new(CDOTAResponseQuerySerialized_Fact_ValueType)
	*p = x
	return p
}

func (x CDOTAResponseQuerySerialized_Fact_ValueType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (CDOTAResponseQuerySerialized_Fact_ValueType) Descriptor() protoreflect.EnumDescriptor {
	return file_dota_usermessages_proto_enumTypes[15].Descriptor()
}

func (CDOTAResponseQuerySerialized_Fact_ValueType) Type() protoreflect.EnumType {
	return &file_dota_usermessages_proto_enumTypes[15]
}

func (x CDOTAResponseQuerySerialized_Fact_ValueType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Do not use.
func (x *CDOTAResponseQuerySerialized_Fact_ValueType) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = CDOTAResponseQuerySerialized_Fact_ValueType(num)
	return nil
}

// Deprecated: Use CDOTAResponseQuerySerialized_Fact_ValueType.Descriptor instead.
func (CDOTAResponseQuerySerialized_Fact_ValueType) EnumDescriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{41, 0, 0}
}

type CDOTAUserMsg_GuildChallenge_Progress_EChallengeType int32

const (
	CDOTAUserMsg_GuildChallenge_Progress_k_EChallengeType_Invalid     CDOTAUserMsg_GuildChallenge_Progress_EChallengeType = 0
	CDOTAUserMsg_GuildChallenge_Progress_k_EChallengeType_Cooperative CDOTAUserMsg_GuildChallenge_Progress_EChallengeType = 1
	CDOTAUserMsg_GuildChallenge_Progress_k_EChallengeType_Contract    CDOTAUserMsg_GuildChallenge_Progress_EChallengeType = 2
)

// Enum value maps for CDOTAUserMsg_GuildChallenge_Progress_EChallengeType.
var (
	CDOTAUserMsg_GuildChallenge_Progress_EChallengeType_name = map[int32]string{
		0: "k_EChallengeType_Invalid",
		1: "k_EChallengeType_Cooperative",
		2: "k_EChallengeType_Contract",
	}
	CDOTAUserMsg_GuildChallenge_Progress_EChallengeType_value = map[string]int32{
		"k_EChallengeType_Invalid":     0,
		"k_EChallengeType_Cooperative": 1,
		"k_EChallengeType_Contract":    2,
	}
)

func (x CDOTAUserMsg_GuildChallenge_Progress_EChallengeType) Enum() *CDOTAUserMsg_GuildChallenge_Progress_EChallengeType {
	p := new(CDOTAUserMsg_GuildChallenge_Progress_EChallengeType)
	*p = x
	return p
}

func (x CDOTAUserMsg_GuildChallenge_Progress_EChallengeType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (CDOTAUserMsg_GuildChallenge_Progress_EChallengeType) Descriptor() protoreflect.EnumDescriptor {
	return file_dota_usermessages_proto_enumTypes[16].Descriptor()
}

func (CDOTAUserMsg_GuildChallenge_Progress_EChallengeType) Type() protoreflect.EnumType {
	return &file_dota_usermessages_proto_enumTypes[16]
}

func (x CDOTAUserMsg_GuildChallenge_Progress_EChallengeType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Do not use.
func (x *CDOTAUserMsg_GuildChallenge_Progress_EChallengeType) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = CDOTAUserMsg_GuildChallenge_Progress_EChallengeType(num)
	return nil
}

// Deprecated: Use CDOTAUserMsg_GuildChallenge_Progress_EChallengeType.Descriptor instead.
func (CDOTAUserMsg_GuildChallenge_Progress_EChallengeType) EnumDescriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{144, 0}
}

type CDOTAUserMsg_AIDebugLine struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Message *string `protobuf:"bytes,1,opt,name=message" json:"message,omitempty"`
}

func (x *CDOTAUserMsg_AIDebugLine) Reset() {
	*x = CDOTAUserMsg_AIDebugLine{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_AIDebugLine) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_AIDebugLine) ProtoMessage() {}

func (x *CDOTAUserMsg_AIDebugLine) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[0]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_AIDebugLine.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_AIDebugLine) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{0}
}

func (x *CDOTAUserMsg_AIDebugLine) GetMessage() string {
	if x != nil && x.Message != nil {
		return *x.Message
	}
	return ""
}

type CDOTAUserMsg_Ping struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Ping *uint32 `protobuf:"varint,2,opt,name=ping" json:"ping,omitempty"`
	Loss *uint32 `protobuf:"varint,3,opt,name=loss" json:"loss,omitempty"`
}

func (x *CDOTAUserMsg_Ping) Reset() {
	*x = CDOTAUserMsg_Ping{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_Ping) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_Ping) ProtoMessage() {}

func (x *CDOTAUserMsg_Ping) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[1]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_Ping.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_Ping) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{1}
}

func (x *CDOTAUserMsg_Ping) GetPing() uint32 {
	if x != nil && x.Ping != nil {
		return *x.Ping
	}
	return 0
}

func (x *CDOTAUserMsg_Ping) GetLoss() uint32 {
	if x != nil && x.Loss != nil {
		return *x.Loss
	}
	return 0
}

type CDOTAUserMsg_SwapVerify struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId *int32 `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
}

func (x *CDOTAUserMsg_SwapVerify) Reset() {
	*x = CDOTAUserMsg_SwapVerify{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_SwapVerify) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_SwapVerify) ProtoMessage() {}

func (x *CDOTAUserMsg_SwapVerify) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[2]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_SwapVerify.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_SwapVerify) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{2}
}

func (x *CDOTAUserMsg_SwapVerify) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

type CDOTAUserMsg_ChatEvent struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Type       *DOTA_CHAT_MESSAGE `protobuf:"varint,1,req,name=type,enum=DOTA_CHAT_MESSAGE,def=-1" json:"type,omitempty"`
	Value      *uint32            `protobuf:"varint,2,opt,name=value" json:"value,omitempty"`
	Playerid_1 *int32             `protobuf:"zigzag32,3,opt,name=playerid_1,json=playerid1,def=-1" json:"playerid_1,omitempty"`
	Playerid_2 *int32             `protobuf:"zigzag32,4,opt,name=playerid_2,json=playerid2,def=-1" json:"playerid_2,omitempty"`
	Playerid_3 *int32             `protobuf:"zigzag32,5,opt,name=playerid_3,json=playerid3,def=-1" json:"playerid_3,omitempty"`
	Playerid_4 *int32             `protobuf:"zigzag32,6,opt,name=playerid_4,json=playerid4,def=-1" json:"playerid_4,omitempty"`
	Playerid_5 *int32             `protobuf:"zigzag32,7,opt,name=playerid_5,json=playerid5,def=-1" json:"playerid_5,omitempty"`
	Playerid_6 *int32             `protobuf:"zigzag32,8,opt,name=playerid_6,json=playerid6,def=-1" json:"playerid_6,omitempty"`
	Value2     *uint32            `protobuf:"varint,9,opt,name=value2" json:"value2,omitempty"`
	Value3     *uint32            `protobuf:"varint,10,opt,name=value3" json:"value3,omitempty"`
}

// Default values for CDOTAUserMsg_ChatEvent fields.
const (
	Default_CDOTAUserMsg_ChatEvent_Type       = DOTA_CHAT_MESSAGE_CHAT_MESSAGE_INVALID
	Default_CDOTAUserMsg_ChatEvent_Playerid_1 = int32(-1)
	Default_CDOTAUserMsg_ChatEvent_Playerid_2 = int32(-1)
	Default_CDOTAUserMsg_ChatEvent_Playerid_3 = int32(-1)
	Default_CDOTAUserMsg_ChatEvent_Playerid_4 = int32(-1)
	Default_CDOTAUserMsg_ChatEvent_Playerid_5 = int32(-1)
	Default_CDOTAUserMsg_ChatEvent_Playerid_6 = int32(-1)
)

func (x *CDOTAUserMsg_ChatEvent) Reset() {
	*x = CDOTAUserMsg_ChatEvent{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_ChatEvent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_ChatEvent) ProtoMessage() {}

func (x *CDOTAUserMsg_ChatEvent) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[3]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_ChatEvent.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_ChatEvent) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{3}
}

func (x *CDOTAUserMsg_ChatEvent) GetType() DOTA_CHAT_MESSAGE {
	if x != nil && x.Type != nil {
		return *x.Type
	}
	return Default_CDOTAUserMsg_ChatEvent_Type
}

func (x *CDOTAUserMsg_ChatEvent) GetValue() uint32 {
	if x != nil && x.Value != nil {
		return *x.Value
	}
	return 0
}

func (x *CDOTAUserMsg_ChatEvent) GetPlayerid_1() int32 {
	if x != nil && x.Playerid_1 != nil {
		return *x.Playerid_1
	}
	return Default_CDOTAUserMsg_ChatEvent_Playerid_1
}

func (x *CDOTAUserMsg_ChatEvent) GetPlayerid_2() int32 {
	if x != nil && x.Playerid_2 != nil {
		return *x.Playerid_2
	}
	return Default_CDOTAUserMsg_ChatEvent_Playerid_2
}

func (x *CDOTAUserMsg_ChatEvent) GetPlayerid_3() int32 {
	if x != nil && x.Playerid_3 != nil {
		return *x.Playerid_3
	}
	return Default_CDOTAUserMsg_ChatEvent_Playerid_3
}

func (x *CDOTAUserMsg_ChatEvent) GetPlayerid_4() int32 {
	if x != nil && x.Playerid_4 != nil {
		return *x.Playerid_4
	}
	return Default_CDOTAUserMsg_ChatEvent_Playerid_4
}

func (x *CDOTAUserMsg_ChatEvent) GetPlayerid_5() int32 {
	if x != nil && x.Playerid_5 != nil {
		return *x.Playerid_5
	}
	return Default_CDOTAUserMsg_ChatEvent_Playerid_5
}

func (x *CDOTAUserMsg_ChatEvent) GetPlayerid_6() int32 {
	if x != nil && x.Playerid_6 != nil {
		return *x.Playerid_6
	}
	return Default_CDOTAUserMsg_ChatEvent_Playerid_6
}

func (x *CDOTAUserMsg_ChatEvent) GetValue2() uint32 {
	if x != nil && x.Value2 != nil {
		return *x.Value2
	}
	return 0
}

func (x *CDOTAUserMsg_ChatEvent) GetValue3() uint32 {
	if x != nil && x.Value3 != nil {
		return *x.Value3
	}
	return 0
}

type CDOTAUserMsg_BotChat struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId *int32  `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	Message  *string `protobuf:"bytes,3,opt,name=message" json:"message,omitempty"`
	Target   *string `protobuf:"bytes,4,opt,name=target" json:"target,omitempty"`
	TeamOnly *bool   `protobuf:"varint,5,opt,name=team_only,json=teamOnly" json:"team_only,omitempty"`
}

func (x *CDOTAUserMsg_BotChat) Reset() {
	*x = CDOTAUserMsg_BotChat{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_BotChat) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_BotChat) ProtoMessage() {}

func (x *CDOTAUserMsg_BotChat) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[4]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_BotChat.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_BotChat) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{4}
}

func (x *CDOTAUserMsg_BotChat) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_BotChat) GetMessage() string {
	if x != nil && x.Message != nil {
		return *x.Message
	}
	return ""
}

func (x *CDOTAUserMsg_BotChat) GetTarget() string {
	if x != nil && x.Target != nil {
		return *x.Target
	}
	return ""
}

func (x *CDOTAUserMsg_BotChat) GetTeamOnly() bool {
	if x != nil && x.TeamOnly != nil {
		return *x.TeamOnly
	}
	return false
}

type CDOTAUserMsg_CombatHeroPositions struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Index    *uint32       `protobuf:"varint,1,opt,name=index" json:"index,omitempty"`
	Time     *int32        `protobuf:"varint,2,opt,name=time" json:"time,omitempty"`
	WorldPos *CMsgVector2D `protobuf:"bytes,3,opt,name=world_pos,json=worldPos" json:"world_pos,omitempty"`
	Health   *int32        `protobuf:"varint,4,opt,name=health" json:"health,omitempty"`
}

func (x *CDOTAUserMsg_CombatHeroPositions) Reset() {
	*x = CDOTAUserMsg_CombatHeroPositions{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_CombatHeroPositions) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_CombatHeroPositions) ProtoMessage() {}

func (x *CDOTAUserMsg_CombatHeroPositions) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[5]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_CombatHeroPositions.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_CombatHeroPositions) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{5}
}

func (x *CDOTAUserMsg_CombatHeroPositions) GetIndex() uint32 {
	if x != nil && x.Index != nil {
		return *x.Index
	}
	return 0
}

func (x *CDOTAUserMsg_CombatHeroPositions) GetTime() int32 {
	if x != nil && x.Time != nil {
		return *x.Time
	}
	return 0
}

func (x *CDOTAUserMsg_CombatHeroPositions) GetWorldPos() *CMsgVector2D {
	if x != nil {
		return x.WorldPos
	}
	return nil
}

func (x *CDOTAUserMsg_CombatHeroPositions) GetHealth() int32 {
	if x != nil && x.Health != nil {
		return *x.Health
	}
	return 0
}

type CDOTAUserMsg_CombatLogBulkData struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CombatEntries []*CMsgDOTACombatLogEntry `protobuf:"bytes,1,rep,name=combat_entries,json=combatEntries" json:"combat_entries,omitempty"`
	Timestamp     *float32                  `protobuf:"fixed32,2,opt,name=timestamp" json:"timestamp,omitempty"`
	Duration      *float32                  `protobuf:"fixed32,3,opt,name=duration" json:"duration,omitempty"`
	PlayerId      *int32                    `protobuf:"varint,4,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
}

func (x *CDOTAUserMsg_CombatLogBulkData) Reset() {
	*x = CDOTAUserMsg_CombatLogBulkData{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_CombatLogBulkData) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_CombatLogBulkData) ProtoMessage() {}

func (x *CDOTAUserMsg_CombatLogBulkData) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[6]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_CombatLogBulkData.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_CombatLogBulkData) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{6}
}

func (x *CDOTAUserMsg_CombatLogBulkData) GetCombatEntries() []*CMsgDOTACombatLogEntry {
	if x != nil {
		return x.CombatEntries
	}
	return nil
}

func (x *CDOTAUserMsg_CombatLogBulkData) GetTimestamp() float32 {
	if x != nil && x.Timestamp != nil {
		return *x.Timestamp
	}
	return 0
}

func (x *CDOTAUserMsg_CombatLogBulkData) GetDuration() float32 {
	if x != nil && x.Duration != nil {
		return *x.Duration
	}
	return 0
}

func (x *CDOTAUserMsg_CombatLogBulkData) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

type CDOTAUserMsg_ProjectileParticleCPData struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ControlPoint *int32      `protobuf:"varint,1,opt,name=control_point,json=controlPoint" json:"control_point,omitempty"`
	Vector       *CMsgVector `protobuf:"bytes,2,opt,name=vector" json:"vector,omitempty"`
}

func (x *CDOTAUserMsg_ProjectileParticleCPData) Reset() {
	*x = CDOTAUserMsg_ProjectileParticleCPData{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_ProjectileParticleCPData) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_ProjectileParticleCPData) ProtoMessage() {}

func (x *CDOTAUserMsg_ProjectileParticleCPData) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[7]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_ProjectileParticleCPData.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_ProjectileParticleCPData) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{7}
}

func (x *CDOTAUserMsg_ProjectileParticleCPData) GetControlPoint() int32 {
	if x != nil && x.ControlPoint != nil {
		return *x.ControlPoint
	}
	return 0
}

func (x *CDOTAUserMsg_ProjectileParticleCPData) GetVector() *CMsgVector {
	if x != nil {
		return x.Vector
	}
	return nil
}

type CDOTAUserMsg_MiniKillCamInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Attackers []*CDOTAUserMsg_MiniKillCamInfo_Attacker `protobuf:"bytes,1,rep,name=attackers" json:"attackers,omitempty"`
}

func (x *CDOTAUserMsg_MiniKillCamInfo) Reset() {
	*x = CDOTAUserMsg_MiniKillCamInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_MiniKillCamInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_MiniKillCamInfo) ProtoMessage() {}

func (x *CDOTAUserMsg_MiniKillCamInfo) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[8]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_MiniKillCamInfo.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_MiniKillCamInfo) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{8}
}

func (x *CDOTAUserMsg_MiniKillCamInfo) GetAttackers() []*CDOTAUserMsg_MiniKillCamInfo_Attacker {
	if x != nil {
		return x.Attackers
	}
	return nil
}

type CDOTAUserMsg_GlobalLightColor struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Color    *uint32  `protobuf:"varint,1,opt,name=color" json:"color,omitempty"`
	Duration *float32 `protobuf:"fixed32,2,opt,name=duration" json:"duration,omitempty"`
}

func (x *CDOTAUserMsg_GlobalLightColor) Reset() {
	*x = CDOTAUserMsg_GlobalLightColor{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_GlobalLightColor) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_GlobalLightColor) ProtoMessage() {}

func (x *CDOTAUserMsg_GlobalLightColor) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[9]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_GlobalLightColor.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_GlobalLightColor) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{9}
}

func (x *CDOTAUserMsg_GlobalLightColor) GetColor() uint32 {
	if x != nil && x.Color != nil {
		return *x.Color
	}
	return 0
}

func (x *CDOTAUserMsg_GlobalLightColor) GetDuration() float32 {
	if x != nil && x.Duration != nil {
		return *x.Duration
	}
	return 0
}

type CDOTAUserMsg_GlobalLightDirection struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Direction *CMsgVector `protobuf:"bytes,1,opt,name=direction" json:"direction,omitempty"`
	Duration  *float32    `protobuf:"fixed32,2,opt,name=duration" json:"duration,omitempty"`
}

func (x *CDOTAUserMsg_GlobalLightDirection) Reset() {
	*x = CDOTAUserMsg_GlobalLightDirection{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_GlobalLightDirection) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_GlobalLightDirection) ProtoMessage() {}

func (x *CDOTAUserMsg_GlobalLightDirection) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[10]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_GlobalLightDirection.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_GlobalLightDirection) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{10}
}

func (x *CDOTAUserMsg_GlobalLightDirection) GetDirection() *CMsgVector {
	if x != nil {
		return x.Direction
	}
	return nil
}

func (x *CDOTAUserMsg_GlobalLightDirection) GetDuration() float32 {
	if x != nil && x.Duration != nil {
		return *x.Duration
	}
	return 0
}

type CDOTAUserMsg_LocationPing struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId     *int32                 `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	LocationPing *CDOTAMsg_LocationPing `protobuf:"bytes,2,opt,name=location_ping,json=locationPing" json:"location_ping,omitempty"`
}

func (x *CDOTAUserMsg_LocationPing) Reset() {
	*x = CDOTAUserMsg_LocationPing{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_LocationPing) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_LocationPing) ProtoMessage() {}

func (x *CDOTAUserMsg_LocationPing) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[11]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_LocationPing.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_LocationPing) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{11}
}

func (x *CDOTAUserMsg_LocationPing) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_LocationPing) GetLocationPing() *CDOTAMsg_LocationPing {
	if x != nil {
		return x.LocationPing
	}
	return nil
}

type CDOTAUserMsg_PingConfirmation struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerIdOfOriginalPinger *int32      `protobuf:"varint,1,opt,name=player_id_of_original_pinger,json=playerIdOfOriginalPinger" json:"player_id_of_original_pinger,omitempty"`
	EntityIndex              *uint32     `protobuf:"varint,2,opt,name=entity_index,json=entityIndex" json:"entity_index,omitempty"`
	IconType                 *uint32     `protobuf:"varint,3,opt,name=icon_type,json=iconType" json:"icon_type,omitempty"`
	Location                 *CMsgVector `protobuf:"bytes,4,opt,name=location" json:"location,omitempty"`
}

func (x *CDOTAUserMsg_PingConfirmation) Reset() {
	*x = CDOTAUserMsg_PingConfirmation{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_PingConfirmation) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_PingConfirmation) ProtoMessage() {}

func (x *CDOTAUserMsg_PingConfirmation) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[12]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_PingConfirmation.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_PingConfirmation) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{12}
}

func (x *CDOTAUserMsg_PingConfirmation) GetPlayerIdOfOriginalPinger() int32 {
	if x != nil && x.PlayerIdOfOriginalPinger != nil {
		return *x.PlayerIdOfOriginalPinger
	}
	return 0
}

func (x *CDOTAUserMsg_PingConfirmation) GetEntityIndex() uint32 {
	if x != nil && x.EntityIndex != nil {
		return *x.EntityIndex
	}
	return 0
}

func (x *CDOTAUserMsg_PingConfirmation) GetIconType() uint32 {
	if x != nil && x.IconType != nil {
		return *x.IconType
	}
	return 0
}

func (x *CDOTAUserMsg_PingConfirmation) GetLocation() *CMsgVector {
	if x != nil {
		return x.Location
	}
	return nil
}

type CDOTAUserMsg_ItemAlert struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId  *int32              `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	ItemAlert *CDOTAMsg_ItemAlert `protobuf:"bytes,2,opt,name=item_alert,json=itemAlert" json:"item_alert,omitempty"`
}

func (x *CDOTAUserMsg_ItemAlert) Reset() {
	*x = CDOTAUserMsg_ItemAlert{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_ItemAlert) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_ItemAlert) ProtoMessage() {}

func (x *CDOTAUserMsg_ItemAlert) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[13]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_ItemAlert.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_ItemAlert) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{13}
}

func (x *CDOTAUserMsg_ItemAlert) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_ItemAlert) GetItemAlert() *CDOTAMsg_ItemAlert {
	if x != nil {
		return x.ItemAlert
	}
	return nil
}

type CDOTAUserMsg_EnemyItemAlert struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId         *int32 `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	TargetPlayerId   *int32 `protobuf:"varint,2,opt,name=target_player_id,json=targetPlayerId" json:"target_player_id,omitempty"`
	ItemAbilityId    *int32 `protobuf:"varint,3,opt,name=item_ability_id,json=itemAbilityId" json:"item_ability_id,omitempty"`
	RuneType         *int32 `protobuf:"varint,4,opt,name=rune_type,json=runeType,def=-1" json:"rune_type,omitempty"`
	EntityId         *int32 `protobuf:"varint,5,opt,name=entity_id,json=entityId" json:"entity_id,omitempty"`
	ItemLevel        *int32 `protobuf:"varint,6,opt,name=item_level,json=itemLevel,def=-1" json:"item_level,omitempty"`
	PrimaryCharges   *int32 `protobuf:"varint,7,opt,name=primary_charges,json=primaryCharges,def=-1" json:"primary_charges,omitempty"`
	SecondaryCharges *int32 `protobuf:"varint,8,opt,name=secondary_charges,json=secondaryCharges,def=-1" json:"secondary_charges,omitempty"`
}

// Default values for CDOTAUserMsg_EnemyItemAlert fields.
const (
	Default_CDOTAUserMsg_EnemyItemAlert_RuneType         = int32(-1)
	Default_CDOTAUserMsg_EnemyItemAlert_ItemLevel        = int32(-1)
	Default_CDOTAUserMsg_EnemyItemAlert_PrimaryCharges   = int32(-1)
	Default_CDOTAUserMsg_EnemyItemAlert_SecondaryCharges = int32(-1)
)

func (x *CDOTAUserMsg_EnemyItemAlert) Reset() {
	*x = CDOTAUserMsg_EnemyItemAlert{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_EnemyItemAlert) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_EnemyItemAlert) ProtoMessage() {}

func (x *CDOTAUserMsg_EnemyItemAlert) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[14]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_EnemyItemAlert.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_EnemyItemAlert) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{14}
}

func (x *CDOTAUserMsg_EnemyItemAlert) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_EnemyItemAlert) GetTargetPlayerId() int32 {
	if x != nil && x.TargetPlayerId != nil {
		return *x.TargetPlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_EnemyItemAlert) GetItemAbilityId() int32 {
	if x != nil && x.ItemAbilityId != nil {
		return *x.ItemAbilityId
	}
	return 0
}

func (x *CDOTAUserMsg_EnemyItemAlert) GetRuneType() int32 {
	if x != nil && x.RuneType != nil {
		return *x.RuneType
	}
	return Default_CDOTAUserMsg_EnemyItemAlert_RuneType
}

func (x *CDOTAUserMsg_EnemyItemAlert) GetEntityId() int32 {
	if x != nil && x.EntityId != nil {
		return *x.EntityId
	}
	return 0
}

func (x *CDOTAUserMsg_EnemyItemAlert) GetItemLevel() int32 {
	if x != nil && x.ItemLevel != nil {
		return *x.ItemLevel
	}
	return Default_CDOTAUserMsg_EnemyItemAlert_ItemLevel
}

func (x *CDOTAUserMsg_EnemyItemAlert) GetPrimaryCharges() int32 {
	if x != nil && x.PrimaryCharges != nil {
		return *x.PrimaryCharges
	}
	return Default_CDOTAUserMsg_EnemyItemAlert_PrimaryCharges
}

func (x *CDOTAUserMsg_EnemyItemAlert) GetSecondaryCharges() int32 {
	if x != nil && x.SecondaryCharges != nil {
		return *x.SecondaryCharges
	}
	return Default_CDOTAUserMsg_EnemyItemAlert_SecondaryCharges
}

type CDOTAUserMsg_ModifierAlert struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId         *int32   `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	ClassName        *string  `protobuf:"bytes,2,opt,name=class_name,json=className" json:"class_name,omitempty"`
	StackCount       *uint32  `protobuf:"varint,3,opt,name=stack_count,json=stackCount" json:"stack_count,omitempty"`
	IsDebuff         *bool    `protobuf:"varint,4,opt,name=is_debuff,json=isDebuff" json:"is_debuff,omitempty"`
	TargetEntindex   *int32   `protobuf:"varint,5,opt,name=target_entindex,json=targetEntindex" json:"target_entindex,omitempty"`
	SecondsRemaining *float32 `protobuf:"fixed32,6,opt,name=seconds_remaining,json=secondsRemaining" json:"seconds_remaining,omitempty"`
}

func (x *CDOTAUserMsg_ModifierAlert) Reset() {
	*x = CDOTAUserMsg_ModifierAlert{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_ModifierAlert) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_ModifierAlert) ProtoMessage() {}

func (x *CDOTAUserMsg_ModifierAlert) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[15]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_ModifierAlert.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_ModifierAlert) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{15}
}

func (x *CDOTAUserMsg_ModifierAlert) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_ModifierAlert) GetClassName() string {
	if x != nil && x.ClassName != nil {
		return *x.ClassName
	}
	return ""
}

func (x *CDOTAUserMsg_ModifierAlert) GetStackCount() uint32 {
	if x != nil && x.StackCount != nil {
		return *x.StackCount
	}
	return 0
}

func (x *CDOTAUserMsg_ModifierAlert) GetIsDebuff() bool {
	if x != nil && x.IsDebuff != nil {
		return *x.IsDebuff
	}
	return false
}

func (x *CDOTAUserMsg_ModifierAlert) GetTargetEntindex() int32 {
	if x != nil && x.TargetEntindex != nil {
		return *x.TargetEntindex
	}
	return 0
}

func (x *CDOTAUserMsg_ModifierAlert) GetSecondsRemaining() float32 {
	if x != nil && x.SecondsRemaining != nil {
		return *x.SecondsRemaining
	}
	return 0
}

type CDOTAUserMsg_HPManaAlert struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId       *int32 `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	TargetEntindex *int32 `protobuf:"varint,2,opt,name=target_entindex,json=targetEntindex" json:"target_entindex,omitempty"`
	ShowRawValues  *bool  `protobuf:"varint,3,opt,name=show_raw_values,json=showRawValues" json:"show_raw_values,omitempty"`
}

func (x *CDOTAUserMsg_HPManaAlert) Reset() {
	*x = CDOTAUserMsg_HPManaAlert{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[16]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_HPManaAlert) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_HPManaAlert) ProtoMessage() {}

func (x *CDOTAUserMsg_HPManaAlert) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[16]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_HPManaAlert.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_HPManaAlert) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{16}
}

func (x *CDOTAUserMsg_HPManaAlert) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_HPManaAlert) GetTargetEntindex() int32 {
	if x != nil && x.TargetEntindex != nil {
		return *x.TargetEntindex
	}
	return 0
}

func (x *CDOTAUserMsg_HPManaAlert) GetShowRawValues() bool {
	if x != nil && x.ShowRawValues != nil {
		return *x.ShowRawValues
	}
	return false
}

type CDOTAUserMsg_GlyphAlert struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId *int32 `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	Negative *bool  `protobuf:"varint,2,opt,name=negative" json:"negative,omitempty"`
}

func (x *CDOTAUserMsg_GlyphAlert) Reset() {
	*x = CDOTAUserMsg_GlyphAlert{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_GlyphAlert) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_GlyphAlert) ProtoMessage() {}

func (x *CDOTAUserMsg_GlyphAlert) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[17]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_GlyphAlert.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_GlyphAlert) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{17}
}

func (x *CDOTAUserMsg_GlyphAlert) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_GlyphAlert) GetNegative() bool {
	if x != nil && x.Negative != nil {
		return *x.Negative
	}
	return false
}

type CDOTAUserMsg_RadarAlert struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId *int32 `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	Negative *bool  `protobuf:"varint,2,opt,name=negative" json:"negative,omitempty"`
}

func (x *CDOTAUserMsg_RadarAlert) Reset() {
	*x = CDOTAUserMsg_RadarAlert{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[18]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_RadarAlert) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_RadarAlert) ProtoMessage() {}

func (x *CDOTAUserMsg_RadarAlert) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[18]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_RadarAlert.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_RadarAlert) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{18}
}

func (x *CDOTAUserMsg_RadarAlert) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_RadarAlert) GetNegative() bool {
	if x != nil && x.Negative != nil {
		return *x.Negative
	}
	return false
}

type CDOTAUserMsg_WillPurchaseAlert struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ItemAbilityId      *int32  `protobuf:"varint,1,opt,name=item_ability_id,json=itemAbilityId" json:"item_ability_id,omitempty"`
	PlayerId           *int32  `protobuf:"varint,2,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	GoldRemaining      *uint32 `protobuf:"varint,3,opt,name=gold_remaining,json=goldRemaining" json:"gold_remaining,omitempty"`
	SuggestionPlayerId *int32  `protobuf:"varint,4,opt,name=suggestion_player_id,json=suggestionPlayerId" json:"suggestion_player_id,omitempty"`
}

func (x *CDOTAUserMsg_WillPurchaseAlert) Reset() {
	*x = CDOTAUserMsg_WillPurchaseAlert{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[19]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_WillPurchaseAlert) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_WillPurchaseAlert) ProtoMessage() {}

func (x *CDOTAUserMsg_WillPurchaseAlert) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[19]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_WillPurchaseAlert.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_WillPurchaseAlert) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{19}
}

func (x *CDOTAUserMsg_WillPurchaseAlert) GetItemAbilityId() int32 {
	if x != nil && x.ItemAbilityId != nil {
		return *x.ItemAbilityId
	}
	return 0
}

func (x *CDOTAUserMsg_WillPurchaseAlert) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_WillPurchaseAlert) GetGoldRemaining() uint32 {
	if x != nil && x.GoldRemaining != nil {
		return *x.GoldRemaining
	}
	return 0
}

func (x *CDOTAUserMsg_WillPurchaseAlert) GetSuggestionPlayerId() int32 {
	if x != nil && x.SuggestionPlayerId != nil {
		return *x.SuggestionPlayerId
	}
	return 0
}

type CDOTAUserMsg_EmptyTeleportAlert struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SourcePlayerId  *int32 `protobuf:"varint,1,opt,name=source_player_id,json=sourcePlayerId" json:"source_player_id,omitempty"`
	TargetPlayerId  *int32 `protobuf:"varint,2,opt,name=target_player_id,json=targetPlayerId" json:"target_player_id,omitempty"`
	CooldownSeconds *int32 `protobuf:"varint,3,opt,name=cooldown_seconds,json=cooldownSeconds" json:"cooldown_seconds,omitempty"`
}

func (x *CDOTAUserMsg_EmptyTeleportAlert) Reset() {
	*x = CDOTAUserMsg_EmptyTeleportAlert{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[20]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_EmptyTeleportAlert) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_EmptyTeleportAlert) ProtoMessage() {}

func (x *CDOTAUserMsg_EmptyTeleportAlert) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[20]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_EmptyTeleportAlert.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_EmptyTeleportAlert) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{20}
}

func (x *CDOTAUserMsg_EmptyTeleportAlert) GetSourcePlayerId() int32 {
	if x != nil && x.SourcePlayerId != nil {
		return *x.SourcePlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_EmptyTeleportAlert) GetTargetPlayerId() int32 {
	if x != nil && x.TargetPlayerId != nil {
		return *x.TargetPlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_EmptyTeleportAlert) GetCooldownSeconds() int32 {
	if x != nil && x.CooldownSeconds != nil {
		return *x.CooldownSeconds
	}
	return 0
}

type CDOTAUserMsg_MarsArenaOfBloodAttack struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SourceEhandle *uint32 `protobuf:"varint,1,opt,name=source_ehandle,json=sourceEhandle" json:"source_ehandle,omitempty"`
	TargetEhandle *uint32 `protobuf:"varint,2,opt,name=target_ehandle,json=targetEhandle" json:"target_ehandle,omitempty"`
	WarriorIndex  *int32  `protobuf:"varint,3,opt,name=warrior_index,json=warriorIndex" json:"warrior_index,omitempty"`
}

func (x *CDOTAUserMsg_MarsArenaOfBloodAttack) Reset() {
	*x = CDOTAUserMsg_MarsArenaOfBloodAttack{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[21]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_MarsArenaOfBloodAttack) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_MarsArenaOfBloodAttack) ProtoMessage() {}

func (x *CDOTAUserMsg_MarsArenaOfBloodAttack) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[21]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_MarsArenaOfBloodAttack.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_MarsArenaOfBloodAttack) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{21}
}

func (x *CDOTAUserMsg_MarsArenaOfBloodAttack) GetSourceEhandle() uint32 {
	if x != nil && x.SourceEhandle != nil {
		return *x.SourceEhandle
	}
	return 0
}

func (x *CDOTAUserMsg_MarsArenaOfBloodAttack) GetTargetEhandle() uint32 {
	if x != nil && x.TargetEhandle != nil {
		return *x.TargetEhandle
	}
	return 0
}

func (x *CDOTAUserMsg_MarsArenaOfBloodAttack) GetWarriorIndex() int32 {
	if x != nil && x.WarriorIndex != nil {
		return *x.WarriorIndex
	}
	return 0
}

type CDOTAEntityMsg_InvokerSpellCast struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	EntityMsg    *CEntityMsg `protobuf:"bytes,1,opt,name=entity_msg,json=entityMsg" json:"entity_msg,omitempty"`
	CastActivity *int32      `protobuf:"varint,2,opt,name=cast_activity,json=castActivity" json:"cast_activity,omitempty"`
}

func (x *CDOTAEntityMsg_InvokerSpellCast) Reset() {
	*x = CDOTAEntityMsg_InvokerSpellCast{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[22]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAEntityMsg_InvokerSpellCast) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAEntityMsg_InvokerSpellCast) ProtoMessage() {}

func (x *CDOTAEntityMsg_InvokerSpellCast) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[22]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAEntityMsg_InvokerSpellCast.ProtoReflect.Descriptor instead.
func (*CDOTAEntityMsg_InvokerSpellCast) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{22}
}

func (x *CDOTAEntityMsg_InvokerSpellCast) GetEntityMsg() *CEntityMsg {
	if x != nil {
		return x.EntityMsg
	}
	return nil
}

func (x *CDOTAEntityMsg_InvokerSpellCast) GetCastActivity() int32 {
	if x != nil && x.CastActivity != nil {
		return *x.CastActivity
	}
	return 0
}

type CDOTAUserMsg_BuyBackStateAlert struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId *int32 `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
}

func (x *CDOTAUserMsg_BuyBackStateAlert) Reset() {
	*x = CDOTAUserMsg_BuyBackStateAlert{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[23]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_BuyBackStateAlert) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_BuyBackStateAlert) ProtoMessage() {}

func (x *CDOTAUserMsg_BuyBackStateAlert) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[23]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_BuyBackStateAlert.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_BuyBackStateAlert) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{23}
}

func (x *CDOTAUserMsg_BuyBackStateAlert) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

type CDOTAUserMsg_QuickBuyAlert struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId            *int32 `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	ItemAbilityId       *int32 `protobuf:"varint,2,opt,name=item_ability_id,json=itemAbilityId" json:"item_ability_id,omitempty"`
	GoldCost            *int32 `protobuf:"varint,3,opt,name=gold_cost,json=goldCost" json:"gold_cost,omitempty"`
	ItemCooldownSeconds *int32 `protobuf:"varint,4,opt,name=item_cooldown_seconds,json=itemCooldownSeconds" json:"item_cooldown_seconds,omitempty"`
	ShowBuyback         *bool  `protobuf:"varint,5,opt,name=show_buyback,json=showBuyback" json:"show_buyback,omitempty"`
}

func (x *CDOTAUserMsg_QuickBuyAlert) Reset() {
	*x = CDOTAUserMsg_QuickBuyAlert{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[24]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_QuickBuyAlert) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_QuickBuyAlert) ProtoMessage() {}

func (x *CDOTAUserMsg_QuickBuyAlert) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[24]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_QuickBuyAlert.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_QuickBuyAlert) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{24}
}

func (x *CDOTAUserMsg_QuickBuyAlert) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_QuickBuyAlert) GetItemAbilityId() int32 {
	if x != nil && x.ItemAbilityId != nil {
		return *x.ItemAbilityId
	}
	return 0
}

func (x *CDOTAUserMsg_QuickBuyAlert) GetGoldCost() int32 {
	if x != nil && x.GoldCost != nil {
		return *x.GoldCost
	}
	return 0
}

func (x *CDOTAUserMsg_QuickBuyAlert) GetItemCooldownSeconds() int32 {
	if x != nil && x.ItemCooldownSeconds != nil {
		return *x.ItemCooldownSeconds
	}
	return 0
}

func (x *CDOTAUserMsg_QuickBuyAlert) GetShowBuyback() bool {
	if x != nil && x.ShowBuyback != nil {
		return *x.ShowBuyback
	}
	return false
}

type CDOTAUserMsg_CourierKilledAlert struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Team           *uint32                                     `protobuf:"varint,1,opt,name=team" json:"team,omitempty"`
	GoldValue      *uint32                                     `protobuf:"varint,2,opt,name=gold_value,json=goldValue" json:"gold_value,omitempty"`
	EntityHandle   *uint32                                     `protobuf:"varint,3,opt,name=entity_handle,json=entityHandle" json:"entity_handle,omitempty"`
	Timestamp      *int32                                      `protobuf:"varint,4,opt,name=timestamp" json:"timestamp,omitempty"`
	LostItems      []*CDOTAUserMsg_CourierKilledAlert_LostItem `protobuf:"bytes,5,rep,name=lost_items,json=lostItems" json:"lost_items,omitempty"`
	KillerPlayerId *int32                                      `protobuf:"varint,6,opt,name=killer_player_id,json=killerPlayerId" json:"killer_player_id,omitempty"`
	OwningPlayerId *int32                                      `protobuf:"varint,7,opt,name=owning_player_id,json=owningPlayerId" json:"owning_player_id,omitempty"`
}

func (x *CDOTAUserMsg_CourierKilledAlert) Reset() {
	*x = CDOTAUserMsg_CourierKilledAlert{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[25]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_CourierKilledAlert) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_CourierKilledAlert) ProtoMessage() {}

func (x *CDOTAUserMsg_CourierKilledAlert) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[25]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_CourierKilledAlert.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_CourierKilledAlert) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{25}
}

func (x *CDOTAUserMsg_CourierKilledAlert) GetTeam() uint32 {
	if x != nil && x.Team != nil {
		return *x.Team
	}
	return 0
}

func (x *CDOTAUserMsg_CourierKilledAlert) GetGoldValue() uint32 {
	if x != nil && x.GoldValue != nil {
		return *x.GoldValue
	}
	return 0
}

func (x *CDOTAUserMsg_CourierKilledAlert) GetEntityHandle() uint32 {
	if x != nil && x.EntityHandle != nil {
		return *x.EntityHandle
	}
	return 0
}

func (x *CDOTAUserMsg_CourierKilledAlert) GetTimestamp() int32 {
	if x != nil && x.Timestamp != nil {
		return *x.Timestamp
	}
	return 0
}

func (x *CDOTAUserMsg_CourierKilledAlert) GetLostItems() []*CDOTAUserMsg_CourierKilledAlert_LostItem {
	if x != nil {
		return x.LostItems
	}
	return nil
}

func (x *CDOTAUserMsg_CourierKilledAlert) GetKillerPlayerId() int32 {
	if x != nil && x.KillerPlayerId != nil {
		return *x.KillerPlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_CourierKilledAlert) GetOwningPlayerId() int32 {
	if x != nil && x.OwningPlayerId != nil {
		return *x.OwningPlayerId
	}
	return 0
}

type CDOTAUserMsg_MinimapEvent struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	EventType          *int32  `protobuf:"varint,1,opt,name=event_type,json=eventType" json:"event_type,omitempty"`
	EntityHandle       *uint32 `protobuf:"varint,2,opt,name=entity_handle,json=entityHandle" json:"entity_handle,omitempty"`
	X                  *int32  `protobuf:"varint,3,opt,name=x" json:"x,omitempty"`
	Y                  *int32  `protobuf:"varint,4,opt,name=y" json:"y,omitempty"`
	Duration           *int32  `protobuf:"varint,5,opt,name=duration" json:"duration,omitempty"`
	TargetEntityHandle *uint32 `protobuf:"varint,6,opt,name=target_entity_handle,json=targetEntityHandle" json:"target_entity_handle,omitempty"`
}

func (x *CDOTAUserMsg_MinimapEvent) Reset() {
	*x = CDOTAUserMsg_MinimapEvent{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[26]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_MinimapEvent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_MinimapEvent) ProtoMessage() {}

func (x *CDOTAUserMsg_MinimapEvent) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[26]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_MinimapEvent.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_MinimapEvent) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{26}
}

func (x *CDOTAUserMsg_MinimapEvent) GetEventType() int32 {
	if x != nil && x.EventType != nil {
		return *x.EventType
	}
	return 0
}

func (x *CDOTAUserMsg_MinimapEvent) GetEntityHandle() uint32 {
	if x != nil && x.EntityHandle != nil {
		return *x.EntityHandle
	}
	return 0
}

func (x *CDOTAUserMsg_MinimapEvent) GetX() int32 {
	if x != nil && x.X != nil {
		return *x.X
	}
	return 0
}

func (x *CDOTAUserMsg_MinimapEvent) GetY() int32 {
	if x != nil && x.Y != nil {
		return *x.Y
	}
	return 0
}

func (x *CDOTAUserMsg_MinimapEvent) GetDuration() int32 {
	if x != nil && x.Duration != nil {
		return *x.Duration
	}
	return 0
}

func (x *CDOTAUserMsg_MinimapEvent) GetTargetEntityHandle() uint32 {
	if x != nil && x.TargetEntityHandle != nil {
		return *x.TargetEntityHandle
	}
	return 0
}

type CDOTAUserMsg_MapLine struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId *int32            `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	Mapline  *CDOTAMsg_MapLine `protobuf:"bytes,2,opt,name=mapline" json:"mapline,omitempty"`
}

func (x *CDOTAUserMsg_MapLine) Reset() {
	*x = CDOTAUserMsg_MapLine{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[27]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_MapLine) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_MapLine) ProtoMessage() {}

func (x *CDOTAUserMsg_MapLine) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[27]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_MapLine.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_MapLine) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{27}
}

func (x *CDOTAUserMsg_MapLine) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_MapLine) GetMapline() *CDOTAMsg_MapLine {
	if x != nil {
		return x.Mapline
	}
	return nil
}

type CDOTAUserMsg_MinimapDebugPoint struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Location *CMsgVector `protobuf:"bytes,1,opt,name=location" json:"location,omitempty"`
	Color    *uint32     `protobuf:"varint,2,opt,name=color" json:"color,omitempty"`
	Size     *int32      `protobuf:"varint,3,opt,name=size" json:"size,omitempty"`
	Duration *float32    `protobuf:"fixed32,4,opt,name=duration" json:"duration,omitempty"`
	Index    *int32      `protobuf:"varint,5,opt,name=index" json:"index,omitempty"`
}

func (x *CDOTAUserMsg_MinimapDebugPoint) Reset() {
	*x = CDOTAUserMsg_MinimapDebugPoint{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[28]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_MinimapDebugPoint) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_MinimapDebugPoint) ProtoMessage() {}

func (x *CDOTAUserMsg_MinimapDebugPoint) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[28]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_MinimapDebugPoint.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_MinimapDebugPoint) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{28}
}

func (x *CDOTAUserMsg_MinimapDebugPoint) GetLocation() *CMsgVector {
	if x != nil {
		return x.Location
	}
	return nil
}

func (x *CDOTAUserMsg_MinimapDebugPoint) GetColor() uint32 {
	if x != nil && x.Color != nil {
		return *x.Color
	}
	return 0
}

func (x *CDOTAUserMsg_MinimapDebugPoint) GetSize() int32 {
	if x != nil && x.Size != nil {
		return *x.Size
	}
	return 0
}

func (x *CDOTAUserMsg_MinimapDebugPoint) GetDuration() float32 {
	if x != nil && x.Duration != nil {
		return *x.Duration
	}
	return 0
}

func (x *CDOTAUserMsg_MinimapDebugPoint) GetIndex() int32 {
	if x != nil && x.Index != nil {
		return *x.Index
	}
	return 0
}

type CDOTAUserMsg_CreateLinearProjectile struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Origin          *CMsgVector                              `protobuf:"bytes,1,opt,name=origin" json:"origin,omitempty"`
	Velocity        *CMsgVector2D                            `protobuf:"bytes,2,opt,name=velocity" json:"velocity,omitempty"`
	Entindex        *int32                                   `protobuf:"varint,4,opt,name=entindex" json:"entindex,omitempty"`
	ParticleIndex   *uint64                                  `protobuf:"varint,5,opt,name=particle_index,json=particleIndex" json:"particle_index,omitempty"`
	Handle          *int32                                   `protobuf:"varint,6,opt,name=handle" json:"handle,omitempty"`
	Acceleration    *CMsgVector2D                            `protobuf:"bytes,7,opt,name=acceleration" json:"acceleration,omitempty"`
	MaxSpeed        *float32                                 `protobuf:"fixed32,8,opt,name=max_speed,json=maxSpeed" json:"max_speed,omitempty"`
	FowRadius       *float32                                 `protobuf:"fixed32,9,opt,name=fow_radius,json=fowRadius" json:"fow_radius,omitempty"`
	StickyFowReveal *bool                                    `protobuf:"varint,10,opt,name=sticky_fow_reveal,json=stickyFowReveal" json:"sticky_fow_reveal,omitempty"`
	Distance        *float32                                 `protobuf:"fixed32,11,opt,name=distance" json:"distance,omitempty"`
	Colorgemcolor   *uint32                                  `protobuf:"fixed32,12,opt,name=colorgemcolor" json:"colorgemcolor,omitempty"`
	ParticleCpData  []*CDOTAUserMsg_ProjectileParticleCPData `protobuf:"bytes,13,rep,name=particle_cp_data,json=particleCpData" json:"particle_cp_data,omitempty"`
}

func (x *CDOTAUserMsg_CreateLinearProjectile) Reset() {
	*x = CDOTAUserMsg_CreateLinearProjectile{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[29]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_CreateLinearProjectile) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_CreateLinearProjectile) ProtoMessage() {}

func (x *CDOTAUserMsg_CreateLinearProjectile) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[29]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_CreateLinearProjectile.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_CreateLinearProjectile) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{29}
}

func (x *CDOTAUserMsg_CreateLinearProjectile) GetOrigin() *CMsgVector {
	if x != nil {
		return x.Origin
	}
	return nil
}

func (x *CDOTAUserMsg_CreateLinearProjectile) GetVelocity() *CMsgVector2D {
	if x != nil {
		return x.Velocity
	}
	return nil
}

func (x *CDOTAUserMsg_CreateLinearProjectile) GetEntindex() int32 {
	if x != nil && x.Entindex != nil {
		return *x.Entindex
	}
	return 0
}

func (x *CDOTAUserMsg_CreateLinearProjectile) GetParticleIndex() uint64 {
	if x != nil && x.ParticleIndex != nil {
		return *x.ParticleIndex
	}
	return 0
}

func (x *CDOTAUserMsg_CreateLinearProjectile) GetHandle() int32 {
	if x != nil && x.Handle != nil {
		return *x.Handle
	}
	return 0
}

func (x *CDOTAUserMsg_CreateLinearProjectile) GetAcceleration() *CMsgVector2D {
	if x != nil {
		return x.Acceleration
	}
	return nil
}

func (x *CDOTAUserMsg_CreateLinearProjectile) GetMaxSpeed() float32 {
	if x != nil && x.MaxSpeed != nil {
		return *x.MaxSpeed
	}
	return 0
}

func (x *CDOTAUserMsg_CreateLinearProjectile) GetFowRadius() float32 {
	if x != nil && x.FowRadius != nil {
		return *x.FowRadius
	}
	return 0
}

func (x *CDOTAUserMsg_CreateLinearProjectile) GetStickyFowReveal() bool {
	if x != nil && x.StickyFowReveal != nil {
		return *x.StickyFowReveal
	}
	return false
}

func (x *CDOTAUserMsg_CreateLinearProjectile) GetDistance() float32 {
	if x != nil && x.Distance != nil {
		return *x.Distance
	}
	return 0
}

func (x *CDOTAUserMsg_CreateLinearProjectile) GetColorgemcolor() uint32 {
	if x != nil && x.Colorgemcolor != nil {
		return *x.Colorgemcolor
	}
	return 0
}

func (x *CDOTAUserMsg_CreateLinearProjectile) GetParticleCpData() []*CDOTAUserMsg_ProjectileParticleCPData {
	if x != nil {
		return x.ParticleCpData
	}
	return nil
}

type CDOTAUserMsg_DestroyLinearProjectile struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Handle *int32 `protobuf:"varint,1,opt,name=handle" json:"handle,omitempty"`
}

func (x *CDOTAUserMsg_DestroyLinearProjectile) Reset() {
	*x = CDOTAUserMsg_DestroyLinearProjectile{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[30]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_DestroyLinearProjectile) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_DestroyLinearProjectile) ProtoMessage() {}

func (x *CDOTAUserMsg_DestroyLinearProjectile) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[30]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_DestroyLinearProjectile.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_DestroyLinearProjectile) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{30}
}

func (x *CDOTAUserMsg_DestroyLinearProjectile) GetHandle() int32 {
	if x != nil && x.Handle != nil {
		return *x.Handle
	}
	return 0
}

type CDOTAUserMsg_DodgeTrackingProjectiles struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Entindex    *int32 `protobuf:"varint,1,req,name=entindex" json:"entindex,omitempty"`
	AttacksOnly *bool  `protobuf:"varint,2,opt,name=attacks_only,json=attacksOnly" json:"attacks_only,omitempty"`
}

func (x *CDOTAUserMsg_DodgeTrackingProjectiles) Reset() {
	*x = CDOTAUserMsg_DodgeTrackingProjectiles{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[31]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_DodgeTrackingProjectiles) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_DodgeTrackingProjectiles) ProtoMessage() {}

func (x *CDOTAUserMsg_DodgeTrackingProjectiles) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[31]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_DodgeTrackingProjectiles.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_DodgeTrackingProjectiles) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{31}
}

func (x *CDOTAUserMsg_DodgeTrackingProjectiles) GetEntindex() int32 {
	if x != nil && x.Entindex != nil {
		return *x.Entindex
	}
	return 0
}

func (x *CDOTAUserMsg_DodgeTrackingProjectiles) GetAttacksOnly() bool {
	if x != nil && x.AttacksOnly != nil {
		return *x.AttacksOnly
	}
	return false
}

type CDOTAUserMsg_SpectatorPlayerClick struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Entindex    *int32 `protobuf:"varint,1,req,name=entindex" json:"entindex,omitempty"`
	OrderType   *int32 `protobuf:"varint,2,opt,name=order_type,json=orderType" json:"order_type,omitempty"`
	TargetIndex *int32 `protobuf:"varint,3,opt,name=target_index,json=targetIndex" json:"target_index,omitempty"`
}

func (x *CDOTAUserMsg_SpectatorPlayerClick) Reset() {
	*x = CDOTAUserMsg_SpectatorPlayerClick{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[32]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_SpectatorPlayerClick) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_SpectatorPlayerClick) ProtoMessage() {}

func (x *CDOTAUserMsg_SpectatorPlayerClick) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[32]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_SpectatorPlayerClick.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_SpectatorPlayerClick) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{32}
}

func (x *CDOTAUserMsg_SpectatorPlayerClick) GetEntindex() int32 {
	if x != nil && x.Entindex != nil {
		return *x.Entindex
	}
	return 0
}

func (x *CDOTAUserMsg_SpectatorPlayerClick) GetOrderType() int32 {
	if x != nil && x.OrderType != nil {
		return *x.OrderType
	}
	return 0
}

func (x *CDOTAUserMsg_SpectatorPlayerClick) GetTargetIndex() int32 {
	if x != nil && x.TargetIndex != nil {
		return *x.TargetIndex
	}
	return 0
}

type CDOTAUserMsg_SpectatorPlayerUnitOrders struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Entindex       *int32      `protobuf:"varint,1,opt,name=entindex" json:"entindex,omitempty"`
	OrderType      *int32      `protobuf:"varint,2,opt,name=order_type,json=orderType" json:"order_type,omitempty"`
	Units          []int32     `protobuf:"varint,3,rep,name=units" json:"units,omitempty"`
	TargetIndex    *int32      `protobuf:"varint,4,opt,name=target_index,json=targetIndex" json:"target_index,omitempty"`
	AbilityId      *int32      `protobuf:"varint,5,opt,name=ability_id,json=abilityId" json:"ability_id,omitempty"`
	Position       *CMsgVector `protobuf:"bytes,6,opt,name=position" json:"position,omitempty"`
	Queue          *bool       `protobuf:"varint,7,opt,name=queue" json:"queue,omitempty"`
	SequenceNumber *int32      `protobuf:"varint,8,opt,name=sequence_number,json=sequenceNumber" json:"sequence_number,omitempty"`
	Flags          *uint32     `protobuf:"varint,9,opt,name=flags" json:"flags,omitempty"`
}

func (x *CDOTAUserMsg_SpectatorPlayerUnitOrders) Reset() {
	*x = CDOTAUserMsg_SpectatorPlayerUnitOrders{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[33]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_SpectatorPlayerUnitOrders) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_SpectatorPlayerUnitOrders) ProtoMessage() {}

func (x *CDOTAUserMsg_SpectatorPlayerUnitOrders) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[33]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_SpectatorPlayerUnitOrders.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_SpectatorPlayerUnitOrders) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{33}
}

func (x *CDOTAUserMsg_SpectatorPlayerUnitOrders) GetEntindex() int32 {
	if x != nil && x.Entindex != nil {
		return *x.Entindex
	}
	return 0
}

func (x *CDOTAUserMsg_SpectatorPlayerUnitOrders) GetOrderType() int32 {
	if x != nil && x.OrderType != nil {
		return *x.OrderType
	}
	return 0
}

func (x *CDOTAUserMsg_SpectatorPlayerUnitOrders) GetUnits() []int32 {
	if x != nil {
		return x.Units
	}
	return nil
}

func (x *CDOTAUserMsg_SpectatorPlayerUnitOrders) GetTargetIndex() int32 {
	if x != nil && x.TargetIndex != nil {
		return *x.TargetIndex
	}
	return 0
}

func (x *CDOTAUserMsg_SpectatorPlayerUnitOrders) GetAbilityId() int32 {
	if x != nil && x.AbilityId != nil {
		return *x.AbilityId
	}
	return 0
}

func (x *CDOTAUserMsg_SpectatorPlayerUnitOrders) GetPosition() *CMsgVector {
	if x != nil {
		return x.Position
	}
	return nil
}

func (x *CDOTAUserMsg_SpectatorPlayerUnitOrders) GetQueue() bool {
	if x != nil && x.Queue != nil {
		return *x.Queue
	}
	return false
}

func (x *CDOTAUserMsg_SpectatorPlayerUnitOrders) GetSequenceNumber() int32 {
	if x != nil && x.SequenceNumber != nil {
		return *x.SequenceNumber
	}
	return 0
}

func (x *CDOTAUserMsg_SpectatorPlayerUnitOrders) GetFlags() uint32 {
	if x != nil && x.Flags != nil {
		return *x.Flags
	}
	return 0
}

type CDOTAUserMsg_NevermoreRequiem struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	EntityHandle *uint32     `protobuf:"varint,1,opt,name=entity_handle,json=entityHandle" json:"entity_handle,omitempty"`
	Lines        *int32      `protobuf:"varint,2,opt,name=lines" json:"lines,omitempty"`
	Origin       *CMsgVector `protobuf:"bytes,3,opt,name=origin" json:"origin,omitempty"`
	Reverse      *bool       `protobuf:"varint,4,opt,name=reverse" json:"reverse,omitempty"`
}

func (x *CDOTAUserMsg_NevermoreRequiem) Reset() {
	*x = CDOTAUserMsg_NevermoreRequiem{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[34]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_NevermoreRequiem) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_NevermoreRequiem) ProtoMessage() {}

func (x *CDOTAUserMsg_NevermoreRequiem) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[34]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_NevermoreRequiem.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_NevermoreRequiem) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{34}
}

func (x *CDOTAUserMsg_NevermoreRequiem) GetEntityHandle() uint32 {
	if x != nil && x.EntityHandle != nil {
		return *x.EntityHandle
	}
	return 0
}

func (x *CDOTAUserMsg_NevermoreRequiem) GetLines() int32 {
	if x != nil && x.Lines != nil {
		return *x.Lines
	}
	return 0
}

func (x *CDOTAUserMsg_NevermoreRequiem) GetOrigin() *CMsgVector {
	if x != nil {
		return x.Origin
	}
	return nil
}

func (x *CDOTAUserMsg_NevermoreRequiem) GetReverse() bool {
	if x != nil && x.Reverse != nil {
		return *x.Reverse
	}
	return false
}

type CDOTAUserMsg_InvalidCommand struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Message        *string `protobuf:"bytes,1,opt,name=message" json:"message,omitempty"`
	SequenceNumber *int32  `protobuf:"varint,2,opt,name=sequence_number,json=sequenceNumber" json:"sequence_number,omitempty"`
}

func (x *CDOTAUserMsg_InvalidCommand) Reset() {
	*x = CDOTAUserMsg_InvalidCommand{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[35]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_InvalidCommand) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_InvalidCommand) ProtoMessage() {}

func (x *CDOTAUserMsg_InvalidCommand) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[35]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_InvalidCommand.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_InvalidCommand) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{35}
}

func (x *CDOTAUserMsg_InvalidCommand) GetMessage() string {
	if x != nil && x.Message != nil {
		return *x.Message
	}
	return ""
}

func (x *CDOTAUserMsg_InvalidCommand) GetSequenceNumber() int32 {
	if x != nil && x.SequenceNumber != nil {
		return *x.SequenceNumber
	}
	return 0
}

type CDOTAUserMsg_HudError struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	OrderId        *int32 `protobuf:"varint,1,opt,name=order_id,json=orderId" json:"order_id,omitempty"`
	SequenceNumber *int32 `protobuf:"varint,2,opt,name=sequence_number,json=sequenceNumber" json:"sequence_number,omitempty"`
}

func (x *CDOTAUserMsg_HudError) Reset() {
	*x = CDOTAUserMsg_HudError{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[36]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_HudError) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_HudError) ProtoMessage() {}

func (x *CDOTAUserMsg_HudError) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[36]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_HudError.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_HudError) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{36}
}

func (x *CDOTAUserMsg_HudError) GetOrderId() int32 {
	if x != nil && x.OrderId != nil {
		return *x.OrderId
	}
	return 0
}

func (x *CDOTAUserMsg_HudError) GetSequenceNumber() int32 {
	if x != nil && x.SequenceNumber != nil {
		return *x.SequenceNumber
	}
	return 0
}

type CDOTAUserMsg_SharedCooldown struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Entindex  *int32   `protobuf:"varint,1,opt,name=entindex" json:"entindex,omitempty"`
	Name      *string  `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
	Cooldown  *float32 `protobuf:"fixed32,3,opt,name=cooldown" json:"cooldown,omitempty"`
	NameIndex *int32   `protobuf:"varint,4,opt,name=name_index,json=nameIndex" json:"name_index,omitempty"`
}

func (x *CDOTAUserMsg_SharedCooldown) Reset() {
	*x = CDOTAUserMsg_SharedCooldown{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[37]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_SharedCooldown) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_SharedCooldown) ProtoMessage() {}

func (x *CDOTAUserMsg_SharedCooldown) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[37]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_SharedCooldown.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_SharedCooldown) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{37}
}

func (x *CDOTAUserMsg_SharedCooldown) GetEntindex() int32 {
	if x != nil && x.Entindex != nil {
		return *x.Entindex
	}
	return 0
}

func (x *CDOTAUserMsg_SharedCooldown) GetName() string {
	if x != nil && x.Name != nil {
		return *x.Name
	}
	return ""
}

func (x *CDOTAUserMsg_SharedCooldown) GetCooldown() float32 {
	if x != nil && x.Cooldown != nil {
		return *x.Cooldown
	}
	return 0
}

func (x *CDOTAUserMsg_SharedCooldown) GetNameIndex() int32 {
	if x != nil && x.NameIndex != nil {
		return *x.NameIndex
	}
	return 0
}

type CDOTAUserMsg_SetNextAutobuyItem struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
}

func (x *CDOTAUserMsg_SetNextAutobuyItem) Reset() {
	*x = CDOTAUserMsg_SetNextAutobuyItem{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[38]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_SetNextAutobuyItem) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_SetNextAutobuyItem) ProtoMessage() {}

func (x *CDOTAUserMsg_SetNextAutobuyItem) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[38]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_SetNextAutobuyItem.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_SetNextAutobuyItem) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{38}
}

func (x *CDOTAUserMsg_SetNextAutobuyItem) GetName() string {
	if x != nil && x.Name != nil {
		return *x.Name
	}
	return ""
}

type CDOTAUserMsg_HalloweenDrops struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ItemDefs  []uint32 `protobuf:"varint,1,rep,name=item_defs,json=itemDefs" json:"item_defs,omitempty"`
	PlayerIds []int32  `protobuf:"varint,2,rep,name=player_ids,json=playerIds" json:"player_ids,omitempty"`
	PrizeList *uint32  `protobuf:"varint,3,opt,name=prize_list,json=prizeList" json:"prize_list,omitempty"`
}

func (x *CDOTAUserMsg_HalloweenDrops) Reset() {
	*x = CDOTAUserMsg_HalloweenDrops{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[39]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_HalloweenDrops) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_HalloweenDrops) ProtoMessage() {}

func (x *CDOTAUserMsg_HalloweenDrops) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[39]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_HalloweenDrops.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_HalloweenDrops) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{39}
}

func (x *CDOTAUserMsg_HalloweenDrops) GetItemDefs() []uint32 {
	if x != nil {
		return x.ItemDefs
	}
	return nil
}

func (x *CDOTAUserMsg_HalloweenDrops) GetPlayerIds() []int32 {
	if x != nil {
		return x.PlayerIds
	}
	return nil
}

func (x *CDOTAUserMsg_HalloweenDrops) GetPrizeList() uint32 {
	if x != nil && x.PrizeList != nil {
		return *x.PrizeList
	}
	return 0
}

type CDOTAUserMsg_PredictionResult struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AccountId   *uint32                                     `protobuf:"varint,1,opt,name=account_id,json=accountId" json:"account_id,omitempty"`
	MatchId     *uint64                                     `protobuf:"varint,2,opt,name=match_id,json=matchId" json:"match_id,omitempty"`
	Correct     *bool                                       `protobuf:"varint,3,opt,name=correct" json:"correct,omitempty"`
	Predictions []*CDOTAUserMsg_PredictionResult_Prediction `protobuf:"bytes,4,rep,name=predictions" json:"predictions,omitempty"`
}

func (x *CDOTAUserMsg_PredictionResult) Reset() {
	*x = CDOTAUserMsg_PredictionResult{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[40]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_PredictionResult) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_PredictionResult) ProtoMessage() {}

func (x *CDOTAUserMsg_PredictionResult) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[40]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_PredictionResult.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_PredictionResult) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{40}
}

func (x *CDOTAUserMsg_PredictionResult) GetAccountId() uint32 {
	if x != nil && x.AccountId != nil {
		return *x.AccountId
	}
	return 0
}

func (x *CDOTAUserMsg_PredictionResult) GetMatchId() uint64 {
	if x != nil && x.MatchId != nil {
		return *x.MatchId
	}
	return 0
}

func (x *CDOTAUserMsg_PredictionResult) GetCorrect() bool {
	if x != nil && x.Correct != nil {
		return *x.Correct
	}
	return false
}

func (x *CDOTAUserMsg_PredictionResult) GetPredictions() []*CDOTAUserMsg_PredictionResult_Prediction {
	if x != nil {
		return x.Predictions
	}
	return nil
}

type CDOTAResponseQuerySerialized struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Facts []*CDOTAResponseQuerySerialized_Fact `protobuf:"bytes,1,rep,name=facts" json:"facts,omitempty"`
}

func (x *CDOTAResponseQuerySerialized) Reset() {
	*x = CDOTAResponseQuerySerialized{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[41]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAResponseQuerySerialized) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAResponseQuerySerialized) ProtoMessage() {}

func (x *CDOTAResponseQuerySerialized) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[41]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAResponseQuerySerialized.ProtoReflect.Descriptor instead.
func (*CDOTAResponseQuerySerialized) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{41}
}

func (x *CDOTAResponseQuerySerialized) GetFacts() []*CDOTAResponseQuerySerialized_Fact {
	if x != nil {
		return x.Facts
	}
	return nil
}

type CDOTASpeechMatchOnClient struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SpeechConcept *int32                        `protobuf:"varint,1,opt,name=speech_concept,json=speechConcept" json:"speech_concept,omitempty"`
	RecipientType *int32                        `protobuf:"varint,2,opt,name=recipient_type,json=recipientType" json:"recipient_type,omitempty"`
	Responsequery *CDOTAResponseQuerySerialized `protobuf:"bytes,3,opt,name=responsequery" json:"responsequery,omitempty"`
	Randomseed    *int32                        `protobuf:"fixed32,4,opt,name=randomseed,def=0" json:"randomseed,omitempty"`
}

// Default values for CDOTASpeechMatchOnClient fields.
const (
	Default_CDOTASpeechMatchOnClient_Randomseed = int32(0)
)

func (x *CDOTASpeechMatchOnClient) Reset() {
	*x = CDOTASpeechMatchOnClient{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[42]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTASpeechMatchOnClient) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTASpeechMatchOnClient) ProtoMessage() {}

func (x *CDOTASpeechMatchOnClient) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[42]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTASpeechMatchOnClient.ProtoReflect.Descriptor instead.
func (*CDOTASpeechMatchOnClient) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{42}
}

func (x *CDOTASpeechMatchOnClient) GetSpeechConcept() int32 {
	if x != nil && x.SpeechConcept != nil {
		return *x.SpeechConcept
	}
	return 0
}

func (x *CDOTASpeechMatchOnClient) GetRecipientType() int32 {
	if x != nil && x.RecipientType != nil {
		return *x.RecipientType
	}
	return 0
}

func (x *CDOTASpeechMatchOnClient) GetResponsequery() *CDOTAResponseQuerySerialized {
	if x != nil {
		return x.Responsequery
	}
	return nil
}

func (x *CDOTASpeechMatchOnClient) GetRandomseed() int32 {
	if x != nil && x.Randomseed != nil {
		return *x.Randomseed
	}
	return Default_CDOTASpeechMatchOnClient_Randomseed
}

type CDOTAUserMsg_UnitEvent struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MsgType             *EDotaEntityMessages                  `protobuf:"varint,1,req,name=msg_type,json=msgType,enum=EDotaEntityMessages,def=0" json:"msg_type,omitempty"`
	EntityIndex         *int32                                `protobuf:"varint,2,req,name=entity_index,json=entityIndex" json:"entity_index,omitempty"`
	Speech              *CDOTAUserMsg_UnitEvent_Speech        `protobuf:"bytes,3,opt,name=speech" json:"speech,omitempty"`
	SpeechMute          *CDOTAUserMsg_UnitEvent_SpeechMute    `protobuf:"bytes,4,opt,name=speech_mute,json=speechMute" json:"speech_mute,omitempty"`
	AddGesture          *CDOTAUserMsg_UnitEvent_AddGesture    `protobuf:"bytes,5,opt,name=add_gesture,json=addGesture" json:"add_gesture,omitempty"`
	RemoveGesture       *CDOTAUserMsg_UnitEvent_RemoveGesture `protobuf:"bytes,6,opt,name=remove_gesture,json=removeGesture" json:"remove_gesture,omitempty"`
	BloodImpact         *CDOTAUserMsg_UnitEvent_BloodImpact   `protobuf:"bytes,7,opt,name=blood_impact,json=bloodImpact" json:"blood_impact,omitempty"`
	FadeGesture         *CDOTAUserMsg_UnitEvent_FadeGesture   `protobuf:"bytes,8,opt,name=fade_gesture,json=fadeGesture" json:"fade_gesture,omitempty"`
	SpeechMatchOnClient *CDOTASpeechMatchOnClient             `protobuf:"bytes,9,opt,name=speech_match_on_client,json=speechMatchOnClient" json:"speech_match_on_client,omitempty"`
}

// Default values for CDOTAUserMsg_UnitEvent fields.
const (
	Default_CDOTAUserMsg_UnitEvent_MsgType = EDotaEntityMessages_DOTA_UNIT_SPEECH
)

func (x *CDOTAUserMsg_UnitEvent) Reset() {
	*x = CDOTAUserMsg_UnitEvent{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[43]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_UnitEvent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_UnitEvent) ProtoMessage() {}

func (x *CDOTAUserMsg_UnitEvent) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[43]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_UnitEvent.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_UnitEvent) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{43}
}

func (x *CDOTAUserMsg_UnitEvent) GetMsgType() EDotaEntityMessages {
	if x != nil && x.MsgType != nil {
		return *x.MsgType
	}
	return Default_CDOTAUserMsg_UnitEvent_MsgType
}

func (x *CDOTAUserMsg_UnitEvent) GetEntityIndex() int32 {
	if x != nil && x.EntityIndex != nil {
		return *x.EntityIndex
	}
	return 0
}

func (x *CDOTAUserMsg_UnitEvent) GetSpeech() *CDOTAUserMsg_UnitEvent_Speech {
	if x != nil {
		return x.Speech
	}
	return nil
}

func (x *CDOTAUserMsg_UnitEvent) GetSpeechMute() *CDOTAUserMsg_UnitEvent_SpeechMute {
	if x != nil {
		return x.SpeechMute
	}
	return nil
}

func (x *CDOTAUserMsg_UnitEvent) GetAddGesture() *CDOTAUserMsg_UnitEvent_AddGesture {
	if x != nil {
		return x.AddGesture
	}
	return nil
}

func (x *CDOTAUserMsg_UnitEvent) GetRemoveGesture() *CDOTAUserMsg_UnitEvent_RemoveGesture {
	if x != nil {
		return x.RemoveGesture
	}
	return nil
}

func (x *CDOTAUserMsg_UnitEvent) GetBloodImpact() *CDOTAUserMsg_UnitEvent_BloodImpact {
	if x != nil {
		return x.BloodImpact
	}
	return nil
}

func (x *CDOTAUserMsg_UnitEvent) GetFadeGesture() *CDOTAUserMsg_UnitEvent_FadeGesture {
	if x != nil {
		return x.FadeGesture
	}
	return nil
}

func (x *CDOTAUserMsg_UnitEvent) GetSpeechMatchOnClient() *CDOTASpeechMatchOnClient {
	if x != nil {
		return x.SpeechMatchOnClient
	}
	return nil
}

type CDOTAUserMsg_ItemPurchased struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ItemAbilityId *int32 `protobuf:"varint,1,opt,name=item_ability_id,json=itemAbilityId" json:"item_ability_id,omitempty"`
}

func (x *CDOTAUserMsg_ItemPurchased) Reset() {
	*x = CDOTAUserMsg_ItemPurchased{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[44]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_ItemPurchased) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_ItemPurchased) ProtoMessage() {}

func (x *CDOTAUserMsg_ItemPurchased) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[44]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_ItemPurchased.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_ItemPurchased) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{44}
}

func (x *CDOTAUserMsg_ItemPurchased) GetItemAbilityId() int32 {
	if x != nil && x.ItemAbilityId != nil {
		return *x.ItemAbilityId
	}
	return 0
}

type CDOTAUserMsg_ItemSold struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ItemAbilityId *int32 `protobuf:"varint,1,opt,name=item_ability_id,json=itemAbilityId" json:"item_ability_id,omitempty"`
}

func (x *CDOTAUserMsg_ItemSold) Reset() {
	*x = CDOTAUserMsg_ItemSold{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[45]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_ItemSold) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_ItemSold) ProtoMessage() {}

func (x *CDOTAUserMsg_ItemSold) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[45]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_ItemSold.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_ItemSold) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{45}
}

func (x *CDOTAUserMsg_ItemSold) GetItemAbilityId() int32 {
	if x != nil && x.ItemAbilityId != nil {
		return *x.ItemAbilityId
	}
	return 0
}

type CDOTAUserMsg_ItemFound struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Player  *int32  `protobuf:"varint,1,opt,name=player" json:"player,omitempty"`
	Quality *int32  `protobuf:"varint,2,opt,name=quality" json:"quality,omitempty"`
	Rarity  *int32  `protobuf:"varint,3,opt,name=rarity" json:"rarity,omitempty"`
	Method  *int32  `protobuf:"varint,4,opt,name=method" json:"method,omitempty"`
	Itemdef *uint32 `protobuf:"varint,5,opt,name=itemdef" json:"itemdef,omitempty"`
}

func (x *CDOTAUserMsg_ItemFound) Reset() {
	*x = CDOTAUserMsg_ItemFound{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[46]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_ItemFound) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_ItemFound) ProtoMessage() {}

func (x *CDOTAUserMsg_ItemFound) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[46]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_ItemFound.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_ItemFound) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{46}
}

func (x *CDOTAUserMsg_ItemFound) GetPlayer() int32 {
	if x != nil && x.Player != nil {
		return *x.Player
	}
	return 0
}

func (x *CDOTAUserMsg_ItemFound) GetQuality() int32 {
	if x != nil && x.Quality != nil {
		return *x.Quality
	}
	return 0
}

func (x *CDOTAUserMsg_ItemFound) GetRarity() int32 {
	if x != nil && x.Rarity != nil {
		return *x.Rarity
	}
	return 0
}

func (x *CDOTAUserMsg_ItemFound) GetMethod() int32 {
	if x != nil && x.Method != nil {
		return *x.Method
	}
	return 0
}

func (x *CDOTAUserMsg_ItemFound) GetItemdef() uint32 {
	if x != nil && x.Itemdef != nil {
		return *x.Itemdef
	}
	return 0
}

type CDOTAUserMsg_OverheadEvent struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MessageType          *DOTA_OVERHEAD_ALERT `protobuf:"varint,1,req,name=message_type,json=messageType,enum=DOTA_OVERHEAD_ALERT,def=0" json:"message_type,omitempty"`
	Value                *int32               `protobuf:"varint,2,opt,name=value" json:"value,omitempty"`
	TargetPlayerEntindex *int32               `protobuf:"varint,3,opt,name=target_player_entindex,json=targetPlayerEntindex" json:"target_player_entindex,omitempty"`
	TargetEntindex       *int32               `protobuf:"varint,4,opt,name=target_entindex,json=targetEntindex" json:"target_entindex,omitempty"`
	SourcePlayerEntindex *int32               `protobuf:"varint,5,opt,name=source_player_entindex,json=sourcePlayerEntindex" json:"source_player_entindex,omitempty"`
}

// Default values for CDOTAUserMsg_OverheadEvent fields.
const (
	Default_CDOTAUserMsg_OverheadEvent_MessageType = DOTA_OVERHEAD_ALERT_OVERHEAD_ALERT_GOLD
)

func (x *CDOTAUserMsg_OverheadEvent) Reset() {
	*x = CDOTAUserMsg_OverheadEvent{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[47]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_OverheadEvent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_OverheadEvent) ProtoMessage() {}

func (x *CDOTAUserMsg_OverheadEvent) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[47]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_OverheadEvent.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_OverheadEvent) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{47}
}

func (x *CDOTAUserMsg_OverheadEvent) GetMessageType() DOTA_OVERHEAD_ALERT {
	if x != nil && x.MessageType != nil {
		return *x.MessageType
	}
	return Default_CDOTAUserMsg_OverheadEvent_MessageType
}

func (x *CDOTAUserMsg_OverheadEvent) GetValue() int32 {
	if x != nil && x.Value != nil {
		return *x.Value
	}
	return 0
}

func (x *CDOTAUserMsg_OverheadEvent) GetTargetPlayerEntindex() int32 {
	if x != nil && x.TargetPlayerEntindex != nil {
		return *x.TargetPlayerEntindex
	}
	return 0
}

func (x *CDOTAUserMsg_OverheadEvent) GetTargetEntindex() int32 {
	if x != nil && x.TargetEntindex != nil {
		return *x.TargetEntindex
	}
	return 0
}

func (x *CDOTAUserMsg_OverheadEvent) GetSourcePlayerEntindex() int32 {
	if x != nil && x.SourcePlayerEntindex != nil {
		return *x.SourcePlayerEntindex
	}
	return 0
}

type CDOTAUserMsg_TutorialTipInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Name     *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Progress *int32  `protobuf:"varint,2,opt,name=progress" json:"progress,omitempty"`
}

func (x *CDOTAUserMsg_TutorialTipInfo) Reset() {
	*x = CDOTAUserMsg_TutorialTipInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[48]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_TutorialTipInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_TutorialTipInfo) ProtoMessage() {}

func (x *CDOTAUserMsg_TutorialTipInfo) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[48]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_TutorialTipInfo.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_TutorialTipInfo) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{48}
}

func (x *CDOTAUserMsg_TutorialTipInfo) GetName() string {
	if x != nil && x.Name != nil {
		return *x.Name
	}
	return ""
}

func (x *CDOTAUserMsg_TutorialTipInfo) GetProgress() int32 {
	if x != nil && x.Progress != nil {
		return *x.Progress
	}
	return 0
}

type CDOTAUserMsg_TutorialFinish struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Heading *string `protobuf:"bytes,1,opt,name=heading" json:"heading,omitempty"`
	Emblem  *string `protobuf:"bytes,2,opt,name=emblem" json:"emblem,omitempty"`
	Body    *string `protobuf:"bytes,3,opt,name=body" json:"body,omitempty"`
	Success *bool   `protobuf:"varint,4,opt,name=success" json:"success,omitempty"`
}

func (x *CDOTAUserMsg_TutorialFinish) Reset() {
	*x = CDOTAUserMsg_TutorialFinish{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[49]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_TutorialFinish) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_TutorialFinish) ProtoMessage() {}

func (x *CDOTAUserMsg_TutorialFinish) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[49]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_TutorialFinish.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_TutorialFinish) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{49}
}

func (x *CDOTAUserMsg_TutorialFinish) GetHeading() string {
	if x != nil && x.Heading != nil {
		return *x.Heading
	}
	return ""
}

func (x *CDOTAUserMsg_TutorialFinish) GetEmblem() string {
	if x != nil && x.Emblem != nil {
		return *x.Emblem
	}
	return ""
}

func (x *CDOTAUserMsg_TutorialFinish) GetBody() string {
	if x != nil && x.Body != nil {
		return *x.Body
	}
	return ""
}

func (x *CDOTAUserMsg_TutorialFinish) GetSuccess() bool {
	if x != nil && x.Success != nil {
		return *x.Success
	}
	return false
}

type CDOTAUserMsg_TutorialMinimapPosition struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *CDOTAUserMsg_TutorialMinimapPosition) Reset() {
	*x = CDOTAUserMsg_TutorialMinimapPosition{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[50]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_TutorialMinimapPosition) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_TutorialMinimapPosition) ProtoMessage() {}

func (x *CDOTAUserMsg_TutorialMinimapPosition) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[50]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_TutorialMinimapPosition.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_TutorialMinimapPosition) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{50}
}

type CDOTAUserMsg_SendGenericToolTip struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Title    *string `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"`
	Text     *string `protobuf:"bytes,2,opt,name=text" json:"text,omitempty"`
	Entindex *int32  `protobuf:"varint,3,opt,name=entindex" json:"entindex,omitempty"`
	Close    *bool   `protobuf:"varint,4,opt,name=close" json:"close,omitempty"`
}

func (x *CDOTAUserMsg_SendGenericToolTip) Reset() {
	*x = CDOTAUserMsg_SendGenericToolTip{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[51]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_SendGenericToolTip) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_SendGenericToolTip) ProtoMessage() {}

func (x *CDOTAUserMsg_SendGenericToolTip) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[51]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_SendGenericToolTip.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_SendGenericToolTip) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{51}
}

func (x *CDOTAUserMsg_SendGenericToolTip) GetTitle() string {
	if x != nil && x.Title != nil {
		return *x.Title
	}
	return ""
}

func (x *CDOTAUserMsg_SendGenericToolTip) GetText() string {
	if x != nil && x.Text != nil {
		return *x.Text
	}
	return ""
}

func (x *CDOTAUserMsg_SendGenericToolTip) GetEntindex() int32 {
	if x != nil && x.Entindex != nil {
		return *x.Entindex
	}
	return 0
}

func (x *CDOTAUserMsg_SendGenericToolTip) GetClose() bool {
	if x != nil && x.Close != nil {
		return *x.Close
	}
	return false
}

type CDOTAUserMsg_WorldLine struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId  *int32              `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	Worldline *CDOTAMsg_WorldLine `protobuf:"bytes,2,opt,name=worldline" json:"worldline,omitempty"`
}

func (x *CDOTAUserMsg_WorldLine) Reset() {
	*x = CDOTAUserMsg_WorldLine{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[52]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_WorldLine) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_WorldLine) ProtoMessage() {}

func (x *CDOTAUserMsg_WorldLine) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[52]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_WorldLine.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_WorldLine) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{52}
}

func (x *CDOTAUserMsg_WorldLine) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_WorldLine) GetWorldline() *CDOTAMsg_WorldLine {
	if x != nil {
		return x.Worldline
	}
	return nil
}

type CDOTAUserMsg_ChatWheel struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ChatMessageId *uint32 `protobuf:"varint,1,opt,name=chat_message_id,json=chatMessageId" json:"chat_message_id,omitempty"`
	PlayerId      *int32  `protobuf:"varint,2,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	AccountId     *uint32 `protobuf:"varint,3,opt,name=account_id,json=accountId" json:"account_id,omitempty"`
	ParamHeroId   *uint32 `protobuf:"varint,4,opt,name=param_hero_id,json=paramHeroId" json:"param_hero_id,omitempty"`
	EmoticonId    *uint32 `protobuf:"varint,5,opt,name=emoticon_id,json=emoticonId" json:"emoticon_id,omitempty"`
}

func (x *CDOTAUserMsg_ChatWheel) Reset() {
	*x = CDOTAUserMsg_ChatWheel{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[53]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_ChatWheel) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_ChatWheel) ProtoMessage() {}

func (x *CDOTAUserMsg_ChatWheel) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[53]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_ChatWheel.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_ChatWheel) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{53}
}

func (x *CDOTAUserMsg_ChatWheel) GetChatMessageId() uint32 {
	if x != nil && x.ChatMessageId != nil {
		return *x.ChatMessageId
	}
	return 0
}

func (x *CDOTAUserMsg_ChatWheel) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_ChatWheel) GetAccountId() uint32 {
	if x != nil && x.AccountId != nil {
		return *x.AccountId
	}
	return 0
}

func (x *CDOTAUserMsg_ChatWheel) GetParamHeroId() uint32 {
	if x != nil && x.ParamHeroId != nil {
		return *x.ParamHeroId
	}
	return 0
}

func (x *CDOTAUserMsg_ChatWheel) GetEmoticonId() uint32 {
	if x != nil && x.EmoticonId != nil {
		return *x.EmoticonId
	}
	return 0
}

type CDOTAUserMsg_ReceivedXmasGift struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId      *int32  `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	ItemName      *string `protobuf:"bytes,2,opt,name=item_name,json=itemName" json:"item_name,omitempty"`
	InventorySlot *int32  `protobuf:"varint,3,opt,name=inventory_slot,json=inventorySlot" json:"inventory_slot,omitempty"`
}

func (x *CDOTAUserMsg_ReceivedXmasGift) Reset() {
	*x = CDOTAUserMsg_ReceivedXmasGift{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[54]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_ReceivedXmasGift) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_ReceivedXmasGift) ProtoMessage() {}

func (x *CDOTAUserMsg_ReceivedXmasGift) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[54]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_ReceivedXmasGift.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_ReceivedXmasGift) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{54}
}

func (x *CDOTAUserMsg_ReceivedXmasGift) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_ReceivedXmasGift) GetItemName() string {
	if x != nil && x.ItemName != nil {
		return *x.ItemName
	}
	return ""
}

func (x *CDOTAUserMsg_ReceivedXmasGift) GetInventorySlot() int32 {
	if x != nil && x.InventorySlot != nil {
		return *x.InventorySlot
	}
	return 0
}

type CDOTAUserMsg_ShowSurvey struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SurveyId          *int32  `protobuf:"varint,1,opt,name=survey_id,json=surveyId" json:"survey_id,omitempty"`
	MatchId           *uint64 `protobuf:"varint,2,opt,name=match_id,json=matchId" json:"match_id,omitempty"`
	ResponseStyle     *string `protobuf:"bytes,3,opt,name=response_style,json=responseStyle" json:"response_style,omitempty"`
	TeammateHeroId    *uint32 `protobuf:"varint,4,opt,name=teammate_hero_id,json=teammateHeroId" json:"teammate_hero_id,omitempty"`
	TeammateName      *string `protobuf:"bytes,5,opt,name=teammate_name,json=teammateName" json:"teammate_name,omitempty"`
	TeammateAccountId *uint32 `protobuf:"varint,6,opt,name=teammate_account_id,json=teammateAccountId" json:"teammate_account_id,omitempty"`
}

func (x *CDOTAUserMsg_ShowSurvey) Reset() {
	*x = CDOTAUserMsg_ShowSurvey{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[55]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_ShowSurvey) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_ShowSurvey) ProtoMessage() {}

func (x *CDOTAUserMsg_ShowSurvey) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[55]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_ShowSurvey.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_ShowSurvey) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{55}
}

func (x *CDOTAUserMsg_ShowSurvey) GetSurveyId() int32 {
	if x != nil && x.SurveyId != nil {
		return *x.SurveyId
	}
	return 0
}

func (x *CDOTAUserMsg_ShowSurvey) GetMatchId() uint64 {
	if x != nil && x.MatchId != nil {
		return *x.MatchId
	}
	return 0
}

func (x *CDOTAUserMsg_ShowSurvey) GetResponseStyle() string {
	if x != nil && x.ResponseStyle != nil {
		return *x.ResponseStyle
	}
	return ""
}

func (x *CDOTAUserMsg_ShowSurvey) GetTeammateHeroId() uint32 {
	if x != nil && x.TeammateHeroId != nil {
		return *x.TeammateHeroId
	}
	return 0
}

func (x *CDOTAUserMsg_ShowSurvey) GetTeammateName() string {
	if x != nil && x.TeammateName != nil {
		return *x.TeammateName
	}
	return ""
}

func (x *CDOTAUserMsg_ShowSurvey) GetTeammateAccountId() uint32 {
	if x != nil && x.TeammateAccountId != nil {
		return *x.TeammateAccountId
	}
	return 0
}

type CDOTAUserMsg_UpdateSharedContent struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SlotType *int32 `protobuf:"varint,1,opt,name=slot_type,json=slotType" json:"slot_type,omitempty"`
}

func (x *CDOTAUserMsg_UpdateSharedContent) Reset() {
	*x = CDOTAUserMsg_UpdateSharedContent{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[56]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_UpdateSharedContent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_UpdateSharedContent) ProtoMessage() {}

func (x *CDOTAUserMsg_UpdateSharedContent) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[56]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_UpdateSharedContent.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_UpdateSharedContent) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{56}
}

func (x *CDOTAUserMsg_UpdateSharedContent) GetSlotType() int32 {
	if x != nil && x.SlotType != nil {
		return *x.SlotType
	}
	return 0
}

type CDOTAUserMsg_TutorialRequestExp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *CDOTAUserMsg_TutorialRequestExp) Reset() {
	*x = CDOTAUserMsg_TutorialRequestExp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[57]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_TutorialRequestExp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_TutorialRequestExp) ProtoMessage() {}

func (x *CDOTAUserMsg_TutorialRequestExp) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[57]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_TutorialRequestExp.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_TutorialRequestExp) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{57}
}

type CDOTAUserMsg_TutorialFade struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	TgtAlpha *int32 `protobuf:"varint,1,opt,name=tgt_alpha,json=tgtAlpha" json:"tgt_alpha,omitempty"`
}

func (x *CDOTAUserMsg_TutorialFade) Reset() {
	*x = CDOTAUserMsg_TutorialFade{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[58]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_TutorialFade) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_TutorialFade) ProtoMessage() {}

func (x *CDOTAUserMsg_TutorialFade) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[58]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_TutorialFade.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_TutorialFade) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{58}
}

func (x *CDOTAUserMsg_TutorialFade) GetTgtAlpha() int32 {
	if x != nil && x.TgtAlpha != nil {
		return *x.TgtAlpha
	}
	return 0
}

type CDOTAUserMsg_TutorialPingMinimap struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId    *int32   `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	PosX        *float32 `protobuf:"fixed32,2,opt,name=pos_x,json=posX" json:"pos_x,omitempty"`
	PosY        *float32 `protobuf:"fixed32,3,opt,name=pos_y,json=posY" json:"pos_y,omitempty"`
	PosZ        *float32 `protobuf:"fixed32,4,opt,name=pos_z,json=posZ" json:"pos_z,omitempty"`
	EntityIndex *int32   `protobuf:"varint,5,opt,name=entity_index,json=entityIndex" json:"entity_index,omitempty"`
}

func (x *CDOTAUserMsg_TutorialPingMinimap) Reset() {
	*x = CDOTAUserMsg_TutorialPingMinimap{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[59]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_TutorialPingMinimap) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_TutorialPingMinimap) ProtoMessage() {}

func (x *CDOTAUserMsg_TutorialPingMinimap) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[59]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_TutorialPingMinimap.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_TutorialPingMinimap) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{59}
}

func (x *CDOTAUserMsg_TutorialPingMinimap) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_TutorialPingMinimap) GetPosX() float32 {
	if x != nil && x.PosX != nil {
		return *x.PosX
	}
	return 0
}

func (x *CDOTAUserMsg_TutorialPingMinimap) GetPosY() float32 {
	if x != nil && x.PosY != nil {
		return *x.PosY
	}
	return 0
}

func (x *CDOTAUserMsg_TutorialPingMinimap) GetPosZ() float32 {
	if x != nil && x.PosZ != nil {
		return *x.PosZ
	}
	return 0
}

func (x *CDOTAUserMsg_TutorialPingMinimap) GetEntityIndex() int32 {
	if x != nil && x.EntityIndex != nil {
		return *x.EntityIndex
	}
	return 0
}

type CDOTAUserMsg_GamerulesStateChanged struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	State *uint32 `protobuf:"varint,1,opt,name=state" json:"state,omitempty"`
}

func (x *CDOTAUserMsg_GamerulesStateChanged) Reset() {
	*x = CDOTAUserMsg_GamerulesStateChanged{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[60]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_GamerulesStateChanged) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_GamerulesStateChanged) ProtoMessage() {}

func (x *CDOTAUserMsg_GamerulesStateChanged) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[60]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_GamerulesStateChanged.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_GamerulesStateChanged) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{60}
}

func (x *CDOTAUserMsg_GamerulesStateChanged) GetState() uint32 {
	if x != nil && x.State != nil {
		return *x.State
	}
	return 0
}

type CDOTAUserMsg_AddQuestLogEntry struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NpcName   *string `protobuf:"bytes,1,opt,name=npc_name,json=npcName" json:"npc_name,omitempty"`
	NpcDialog *string `protobuf:"bytes,2,opt,name=npc_dialog,json=npcDialog" json:"npc_dialog,omitempty"`
}

func (x *CDOTAUserMsg_AddQuestLogEntry) Reset() {
	*x = CDOTAUserMsg_AddQuestLogEntry{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[61]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_AddQuestLogEntry) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_AddQuestLogEntry) ProtoMessage() {}

func (x *CDOTAUserMsg_AddQuestLogEntry) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[61]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_AddQuestLogEntry.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_AddQuestLogEntry) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{61}
}

func (x *CDOTAUserMsg_AddQuestLogEntry) GetNpcName() string {
	if x != nil && x.NpcName != nil {
		return *x.NpcName
	}
	return ""
}

func (x *CDOTAUserMsg_AddQuestLogEntry) GetNpcDialog() string {
	if x != nil && x.NpcDialog != nil {
		return *x.NpcDialog
	}
	return ""
}

type CDOTAUserMsg_SendStatPopup struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId  *int32                  `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	Statpopup *CDOTAMsg_SendStatPopup `protobuf:"bytes,2,opt,name=statpopup" json:"statpopup,omitempty"`
}

func (x *CDOTAUserMsg_SendStatPopup) Reset() {
	*x = CDOTAUserMsg_SendStatPopup{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[62]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_SendStatPopup) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_SendStatPopup) ProtoMessage() {}

func (x *CDOTAUserMsg_SendStatPopup) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[62]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_SendStatPopup.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_SendStatPopup) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{62}
}

func (x *CDOTAUserMsg_SendStatPopup) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_SendStatPopup) GetStatpopup() *CDOTAMsg_SendStatPopup {
	if x != nil {
		return x.Statpopup
	}
	return nil
}

type CDOTAUserMsg_DismissAllStatPopups struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Dismissallmsg *CDOTAMsg_DismissAllStatPopups `protobuf:"bytes,1,opt,name=dismissallmsg" json:"dismissallmsg,omitempty"`
}

func (x *CDOTAUserMsg_DismissAllStatPopups) Reset() {
	*x = CDOTAUserMsg_DismissAllStatPopups{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[63]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_DismissAllStatPopups) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_DismissAllStatPopups) ProtoMessage() {}

func (x *CDOTAUserMsg_DismissAllStatPopups) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[63]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_DismissAllStatPopups.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_DismissAllStatPopups) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{63}
}

func (x *CDOTAUserMsg_DismissAllStatPopups) GetDismissallmsg() *CDOTAMsg_DismissAllStatPopups {
	if x != nil {
		return x.Dismissallmsg
	}
	return nil
}

type CDOTAUserMsg_SendRoshanSpectatorPhase struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Phase          *DOTA_ROSHAN_PHASE `protobuf:"varint,1,opt,name=phase,enum=DOTA_ROSHAN_PHASE,def=0" json:"phase,omitempty"`
	PhaseStartTime *int32             `protobuf:"varint,2,opt,name=phase_start_time,json=phaseStartTime" json:"phase_start_time,omitempty"`
	PhaseLength    *int32             `protobuf:"varint,3,opt,name=phase_length,json=phaseLength" json:"phase_length,omitempty"`
}

// Default values for CDOTAUserMsg_SendRoshanSpectatorPhase fields.
const (
	Default_CDOTAUserMsg_SendRoshanSpectatorPhase_Phase = DOTA_ROSHAN_PHASE_k_SRSP_ROSHAN_ALIVE
)

func (x *CDOTAUserMsg_SendRoshanSpectatorPhase) Reset() {
	*x = CDOTAUserMsg_SendRoshanSpectatorPhase{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[64]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_SendRoshanSpectatorPhase) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_SendRoshanSpectatorPhase) ProtoMessage() {}

func (x *CDOTAUserMsg_SendRoshanSpectatorPhase) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[64]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_SendRoshanSpectatorPhase.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_SendRoshanSpectatorPhase) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{64}
}

func (x *CDOTAUserMsg_SendRoshanSpectatorPhase) GetPhase() DOTA_ROSHAN_PHASE {
	if x != nil && x.Phase != nil {
		return *x.Phase
	}
	return Default_CDOTAUserMsg_SendRoshanSpectatorPhase_Phase
}

func (x *CDOTAUserMsg_SendRoshanSpectatorPhase) GetPhaseStartTime() int32 {
	if x != nil && x.PhaseStartTime != nil {
		return *x.PhaseStartTime
	}
	return 0
}

func (x *CDOTAUserMsg_SendRoshanSpectatorPhase) GetPhaseLength() int32 {
	if x != nil && x.PhaseLength != nil {
		return *x.PhaseLength
	}
	return 0
}

type CDOTAUserMsg_SendRoshanPopup struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Reclaimed *bool  `protobuf:"varint,1,opt,name=reclaimed" json:"reclaimed,omitempty"`
	Gametime  *int32 `protobuf:"varint,2,opt,name=gametime" json:"gametime,omitempty"`
}

func (x *CDOTAUserMsg_SendRoshanPopup) Reset() {
	*x = CDOTAUserMsg_SendRoshanPopup{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[65]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_SendRoshanPopup) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_SendRoshanPopup) ProtoMessage() {}

func (x *CDOTAUserMsg_SendRoshanPopup) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[65]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_SendRoshanPopup.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_SendRoshanPopup) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{65}
}

func (x *CDOTAUserMsg_SendRoshanPopup) GetReclaimed() bool {
	if x != nil && x.Reclaimed != nil {
		return *x.Reclaimed
	}
	return false
}

func (x *CDOTAUserMsg_SendRoshanPopup) GetGametime() int32 {
	if x != nil && x.Gametime != nil {
		return *x.Gametime
	}
	return 0
}

type CDOTAUserMsg_SendFinalGold struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ReliableGold   []uint32 `protobuf:"varint,1,rep,name=reliable_gold,json=reliableGold" json:"reliable_gold,omitempty"`
	UnreliableGold []uint32 `protobuf:"varint,2,rep,name=unreliable_gold,json=unreliableGold" json:"unreliable_gold,omitempty"`
}

func (x *CDOTAUserMsg_SendFinalGold) Reset() {
	*x = CDOTAUserMsg_SendFinalGold{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[66]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_SendFinalGold) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_SendFinalGold) ProtoMessage() {}

func (x *CDOTAUserMsg_SendFinalGold) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[66]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_SendFinalGold.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_SendFinalGold) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{66}
}

func (x *CDOTAUserMsg_SendFinalGold) GetReliableGold() []uint32 {
	if x != nil {
		return x.ReliableGold
	}
	return nil
}

func (x *CDOTAUserMsg_SendFinalGold) GetUnreliableGold() []uint32 {
	if x != nil {
		return x.UnreliableGold
	}
	return nil
}

type CDOTAUserMsg_CustomMsg struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Message  *string `protobuf:"bytes,1,opt,name=message" json:"message,omitempty"`
	PlayerId *int32  `protobuf:"varint,2,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	Value    *int32  `protobuf:"varint,3,opt,name=value" json:"value,omitempty"`
}

func (x *CDOTAUserMsg_CustomMsg) Reset() {
	*x = CDOTAUserMsg_CustomMsg{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[67]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_CustomMsg) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_CustomMsg) ProtoMessage() {}

func (x *CDOTAUserMsg_CustomMsg) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[67]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_CustomMsg.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_CustomMsg) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{67}
}

func (x *CDOTAUserMsg_CustomMsg) GetMessage() string {
	if x != nil && x.Message != nil {
		return *x.Message
	}
	return ""
}

func (x *CDOTAUserMsg_CustomMsg) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_CustomMsg) GetValue() int32 {
	if x != nil && x.Value != nil {
		return *x.Value
	}
	return 0
}

type CDOTAUserMsg_CoachHUDPing struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId *int32                 `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	HudPing  *CDOTAMsg_CoachHUDPing `protobuf:"bytes,2,opt,name=hud_ping,json=hudPing" json:"hud_ping,omitempty"`
}

func (x *CDOTAUserMsg_CoachHUDPing) Reset() {
	*x = CDOTAUserMsg_CoachHUDPing{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[68]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_CoachHUDPing) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_CoachHUDPing) ProtoMessage() {}

func (x *CDOTAUserMsg_CoachHUDPing) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[68]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_CoachHUDPing.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_CoachHUDPing) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{68}
}

func (x *CDOTAUserMsg_CoachHUDPing) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_CoachHUDPing) GetHudPing() *CDOTAMsg_CoachHUDPing {
	if x != nil {
		return x.HudPing
	}
	return nil
}

type CDOTAUserMsg_ClientLoadGridNav struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *CDOTAUserMsg_ClientLoadGridNav) Reset() {
	*x = CDOTAUserMsg_ClientLoadGridNav{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[69]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_ClientLoadGridNav) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_ClientLoadGridNav) ProtoMessage() {}

func (x *CDOTAUserMsg_ClientLoadGridNav) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[69]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_ClientLoadGridNav.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_ClientLoadGridNav) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{69}
}

type CDOTAUserMsg_TE_Projectile struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Source               *uint32                                  `protobuf:"varint,1,opt,name=source" json:"source,omitempty"`
	Target               *uint32                                  `protobuf:"varint,2,opt,name=target" json:"target,omitempty"`
	MoveSpeed            *int32                                   `protobuf:"varint,3,opt,name=move_speed,json=moveSpeed" json:"move_speed,omitempty"`
	SourceAttachment     *int32                                   `protobuf:"varint,4,opt,name=source_attachment,json=sourceAttachment" json:"source_attachment,omitempty"`
	ParticleSystemHandle *int64                                   `protobuf:"varint,5,opt,name=particle_system_handle,json=particleSystemHandle" json:"particle_system_handle,omitempty"`
	Dodgeable            *bool                                    `protobuf:"varint,6,opt,name=dodgeable" json:"dodgeable,omitempty"`
	IsAttack             *bool                                    `protobuf:"varint,7,opt,name=is_attack,json=isAttack" json:"is_attack,omitempty"`
	ExpireTime           *float32                                 `protobuf:"fixed32,9,opt,name=expire_time,json=expireTime" json:"expire_time,omitempty"`
	Maximpacttime        *float32                                 `protobuf:"fixed32,10,opt,name=maximpacttime" json:"maximpacttime,omitempty"`
	Colorgemcolor        *uint32                                  `protobuf:"fixed32,11,opt,name=colorgemcolor" json:"colorgemcolor,omitempty"`
	LaunchTick           *int32                                   `protobuf:"varint,12,opt,name=launch_tick,json=launchTick" json:"launch_tick,omitempty"`
	Handle               *int32                                   `protobuf:"varint,13,opt,name=handle" json:"handle,omitempty"`
	TargetLoc            *CMsgVector                              `protobuf:"bytes,14,opt,name=target_loc,json=targetLoc" json:"target_loc,omitempty"`
	ParticleCpData       []*CDOTAUserMsg_ProjectileParticleCPData `protobuf:"bytes,15,rep,name=particle_cp_data,json=particleCpData" json:"particle_cp_data,omitempty"`
}

func (x *CDOTAUserMsg_TE_Projectile) Reset() {
	*x = CDOTAUserMsg_TE_Projectile{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[70]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_TE_Projectile) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_TE_Projectile) ProtoMessage() {}

func (x *CDOTAUserMsg_TE_Projectile) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[70]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_TE_Projectile.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_TE_Projectile) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{70}
}

func (x *CDOTAUserMsg_TE_Projectile) GetSource() uint32 {
	if x != nil && x.Source != nil {
		return *x.Source
	}
	return 0
}

func (x *CDOTAUserMsg_TE_Projectile) GetTarget() uint32 {
	if x != nil && x.Target != nil {
		return *x.Target
	}
	return 0
}

func (x *CDOTAUserMsg_TE_Projectile) GetMoveSpeed() int32 {
	if x != nil && x.MoveSpeed != nil {
		return *x.MoveSpeed
	}
	return 0
}

func (x *CDOTAUserMsg_TE_Projectile) GetSourceAttachment() int32 {
	if x != nil && x.SourceAttachment != nil {
		return *x.SourceAttachment
	}
	return 0
}

func (x *CDOTAUserMsg_TE_Projectile) GetParticleSystemHandle() int64 {
	if x != nil && x.ParticleSystemHandle != nil {
		return *x.ParticleSystemHandle
	}
	return 0
}

func (x *CDOTAUserMsg_TE_Projectile) GetDodgeable() bool {
	if x != nil && x.Dodgeable != nil {
		return *x.Dodgeable
	}
	return false
}

func (x *CDOTAUserMsg_TE_Projectile) GetIsAttack() bool {
	if x != nil && x.IsAttack != nil {
		return *x.IsAttack
	}
	return false
}

func (x *CDOTAUserMsg_TE_Projectile) GetExpireTime() float32 {
	if x != nil && x.ExpireTime != nil {
		return *x.ExpireTime
	}
	return 0
}

func (x *CDOTAUserMsg_TE_Projectile) GetMaximpacttime() float32 {
	if x != nil && x.Maximpacttime != nil {
		return *x.Maximpacttime
	}
	return 0
}

func (x *CDOTAUserMsg_TE_Projectile) GetColorgemcolor() uint32 {
	if x != nil && x.Colorgemcolor != nil {
		return *x.Colorgemcolor
	}
	return 0
}

func (x *CDOTAUserMsg_TE_Projectile) GetLaunchTick() int32 {
	if x != nil && x.LaunchTick != nil {
		return *x.LaunchTick
	}
	return 0
}

func (x *CDOTAUserMsg_TE_Projectile) GetHandle() int32 {
	if x != nil && x.Handle != nil {
		return *x.Handle
	}
	return 0
}

func (x *CDOTAUserMsg_TE_Projectile) GetTargetLoc() *CMsgVector {
	if x != nil {
		return x.TargetLoc
	}
	return nil
}

func (x *CDOTAUserMsg_TE_Projectile) GetParticleCpData() []*CDOTAUserMsg_ProjectileParticleCPData {
	if x != nil {
		return x.ParticleCpData
	}
	return nil
}

type CDOTAUserMsg_TE_ProjectileLoc struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SourceLoc            *CMsgVector                              `protobuf:"bytes,1,opt,name=source_loc,json=sourceLoc" json:"source_loc,omitempty"`
	Target               *uint32                                  `protobuf:"varint,2,opt,name=target" json:"target,omitempty"`
	MoveSpeed            *int32                                   `protobuf:"varint,3,opt,name=move_speed,json=moveSpeed" json:"move_speed,omitempty"`
	ParticleSystemHandle *int64                                   `protobuf:"varint,4,opt,name=particle_system_handle,json=particleSystemHandle" json:"particle_system_handle,omitempty"`
	Dodgeable            *bool                                    `protobuf:"varint,5,opt,name=dodgeable" json:"dodgeable,omitempty"`
	IsAttack             *bool                                    `protobuf:"varint,6,opt,name=is_attack,json=isAttack" json:"is_attack,omitempty"`
	ExpireTime           *float32                                 `protobuf:"fixed32,9,opt,name=expire_time,json=expireTime" json:"expire_time,omitempty"`
	TargetLoc            *CMsgVector                              `protobuf:"bytes,10,opt,name=target_loc,json=targetLoc" json:"target_loc,omitempty"`
	Colorgemcolor        *uint32                                  `protobuf:"fixed32,11,opt,name=colorgemcolor" json:"colorgemcolor,omitempty"`
	LaunchTick           *int32                                   `protobuf:"varint,12,opt,name=launch_tick,json=launchTick" json:"launch_tick,omitempty"`
	Handle               *int32                                   `protobuf:"varint,13,opt,name=handle" json:"handle,omitempty"`
	Source               *uint32                                  `protobuf:"varint,14,opt,name=source" json:"source,omitempty"`
	SourceAttachment     *int32                                   `protobuf:"varint,15,opt,name=source_attachment,json=sourceAttachment" json:"source_attachment,omitempty"`
	ParticleCpData       []*CDOTAUserMsg_ProjectileParticleCPData `protobuf:"bytes,16,rep,name=particle_cp_data,json=particleCpData" json:"particle_cp_data,omitempty"`
}

func (x *CDOTAUserMsg_TE_ProjectileLoc) Reset() {
	*x = CDOTAUserMsg_TE_ProjectileLoc{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[71]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_TE_ProjectileLoc) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_TE_ProjectileLoc) ProtoMessage() {}

func (x *CDOTAUserMsg_TE_ProjectileLoc) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[71]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_TE_ProjectileLoc.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_TE_ProjectileLoc) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{71}
}

func (x *CDOTAUserMsg_TE_ProjectileLoc) GetSourceLoc() *CMsgVector {
	if x != nil {
		return x.SourceLoc
	}
	return nil
}

func (x *CDOTAUserMsg_TE_ProjectileLoc) GetTarget() uint32 {
	if x != nil && x.Target != nil {
		return *x.Target
	}
	return 0
}

func (x *CDOTAUserMsg_TE_ProjectileLoc) GetMoveSpeed() int32 {
	if x != nil && x.MoveSpeed != nil {
		return *x.MoveSpeed
	}
	return 0
}

func (x *CDOTAUserMsg_TE_ProjectileLoc) GetParticleSystemHandle() int64 {
	if x != nil && x.ParticleSystemHandle != nil {
		return *x.ParticleSystemHandle
	}
	return 0
}

func (x *CDOTAUserMsg_TE_ProjectileLoc) GetDodgeable() bool {
	if x != nil && x.Dodgeable != nil {
		return *x.Dodgeable
	}
	return false
}

func (x *CDOTAUserMsg_TE_ProjectileLoc) GetIsAttack() bool {
	if x != nil && x.IsAttack != nil {
		return *x.IsAttack
	}
	return false
}

func (x *CDOTAUserMsg_TE_ProjectileLoc) GetExpireTime() float32 {
	if x != nil && x.ExpireTime != nil {
		return *x.ExpireTime
	}
	return 0
}

func (x *CDOTAUserMsg_TE_ProjectileLoc) GetTargetLoc() *CMsgVector {
	if x != nil {
		return x.TargetLoc
	}
	return nil
}

func (x *CDOTAUserMsg_TE_ProjectileLoc) GetColorgemcolor() uint32 {
	if x != nil && x.Colorgemcolor != nil {
		return *x.Colorgemcolor
	}
	return 0
}

func (x *CDOTAUserMsg_TE_ProjectileLoc) GetLaunchTick() int32 {
	if x != nil && x.LaunchTick != nil {
		return *x.LaunchTick
	}
	return 0
}

func (x *CDOTAUserMsg_TE_ProjectileLoc) GetHandle() int32 {
	if x != nil && x.Handle != nil {
		return *x.Handle
	}
	return 0
}

func (x *CDOTAUserMsg_TE_ProjectileLoc) GetSource() uint32 {
	if x != nil && x.Source != nil {
		return *x.Source
	}
	return 0
}

func (x *CDOTAUserMsg_TE_ProjectileLoc) GetSourceAttachment() int32 {
	if x != nil && x.SourceAttachment != nil {
		return *x.SourceAttachment
	}
	return 0
}

func (x *CDOTAUserMsg_TE_ProjectileLoc) GetParticleCpData() []*CDOTAUserMsg_ProjectileParticleCPData {
	if x != nil {
		return x.ParticleCpData
	}
	return nil
}

type CDOTAUserMsg_TE_DestroyProjectile struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Handle *int32 `protobuf:"varint,1,opt,name=handle" json:"handle,omitempty"`
}

func (x *CDOTAUserMsg_TE_DestroyProjectile) Reset() {
	*x = CDOTAUserMsg_TE_DestroyProjectile{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[72]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_TE_DestroyProjectile) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_TE_DestroyProjectile) ProtoMessage() {}

func (x *CDOTAUserMsg_TE_DestroyProjectile) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[72]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_TE_DestroyProjectile.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_TE_DestroyProjectile) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{72}
}

func (x *CDOTAUserMsg_TE_DestroyProjectile) GetHandle() int32 {
	if x != nil && x.Handle != nil {
		return *x.Handle
	}
	return 0
}

type CDOTAUserMsg_TE_DotaBloodImpact struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Entity  *uint32  `protobuf:"varint,1,opt,name=entity" json:"entity,omitempty"`
	Scale   *float32 `protobuf:"fixed32,2,opt,name=scale" json:"scale,omitempty"`
	Xnormal *float32 `protobuf:"fixed32,3,opt,name=xnormal" json:"xnormal,omitempty"`
	Ynormal *float32 `protobuf:"fixed32,4,opt,name=ynormal" json:"ynormal,omitempty"`
}

func (x *CDOTAUserMsg_TE_DotaBloodImpact) Reset() {
	*x = CDOTAUserMsg_TE_DotaBloodImpact{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[73]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_TE_DotaBloodImpact) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_TE_DotaBloodImpact) ProtoMessage() {}

func (x *CDOTAUserMsg_TE_DotaBloodImpact) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[73]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_TE_DotaBloodImpact.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_TE_DotaBloodImpact) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{73}
}

func (x *CDOTAUserMsg_TE_DotaBloodImpact) GetEntity() uint32 {
	if x != nil && x.Entity != nil {
		return *x.Entity
	}
	return 0
}

func (x *CDOTAUserMsg_TE_DotaBloodImpact) GetScale() float32 {
	if x != nil && x.Scale != nil {
		return *x.Scale
	}
	return 0
}

func (x *CDOTAUserMsg_TE_DotaBloodImpact) GetXnormal() float32 {
	if x != nil && x.Xnormal != nil {
		return *x.Xnormal
	}
	return 0
}

func (x *CDOTAUserMsg_TE_DotaBloodImpact) GetYnormal() float32 {
	if x != nil && x.Ynormal != nil {
		return *x.Ynormal
	}
	return 0
}

type CDOTAUserMsg_AbilityPing struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId         *int32                  `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	AbilityId        *uint32                 `protobuf:"varint,2,opt,name=ability_id,json=abilityId" json:"ability_id,omitempty"`
	Type             *DOTA_ABILITY_PING_TYPE `protobuf:"varint,3,opt,name=type,enum=DOTA_ABILITY_PING_TYPE,def=1" json:"type,omitempty"`
	CooldownSeconds  *uint32                 `protobuf:"varint,4,opt,name=cooldown_seconds,json=cooldownSeconds" json:"cooldown_seconds,omitempty"`
	Level            *uint32                 `protobuf:"varint,5,opt,name=level" json:"level,omitempty"`
	Passive          *bool                   `protobuf:"varint,6,opt,name=passive" json:"passive,omitempty"`
	ManaNeeded       *uint32                 `protobuf:"varint,7,opt,name=mana_needed,json=manaNeeded" json:"mana_needed,omitempty"`
	EntityId         *uint32                 `protobuf:"varint,8,opt,name=entity_id,json=entityId" json:"entity_id,omitempty"`
	PrimaryCharges   *int32                  `protobuf:"varint,9,opt,name=primary_charges,json=primaryCharges" json:"primary_charges,omitempty"`
	SecondaryCharges *int32                  `protobuf:"varint,10,opt,name=secondary_charges,json=secondaryCharges" json:"secondary_charges,omitempty"`
	CtrlHeld         *bool                   `protobuf:"varint,12,opt,name=ctrl_held,json=ctrlHeld" json:"ctrl_held,omitempty"`
	ReclaimTime      *float32                `protobuf:"fixed32,13,opt,name=reclaim_time,json=reclaimTime" json:"reclaim_time,omitempty"`
}

// Default values for CDOTAUserMsg_AbilityPing fields.
const (
	Default_CDOTAUserMsg_AbilityPing_Type = DOTA_ABILITY_PING_TYPE_ABILITY_PING_READY
)

func (x *CDOTAUserMsg_AbilityPing) Reset() {
	*x = CDOTAUserMsg_AbilityPing{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[74]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_AbilityPing) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_AbilityPing) ProtoMessage() {}

func (x *CDOTAUserMsg_AbilityPing) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[74]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_AbilityPing.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_AbilityPing) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{74}
}

func (x *CDOTAUserMsg_AbilityPing) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_AbilityPing) GetAbilityId() uint32 {
	if x != nil && x.AbilityId != nil {
		return *x.AbilityId
	}
	return 0
}

func (x *CDOTAUserMsg_AbilityPing) GetType() DOTA_ABILITY_PING_TYPE {
	if x != nil && x.Type != nil {
		return *x.Type
	}
	return Default_CDOTAUserMsg_AbilityPing_Type
}

func (x *CDOTAUserMsg_AbilityPing) GetCooldownSeconds() uint32 {
	if x != nil && x.CooldownSeconds != nil {
		return *x.CooldownSeconds
	}
	return 0
}

func (x *CDOTAUserMsg_AbilityPing) GetLevel() uint32 {
	if x != nil && x.Level != nil {
		return *x.Level
	}
	return 0
}

func (x *CDOTAUserMsg_AbilityPing) GetPassive() bool {
	if x != nil && x.Passive != nil {
		return *x.Passive
	}
	return false
}

func (x *CDOTAUserMsg_AbilityPing) GetManaNeeded() uint32 {
	if x != nil && x.ManaNeeded != nil {
		return *x.ManaNeeded
	}
	return 0
}

func (x *CDOTAUserMsg_AbilityPing) GetEntityId() uint32 {
	if x != nil && x.EntityId != nil {
		return *x.EntityId
	}
	return 0
}

func (x *CDOTAUserMsg_AbilityPing) GetPrimaryCharges() int32 {
	if x != nil && x.PrimaryCharges != nil {
		return *x.PrimaryCharges
	}
	return 0
}

func (x *CDOTAUserMsg_AbilityPing) GetSecondaryCharges() int32 {
	if x != nil && x.SecondaryCharges != nil {
		return *x.SecondaryCharges
	}
	return 0
}

func (x *CDOTAUserMsg_AbilityPing) GetCtrlHeld() bool {
	if x != nil && x.CtrlHeld != nil {
		return *x.CtrlHeld
	}
	return false
}

func (x *CDOTAUserMsg_AbilityPing) GetReclaimTime() float32 {
	if x != nil && x.ReclaimTime != nil {
		return *x.ReclaimTime
	}
	return 0
}

type CDOTAUserMsg_TE_UnitAnimation struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Entity              *uint32  `protobuf:"varint,1,opt,name=entity" json:"entity,omitempty"`
	SequenceVariant     *int32   `protobuf:"varint,2,opt,name=sequence_variant,json=sequenceVariant" json:"sequence_variant,omitempty"`
	Playbackrate        *float32 `protobuf:"fixed32,3,opt,name=playbackrate" json:"playbackrate,omitempty"`
	Castpoint           *float32 `protobuf:"fixed32,4,opt,name=castpoint" json:"castpoint,omitempty"`
	Type                *int32   `protobuf:"varint,5,opt,name=type" json:"type,omitempty"`
	Activity            *int32   `protobuf:"varint,6,opt,name=activity" json:"activity,omitempty"`
	LagCompensationTime *float32 `protobuf:"fixed32,7,opt,name=lag_compensation_time,json=lagCompensationTime" json:"lag_compensation_time,omitempty"`
}

func (x *CDOTAUserMsg_TE_UnitAnimation) Reset() {
	*x = CDOTAUserMsg_TE_UnitAnimation{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[75]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_TE_UnitAnimation) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_TE_UnitAnimation) ProtoMessage() {}

func (x *CDOTAUserMsg_TE_UnitAnimation) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[75]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_TE_UnitAnimation.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_TE_UnitAnimation) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{75}
}

func (x *CDOTAUserMsg_TE_UnitAnimation) GetEntity() uint32 {
	if x != nil && x.Entity != nil {
		return *x.Entity
	}
	return 0
}

func (x *CDOTAUserMsg_TE_UnitAnimation) GetSequenceVariant() int32 {
	if x != nil && x.SequenceVariant != nil {
		return *x.SequenceVariant
	}
	return 0
}

func (x *CDOTAUserMsg_TE_UnitAnimation) GetPlaybackrate() float32 {
	if x != nil && x.Playbackrate != nil {
		return *x.Playbackrate
	}
	return 0
}

func (x *CDOTAUserMsg_TE_UnitAnimation) GetCastpoint() float32 {
	if x != nil && x.Castpoint != nil {
		return *x.Castpoint
	}
	return 0
}

func (x *CDOTAUserMsg_TE_UnitAnimation) GetType() int32 {
	if x != nil && x.Type != nil {
		return *x.Type
	}
	return 0
}

func (x *CDOTAUserMsg_TE_UnitAnimation) GetActivity() int32 {
	if x != nil && x.Activity != nil {
		return *x.Activity
	}
	return 0
}

func (x *CDOTAUserMsg_TE_UnitAnimation) GetLagCompensationTime() float32 {
	if x != nil && x.LagCompensationTime != nil {
		return *x.LagCompensationTime
	}
	return 0
}

type CDOTAUserMsg_TE_UnitAnimationEnd struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Entity *uint32 `protobuf:"varint,1,opt,name=entity" json:"entity,omitempty"`
	Snap   *bool   `protobuf:"varint,2,opt,name=snap" json:"snap,omitempty"`
}

func (x *CDOTAUserMsg_TE_UnitAnimationEnd) Reset() {
	*x = CDOTAUserMsg_TE_UnitAnimationEnd{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[76]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_TE_UnitAnimationEnd) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_TE_UnitAnimationEnd) ProtoMessage() {}

func (x *CDOTAUserMsg_TE_UnitAnimationEnd) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[76]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_TE_UnitAnimationEnd.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_TE_UnitAnimationEnd) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{76}
}

func (x *CDOTAUserMsg_TE_UnitAnimationEnd) GetEntity() uint32 {
	if x != nil && x.Entity != nil {
		return *x.Entity
	}
	return 0
}

func (x *CDOTAUserMsg_TE_UnitAnimationEnd) GetSnap() bool {
	if x != nil && x.Snap != nil {
		return *x.Snap
	}
	return false
}

type CDOTAUserMsg_ShowGenericPopup struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header             *string `protobuf:"bytes,1,req,name=header" json:"header,omitempty"`
	Body               *string `protobuf:"bytes,2,req,name=body" json:"body,omitempty"`
	Param1             *string `protobuf:"bytes,3,opt,name=param1" json:"param1,omitempty"`
	Param2             *string `protobuf:"bytes,4,opt,name=param2" json:"param2,omitempty"`
	TintScreen         *bool   `protobuf:"varint,5,opt,name=tint_screen,json=tintScreen" json:"tint_screen,omitempty"`
	ShowNoOtherDialogs *bool   `protobuf:"varint,6,opt,name=show_no_other_dialogs,json=showNoOtherDialogs" json:"show_no_other_dialogs,omitempty"`
}

func (x *CDOTAUserMsg_ShowGenericPopup) Reset() {
	*x = CDOTAUserMsg_ShowGenericPopup{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[77]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_ShowGenericPopup) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_ShowGenericPopup) ProtoMessage() {}

func (x *CDOTAUserMsg_ShowGenericPopup) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[77]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_ShowGenericPopup.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_ShowGenericPopup) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{77}
}

func (x *CDOTAUserMsg_ShowGenericPopup) GetHeader() string {
	if x != nil && x.Header != nil {
		return *x.Header
	}
	return ""
}

func (x *CDOTAUserMsg_ShowGenericPopup) GetBody() string {
	if x != nil && x.Body != nil {
		return *x.Body
	}
	return ""
}

func (x *CDOTAUserMsg_ShowGenericPopup) GetParam1() string {
	if x != nil && x.Param1 != nil {
		return *x.Param1
	}
	return ""
}

func (x *CDOTAUserMsg_ShowGenericPopup) GetParam2() string {
	if x != nil && x.Param2 != nil {
		return *x.Param2
	}
	return ""
}

func (x *CDOTAUserMsg_ShowGenericPopup) GetTintScreen() bool {
	if x != nil && x.TintScreen != nil {
		return *x.TintScreen
	}
	return false
}

func (x *CDOTAUserMsg_ShowGenericPopup) GetShowNoOtherDialogs() bool {
	if x != nil && x.ShowNoOtherDialogs != nil {
		return *x.ShowNoOtherDialogs
	}
	return false
}

type CDOTAUserMsg_VoteStart struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Title       *string  `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"`
	Duration    *float32 `protobuf:"fixed32,2,opt,name=duration" json:"duration,omitempty"`
	ChoiceCount *int32   `protobuf:"varint,3,opt,name=choice_count,json=choiceCount" json:"choice_count,omitempty"`
	Choices     []string `protobuf:"bytes,4,rep,name=choices" json:"choices,omitempty"`
}

func (x *CDOTAUserMsg_VoteStart) Reset() {
	*x = CDOTAUserMsg_VoteStart{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[78]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_VoteStart) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_VoteStart) ProtoMessage() {}

func (x *CDOTAUserMsg_VoteStart) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[78]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_VoteStart.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_VoteStart) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{78}
}

func (x *CDOTAUserMsg_VoteStart) GetTitle() string {
	if x != nil && x.Title != nil {
		return *x.Title
	}
	return ""
}

func (x *CDOTAUserMsg_VoteStart) GetDuration() float32 {
	if x != nil && x.Duration != nil {
		return *x.Duration
	}
	return 0
}

func (x *CDOTAUserMsg_VoteStart) GetChoiceCount() int32 {
	if x != nil && x.ChoiceCount != nil {
		return *x.ChoiceCount
	}
	return 0
}

func (x *CDOTAUserMsg_VoteStart) GetChoices() []string {
	if x != nil {
		return x.Choices
	}
	return nil
}

type CDOTAUserMsg_VoteUpdate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ChoiceCounts []int32 `protobuf:"varint,1,rep,name=choice_counts,json=choiceCounts" json:"choice_counts,omitempty"`
}

func (x *CDOTAUserMsg_VoteUpdate) Reset() {
	*x = CDOTAUserMsg_VoteUpdate{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[79]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_VoteUpdate) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_VoteUpdate) ProtoMessage() {}

func (x *CDOTAUserMsg_VoteUpdate) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[79]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_VoteUpdate.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_VoteUpdate) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{79}
}

func (x *CDOTAUserMsg_VoteUpdate) GetChoiceCounts() []int32 {
	if x != nil {
		return x.ChoiceCounts
	}
	return nil
}

type CDOTAUserMsg_VoteEnd struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SelectedChoice *int32 `protobuf:"varint,1,opt,name=selected_choice,json=selectedChoice" json:"selected_choice,omitempty"`
}

func (x *CDOTAUserMsg_VoteEnd) Reset() {
	*x = CDOTAUserMsg_VoteEnd{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[80]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_VoteEnd) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_VoteEnd) ProtoMessage() {}

func (x *CDOTAUserMsg_VoteEnd) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[80]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_VoteEnd.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_VoteEnd) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{80}
}

func (x *CDOTAUserMsg_VoteEnd) GetSelectedChoice() int32 {
	if x != nil && x.SelectedChoice != nil {
		return *x.SelectedChoice
	}
	return 0
}

type CDOTAUserMsg_BoosterStatePlayer struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId         *int32   `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	Bonus            *float32 `protobuf:"fixed32,2,opt,name=bonus" json:"bonus,omitempty"`
	EventBonus       *float32 `protobuf:"fixed32,3,opt,name=event_bonus,json=eventBonus" json:"event_bonus,omitempty"`
	BonusItemId      *uint32  `protobuf:"varint,4,opt,name=bonus_item_id,json=bonusItemId" json:"bonus_item_id,omitempty"`
	EventBonusItemId *uint32  `protobuf:"varint,5,opt,name=event_bonus_item_id,json=eventBonusItemId" json:"event_bonus_item_id,omitempty"`
}

func (x *CDOTAUserMsg_BoosterStatePlayer) Reset() {
	*x = CDOTAUserMsg_BoosterStatePlayer{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[81]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_BoosterStatePlayer) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_BoosterStatePlayer) ProtoMessage() {}

func (x *CDOTAUserMsg_BoosterStatePlayer) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[81]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_BoosterStatePlayer.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_BoosterStatePlayer) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{81}
}

func (x *CDOTAUserMsg_BoosterStatePlayer) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_BoosterStatePlayer) GetBonus() float32 {
	if x != nil && x.Bonus != nil {
		return *x.Bonus
	}
	return 0
}

func (x *CDOTAUserMsg_BoosterStatePlayer) GetEventBonus() float32 {
	if x != nil && x.EventBonus != nil {
		return *x.EventBonus
	}
	return 0
}

func (x *CDOTAUserMsg_BoosterStatePlayer) GetBonusItemId() uint32 {
	if x != nil && x.BonusItemId != nil {
		return *x.BonusItemId
	}
	return 0
}

func (x *CDOTAUserMsg_BoosterStatePlayer) GetEventBonusItemId() uint32 {
	if x != nil && x.EventBonusItemId != nil {
		return *x.EventBonusItemId
	}
	return 0
}

type CDOTAUserMsg_BoosterState struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	BoostedPlayers []*CDOTAUserMsg_BoosterStatePlayer `protobuf:"bytes,1,rep,name=boosted_players,json=boostedPlayers" json:"boosted_players,omitempty"`
}

func (x *CDOTAUserMsg_BoosterState) Reset() {
	*x = CDOTAUserMsg_BoosterState{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[82]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_BoosterState) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_BoosterState) ProtoMessage() {}

func (x *CDOTAUserMsg_BoosterState) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[82]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_BoosterState.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_BoosterState) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{82}
}

func (x *CDOTAUserMsg_BoosterState) GetBoostedPlayers() []*CDOTAUserMsg_BoosterStatePlayer {
	if x != nil {
		return x.BoostedPlayers
	}
	return nil
}

type CDOTAUserMsg_PlayerMMR struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Mmr []int32 `protobuf:"zigzag32,1,rep,packed,name=mmr" json:"mmr,omitempty"`
}

func (x *CDOTAUserMsg_PlayerMMR) Reset() {
	*x = CDOTAUserMsg_PlayerMMR{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[83]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_PlayerMMR) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_PlayerMMR) ProtoMessage() {}

func (x *CDOTAUserMsg_PlayerMMR) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[83]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_PlayerMMR.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_PlayerMMR) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{83}
}

func (x *CDOTAUserMsg_PlayerMMR) GetMmr() []int32 {
	if x != nil {
		return x.Mmr
	}
	return nil
}

type CDOTAUserMsg_AbilitySteal struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId     *int32  `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	AbilityId    *uint32 `protobuf:"varint,2,opt,name=ability_id,json=abilityId" json:"ability_id,omitempty"`
	AbilityLevel *uint32 `protobuf:"varint,3,opt,name=ability_level,json=abilityLevel" json:"ability_level,omitempty"`
}

func (x *CDOTAUserMsg_AbilitySteal) Reset() {
	*x = CDOTAUserMsg_AbilitySteal{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[84]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_AbilitySteal) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_AbilitySteal) ProtoMessage() {}

func (x *CDOTAUserMsg_AbilitySteal) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[84]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_AbilitySteal.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_AbilitySteal) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{84}
}

func (x *CDOTAUserMsg_AbilitySteal) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_AbilitySteal) GetAbilityId() uint32 {
	if x != nil && x.AbilityId != nil {
		return *x.AbilityId
	}
	return 0
}

func (x *CDOTAUserMsg_AbilitySteal) GetAbilityLevel() uint32 {
	if x != nil && x.AbilityLevel != nil {
		return *x.AbilityLevel
	}
	return 0
}

type CDOTAUserMsg_StatsHeroLookup struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId *int32  `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	HeroId   *int32  `protobuf:"varint,2,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"`
	HeroName *string `protobuf:"bytes,3,opt,name=hero_name,json=heroName" json:"hero_name,omitempty"`
	Persona  *string `protobuf:"bytes,4,opt,name=persona" json:"persona,omitempty"`
}

func (x *CDOTAUserMsg_StatsHeroLookup) Reset() {
	*x = CDOTAUserMsg_StatsHeroLookup{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[85]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_StatsHeroLookup) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_StatsHeroLookup) ProtoMessage() {}

func (x *CDOTAUserMsg_StatsHeroLookup) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[85]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_StatsHeroLookup.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_StatsHeroLookup) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{85}
}

func (x *CDOTAUserMsg_StatsHeroLookup) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_StatsHeroLookup) GetHeroId() int32 {
	if x != nil && x.HeroId != nil {
		return *x.HeroId
	}
	return 0
}

func (x *CDOTAUserMsg_StatsHeroLookup) GetHeroName() string {
	if x != nil && x.HeroName != nil {
		return *x.HeroName
	}
	return ""
}

func (x *CDOTAUserMsg_StatsHeroLookup) GetPersona() string {
	if x != nil && x.Persona != nil {
		return *x.Persona
	}
	return ""
}

type CDOTAUserMsg_StatsHeroPositionInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AveragePosition *float32                                           `protobuf:"fixed32,1,opt,name=average_position,json=averagePosition" json:"average_position,omitempty"`
	PositionDetails []*CDOTAUserMsg_StatsHeroPositionInfo_PositionPair `protobuf:"bytes,2,rep,name=position_details,json=positionDetails" json:"position_details,omitempty"`
}

func (x *CDOTAUserMsg_StatsHeroPositionInfo) Reset() {
	*x = CDOTAUserMsg_StatsHeroPositionInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[86]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_StatsHeroPositionInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_StatsHeroPositionInfo) ProtoMessage() {}

func (x *CDOTAUserMsg_StatsHeroPositionInfo) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[86]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_StatsHeroPositionInfo.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_StatsHeroPositionInfo) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{86}
}

func (x *CDOTAUserMsg_StatsHeroPositionInfo) GetAveragePosition() float32 {
	if x != nil && x.AveragePosition != nil {
		return *x.AveragePosition
	}
	return 0
}

func (x *CDOTAUserMsg_StatsHeroPositionInfo) GetPositionDetails() []*CDOTAUserMsg_StatsHeroPositionInfo_PositionPair {
	if x != nil {
		return x.PositionDetails
	}
	return nil
}

type CDOTAUserMsg_StatsHeroMinuteDetails struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	LastHits           *uint32                             `protobuf:"varint,1,opt,name=last_hits,json=lastHits" json:"last_hits,omitempty"`
	HeroKills          *uint32                             `protobuf:"varint,2,opt,name=hero_kills,json=heroKills" json:"hero_kills,omitempty"`
	HeroDamage         *uint32                             `protobuf:"varint,3,opt,name=hero_damage,json=heroDamage" json:"hero_damage,omitempty"`
	TowerDamage        *uint32                             `protobuf:"varint,4,opt,name=tower_damage,json=towerDamage" json:"tower_damage,omitempty"`
	PositionInfo       *CDOTAUserMsg_StatsHeroPositionInfo `protobuf:"bytes,5,opt,name=position_info,json=positionInfo" json:"position_info,omitempty"`
	TotalXp            *uint32                             `protobuf:"varint,6,opt,name=total_xp,json=totalXp" json:"total_xp,omitempty"`
	NetWorth           *uint32                             `protobuf:"varint,7,opt,name=net_worth,json=netWorth" json:"net_worth,omitempty"`
	HarvestedCreepGold *uint32                             `protobuf:"varint,8,opt,name=harvested_creep_gold,json=harvestedCreepGold" json:"harvested_creep_gold,omitempty"`
	ClaimedFarm        *uint32                             `protobuf:"varint,9,opt,name=claimed_farm,json=claimedFarm" json:"claimed_farm,omitempty"`
	WardsPlaced        *uint32                             `protobuf:"varint,10,opt,name=wards_placed,json=wardsPlaced" json:"wards_placed,omitempty"`
	RunesCollected     *uint32                             `protobuf:"varint,11,opt,name=runes_collected,json=runesCollected" json:"runes_collected,omitempty"`
	TpsUsed            *uint32                             `protobuf:"varint,12,opt,name=tps_used,json=tpsUsed" json:"tps_used,omitempty"`
	ManaSpent          []uint32                            `protobuf:"varint,13,rep,name=mana_spent,json=manaSpent" json:"mana_spent,omitempty"`
	DamageAbsorbed     []uint32                            `protobuf:"varint,14,rep,name=damage_absorbed,json=damageAbsorbed" json:"damage_absorbed,omitempty"`
	DamageDone         []uint32                            `protobuf:"varint,15,rep,name=damage_done,json=damageDone" json:"damage_done,omitempty"`
}

func (x *CDOTAUserMsg_StatsHeroMinuteDetails) Reset() {
	*x = CDOTAUserMsg_StatsHeroMinuteDetails{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[87]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_StatsHeroMinuteDetails) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_StatsHeroMinuteDetails) ProtoMessage() {}

func (x *CDOTAUserMsg_StatsHeroMinuteDetails) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[87]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_StatsHeroMinuteDetails.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_StatsHeroMinuteDetails) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{87}
}

func (x *CDOTAUserMsg_StatsHeroMinuteDetails) GetLastHits() uint32 {
	if x != nil && x.LastHits != nil {
		return *x.LastHits
	}
	return 0
}

func (x *CDOTAUserMsg_StatsHeroMinuteDetails) GetHeroKills() uint32 {
	if x != nil && x.HeroKills != nil {
		return *x.HeroKills
	}
	return 0
}

func (x *CDOTAUserMsg_StatsHeroMinuteDetails) GetHeroDamage() uint32 {
	if x != nil && x.HeroDamage != nil {
		return *x.HeroDamage
	}
	return 0
}

func (x *CDOTAUserMsg_StatsHeroMinuteDetails) GetTowerDamage() uint32 {
	if x != nil && x.TowerDamage != nil {
		return *x.TowerDamage
	}
	return 0
}

func (x *CDOTAUserMsg_StatsHeroMinuteDetails) GetPositionInfo() *CDOTAUserMsg_StatsHeroPositionInfo {
	if x != nil {
		return x.PositionInfo
	}
	return nil
}

func (x *CDOTAUserMsg_StatsHeroMinuteDetails) GetTotalXp() uint32 {
	if x != nil && x.TotalXp != nil {
		return *x.TotalXp
	}
	return 0
}

func (x *CDOTAUserMsg_StatsHeroMinuteDetails) GetNetWorth() uint32 {
	if x != nil && x.NetWorth != nil {
		return *x.NetWorth
	}
	return 0
}

func (x *CDOTAUserMsg_StatsHeroMinuteDetails) GetHarvestedCreepGold() uint32 {
	if x != nil && x.HarvestedCreepGold != nil {
		return *x.HarvestedCreepGold
	}
	return 0
}

func (x *CDOTAUserMsg_StatsHeroMinuteDetails) GetClaimedFarm() uint32 {
	if x != nil && x.ClaimedFarm != nil {
		return *x.ClaimedFarm
	}
	return 0
}

func (x *CDOTAUserMsg_StatsHeroMinuteDetails) GetWardsPlaced() uint32 {
	if x != nil && x.WardsPlaced != nil {
		return *x.WardsPlaced
	}
	return 0
}

func (x *CDOTAUserMsg_StatsHeroMinuteDetails) GetRunesCollected() uint32 {
	if x != nil && x.RunesCollected != nil {
		return *x.RunesCollected
	}
	return 0
}

func (x *CDOTAUserMsg_StatsHeroMinuteDetails) GetTpsUsed() uint32 {
	if x != nil && x.TpsUsed != nil {
		return *x.TpsUsed
	}
	return 0
}

func (x *CDOTAUserMsg_StatsHeroMinuteDetails) GetManaSpent() []uint32 {
	if x != nil {
		return x.ManaSpent
	}
	return nil
}

func (x *CDOTAUserMsg_StatsHeroMinuteDetails) GetDamageAbsorbed() []uint32 {
	if x != nil {
		return x.DamageAbsorbed
	}
	return nil
}

func (x *CDOTAUserMsg_StatsHeroMinuteDetails) GetDamageDone() []uint32 {
	if x != nil {
		return x.DamageDone
	}
	return nil
}

type CDOTAUserMsg_StatsTeamMinuteDetails struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerStats            []*CDOTAUserMsg_StatsHeroMinuteDetails                     `protobuf:"bytes,1,rep,name=player_stats,json=playerStats" json:"player_stats,omitempty"`
	TowerKills             *uint32                                                    `protobuf:"varint,2,opt,name=tower_kills,json=towerKills" json:"tower_kills,omitempty"`
	BarrackKills           *uint32                                                    `protobuf:"varint,3,opt,name=barrack_kills,json=barrackKills" json:"barrack_kills,omitempty"`
	AvailableLaneCreepGold *uint32                                                    `protobuf:"varint,4,opt,name=available_lane_creep_gold,json=availableLaneCreepGold" json:"available_lane_creep_gold,omitempty"`
	BalanceKillValue       *uint32                                                    `protobuf:"varint,5,opt,name=balance_kill_value,json=balanceKillValue" json:"balance_kill_value,omitempty"`
	BalanceTowerValue      *uint32                                                    `protobuf:"varint,6,opt,name=balance_tower_value,json=balanceTowerValue" json:"balance_tower_value,omitempty"`
	BalanceBarracksValue   *uint32                                                    `protobuf:"varint,7,opt,name=balance_barracks_value,json=balanceBarracksValue" json:"balance_barracks_value,omitempty"`
	BalanceGoldValue       *uint32                                                    `protobuf:"varint,8,opt,name=balance_gold_value,json=balanceGoldValue" json:"balance_gold_value,omitempty"`
	BalanceXpValue         *uint32                                                    `protobuf:"varint,9,opt,name=balance_xp_value,json=balanceXpValue" json:"balance_xp_value,omitempty"`
	LanePerformance        []*CDOTAUserMsg_StatsTeamMinuteDetails_LocationPerformance `protobuf:"bytes,10,rep,name=lane_performance,json=lanePerformance" json:"lane_performance,omitempty"`
}

func (x *CDOTAUserMsg_StatsTeamMinuteDetails) Reset() {
	*x = CDOTAUserMsg_StatsTeamMinuteDetails{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[88]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_StatsTeamMinuteDetails) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_StatsTeamMinuteDetails) ProtoMessage() {}

func (x *CDOTAUserMsg_StatsTeamMinuteDetails) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[88]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_StatsTeamMinuteDetails.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_StatsTeamMinuteDetails) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{88}
}

func (x *CDOTAUserMsg_StatsTeamMinuteDetails) GetPlayerStats() []*CDOTAUserMsg_StatsHeroMinuteDetails {
	if x != nil {
		return x.PlayerStats
	}
	return nil
}

func (x *CDOTAUserMsg_StatsTeamMinuteDetails) GetTowerKills() uint32 {
	if x != nil && x.TowerKills != nil {
		return *x.TowerKills
	}
	return 0
}

func (x *CDOTAUserMsg_StatsTeamMinuteDetails) GetBarrackKills() uint32 {
	if x != nil && x.BarrackKills != nil {
		return *x.BarrackKills
	}
	return 0
}

func (x *CDOTAUserMsg_StatsTeamMinuteDetails) GetAvailableLaneCreepGold() uint32 {
	if x != nil && x.AvailableLaneCreepGold != nil {
		return *x.AvailableLaneCreepGold
	}
	return 0
}

func (x *CDOTAUserMsg_StatsTeamMinuteDetails) GetBalanceKillValue() uint32 {
	if x != nil && x.BalanceKillValue != nil {
		return *x.BalanceKillValue
	}
	return 0
}

func (x *CDOTAUserMsg_StatsTeamMinuteDetails) GetBalanceTowerValue() uint32 {
	if x != nil && x.BalanceTowerValue != nil {
		return *x.BalanceTowerValue
	}
	return 0
}

func (x *CDOTAUserMsg_StatsTeamMinuteDetails) GetBalanceBarracksValue() uint32 {
	if x != nil && x.BalanceBarracksValue != nil {
		return *x.BalanceBarracksValue
	}
	return 0
}

func (x *CDOTAUserMsg_StatsTeamMinuteDetails) GetBalanceGoldValue() uint32 {
	if x != nil && x.BalanceGoldValue != nil {
		return *x.BalanceGoldValue
	}
	return 0
}

func (x *CDOTAUserMsg_StatsTeamMinuteDetails) GetBalanceXpValue() uint32 {
	if x != nil && x.BalanceXpValue != nil {
		return *x.BalanceXpValue
	}
	return 0
}

func (x *CDOTAUserMsg_StatsTeamMinuteDetails) GetLanePerformance() []*CDOTAUserMsg_StatsTeamMinuteDetails_LocationPerformance {
	if x != nil {
		return x.LanePerformance
	}
	return nil
}

type CDOTAUserMsg_StatsPlayerKillShare struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId         *int32   `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	KillSharePercent *float32 `protobuf:"fixed32,2,opt,name=kill_share_percent,json=killSharePercent" json:"kill_share_percent,omitempty"`
	PlayerLocX       *float32 `protobuf:"fixed32,3,opt,name=player_loc_x,json=playerLocX" json:"player_loc_x,omitempty"`
	PlayerLocY       *float32 `protobuf:"fixed32,4,opt,name=player_loc_y,json=playerLocY" json:"player_loc_y,omitempty"`
	HealthPercent    *float32 `protobuf:"fixed32,5,opt,name=health_percent,json=healthPercent" json:"health_percent,omitempty"`
	ManaPercent      *float32 `protobuf:"fixed32,6,opt,name=mana_percent,json=manaPercent" json:"mana_percent,omitempty"`
}

func (x *CDOTAUserMsg_StatsPlayerKillShare) Reset() {
	*x = CDOTAUserMsg_StatsPlayerKillShare{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[89]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_StatsPlayerKillShare) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_StatsPlayerKillShare) ProtoMessage() {}

func (x *CDOTAUserMsg_StatsPlayerKillShare) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[89]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_StatsPlayerKillShare.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_StatsPlayerKillShare) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{89}
}

func (x *CDOTAUserMsg_StatsPlayerKillShare) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_StatsPlayerKillShare) GetKillSharePercent() float32 {
	if x != nil && x.KillSharePercent != nil {
		return *x.KillSharePercent
	}
	return 0
}

func (x *CDOTAUserMsg_StatsPlayerKillShare) GetPlayerLocX() float32 {
	if x != nil && x.PlayerLocX != nil {
		return *x.PlayerLocX
	}
	return 0
}

func (x *CDOTAUserMsg_StatsPlayerKillShare) GetPlayerLocY() float32 {
	if x != nil && x.PlayerLocY != nil {
		return *x.PlayerLocY
	}
	return 0
}

func (x *CDOTAUserMsg_StatsPlayerKillShare) GetHealthPercent() float32 {
	if x != nil && x.HealthPercent != nil {
		return *x.HealthPercent
	}
	return 0
}

func (x *CDOTAUserMsg_StatsPlayerKillShare) GetManaPercent() float32 {
	if x != nil && x.ManaPercent != nil {
		return *x.ManaPercent
	}
	return 0
}

type CDOTAUserMsg_StatsKillDetails struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	VictimId        *int32                               `protobuf:"varint,1,opt,name=victim_id,json=victimId" json:"victim_id,omitempty"`
	KillShares      []*CDOTAUserMsg_StatsPlayerKillShare `protobuf:"bytes,2,rep,name=kill_shares,json=killShares" json:"kill_shares,omitempty"`
	DamageToKill    *uint32                              `protobuf:"varint,3,opt,name=damage_to_kill,json=damageToKill" json:"damage_to_kill,omitempty"`
	EffectiveHealth *uint32                              `protobuf:"varint,4,opt,name=effective_health,json=effectiveHealth" json:"effective_health,omitempty"`
	DeathTime       *float32                             `protobuf:"fixed32,5,opt,name=death_time,json=deathTime" json:"death_time,omitempty"`
	KillerId        *int32                               `protobuf:"varint,6,opt,name=killer_id,json=killerId" json:"killer_id,omitempty"`
}

func (x *CDOTAUserMsg_StatsKillDetails) Reset() {
	*x = CDOTAUserMsg_StatsKillDetails{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[90]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_StatsKillDetails) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_StatsKillDetails) ProtoMessage() {}

func (x *CDOTAUserMsg_StatsKillDetails) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[90]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_StatsKillDetails.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_StatsKillDetails) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{90}
}

func (x *CDOTAUserMsg_StatsKillDetails) GetVictimId() int32 {
	if x != nil && x.VictimId != nil {
		return *x.VictimId
	}
	return 0
}

func (x *CDOTAUserMsg_StatsKillDetails) GetKillShares() []*CDOTAUserMsg_StatsPlayerKillShare {
	if x != nil {
		return x.KillShares
	}
	return nil
}

func (x *CDOTAUserMsg_StatsKillDetails) GetDamageToKill() uint32 {
	if x != nil && x.DamageToKill != nil {
		return *x.DamageToKill
	}
	return 0
}

func (x *CDOTAUserMsg_StatsKillDetails) GetEffectiveHealth() uint32 {
	if x != nil && x.EffectiveHealth != nil {
		return *x.EffectiveHealth
	}
	return 0
}

func (x *CDOTAUserMsg_StatsKillDetails) GetDeathTime() float32 {
	if x != nil && x.DeathTime != nil {
		return *x.DeathTime
	}
	return 0
}

func (x *CDOTAUserMsg_StatsKillDetails) GetKillerId() int32 {
	if x != nil && x.KillerId != nil {
		return *x.KillerId
	}
	return 0
}

type CDOTAUserMsg_StatsMatchDetails struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	HeroLookup   []*CDOTAUserMsg_StatsHeroLookup                                  `protobuf:"bytes,1,rep,name=hero_lookup,json=heroLookup" json:"hero_lookup,omitempty"`
	RadiantStats []*CDOTAUserMsg_StatsTeamMinuteDetails                           `protobuf:"bytes,2,rep,name=radiant_stats,json=radiantStats" json:"radiant_stats,omitempty"`
	DireStats    []*CDOTAUserMsg_StatsTeamMinuteDetails                           `protobuf:"bytes,3,rep,name=dire_stats,json=direStats" json:"dire_stats,omitempty"`
	RadiantKills []*CDOTAUserMsg_StatsKillDetails                                 `protobuf:"bytes,4,rep,name=radiant_kills,json=radiantKills" json:"radiant_kills,omitempty"`
	DireKills    []*CDOTAUserMsg_StatsKillDetails                                 `protobuf:"bytes,5,rep,name=dire_kills,json=direKills" json:"dire_kills,omitempty"`
	FightDetails []*CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightDetails `protobuf:"bytes,6,rep,name=fight_details,json=fightDetails" json:"fight_details,omitempty"`
}

func (x *CDOTAUserMsg_StatsMatchDetails) Reset() {
	*x = CDOTAUserMsg_StatsMatchDetails{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[91]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_StatsMatchDetails) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_StatsMatchDetails) ProtoMessage() {}

func (x *CDOTAUserMsg_StatsMatchDetails) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[91]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_StatsMatchDetails.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_StatsMatchDetails) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{91}
}

func (x *CDOTAUserMsg_StatsMatchDetails) GetHeroLookup() []*CDOTAUserMsg_StatsHeroLookup {
	if x != nil {
		return x.HeroLookup
	}
	return nil
}

func (x *CDOTAUserMsg_StatsMatchDetails) GetRadiantStats() []*CDOTAUserMsg_StatsTeamMinuteDetails {
	if x != nil {
		return x.RadiantStats
	}
	return nil
}

func (x *CDOTAUserMsg_StatsMatchDetails) GetDireStats() []*CDOTAUserMsg_StatsTeamMinuteDetails {
	if x != nil {
		return x.DireStats
	}
	return nil
}

func (x *CDOTAUserMsg_StatsMatchDetails) GetRadiantKills() []*CDOTAUserMsg_StatsKillDetails {
	if x != nil {
		return x.RadiantKills
	}
	return nil
}

func (x *CDOTAUserMsg_StatsMatchDetails) GetDireKills() []*CDOTAUserMsg_StatsKillDetails {
	if x != nil {
		return x.DireKills
	}
	return nil
}

func (x *CDOTAUserMsg_StatsMatchDetails) GetFightDetails() []*CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightDetails {
	if x != nil {
		return x.FightDetails
	}
	return nil
}

type CDOTAUserMsg_MiniTaunt struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	TauntingPlayerId *int32 `protobuf:"varint,1,opt,name=taunting_player_id,json=tauntingPlayerId" json:"taunting_player_id,omitempty"`
}

func (x *CDOTAUserMsg_MiniTaunt) Reset() {
	*x = CDOTAUserMsg_MiniTaunt{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[92]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_MiniTaunt) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_MiniTaunt) ProtoMessage() {}

func (x *CDOTAUserMsg_MiniTaunt) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[92]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_MiniTaunt.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_MiniTaunt) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{92}
}

func (x *CDOTAUserMsg_MiniTaunt) GetTauntingPlayerId() int32 {
	if x != nil && x.TauntingPlayerId != nil {
		return *x.TauntingPlayerId
	}
	return 0
}

type CDOTAUserMsg_SpeechBubble struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DestroyAll *bool `protobuf:"varint,1,opt,name=destroy_all,json=destroyAll" json:"destroy_all,omitempty"`
}

func (x *CDOTAUserMsg_SpeechBubble) Reset() {
	*x = CDOTAUserMsg_SpeechBubble{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[93]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_SpeechBubble) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_SpeechBubble) ProtoMessage() {}

func (x *CDOTAUserMsg_SpeechBubble) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[93]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_SpeechBubble.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_SpeechBubble) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{93}
}

func (x *CDOTAUserMsg_SpeechBubble) GetDestroyAll() bool {
	if x != nil && x.DestroyAll != nil {
		return *x.DestroyAll
	}
	return false
}

type CDOTAUserMsg_CustomHeaderMessage struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId *int32   `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	Duration *float32 `protobuf:"fixed32,2,opt,name=duration" json:"duration,omitempty"`
	Message  *string  `protobuf:"bytes,3,opt,name=message" json:"message,omitempty"`
	Value    *int32   `protobuf:"varint,4,opt,name=value" json:"value,omitempty"`
}

func (x *CDOTAUserMsg_CustomHeaderMessage) Reset() {
	*x = CDOTAUserMsg_CustomHeaderMessage{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[94]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_CustomHeaderMessage) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_CustomHeaderMessage) ProtoMessage() {}

func (x *CDOTAUserMsg_CustomHeaderMessage) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[94]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_CustomHeaderMessage.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_CustomHeaderMessage) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{94}
}

func (x *CDOTAUserMsg_CustomHeaderMessage) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_CustomHeaderMessage) GetDuration() float32 {
	if x != nil && x.Duration != nil {
		return *x.Duration
	}
	return 0
}

func (x *CDOTAUserMsg_CustomHeaderMessage) GetMessage() string {
	if x != nil && x.Message != nil {
		return *x.Message
	}
	return ""
}

func (x *CDOTAUserMsg_CustomHeaderMessage) GetValue() int32 {
	if x != nil && x.Value != nil {
		return *x.Value
	}
	return 0
}

type CMsgHeroAbilityStat struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	StatType   *EHeroStatType `protobuf:"varint,1,opt,name=stat_type,json=statType,enum=EHeroStatType,def=0" json:"stat_type,omitempty"`
	IntValue   *int32         `protobuf:"varint,2,opt,name=int_value,json=intValue" json:"int_value,omitempty"`
	FloatValue *float32       `protobuf:"fixed32,3,opt,name=float_value,json=floatValue" json:"float_value,omitempty"`
}

// Default values for CMsgHeroAbilityStat fields.
const (
	Default_CMsgHeroAbilityStat_StatType = EHeroStatType_k_EHeroStatType_None
)

func (x *CMsgHeroAbilityStat) Reset() {
	*x = CMsgHeroAbilityStat{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[95]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CMsgHeroAbilityStat) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CMsgHeroAbilityStat) ProtoMessage() {}

func (x *CMsgHeroAbilityStat) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[95]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CMsgHeroAbilityStat.ProtoReflect.Descriptor instead.
func (*CMsgHeroAbilityStat) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{95}
}

func (x *CMsgHeroAbilityStat) GetStatType() EHeroStatType {
	if x != nil && x.StatType != nil {
		return *x.StatType
	}
	return Default_CMsgHeroAbilityStat_StatType
}

func (x *CMsgHeroAbilityStat) GetIntValue() int32 {
	if x != nil && x.IntValue != nil {
		return *x.IntValue
	}
	return 0
}

func (x *CMsgHeroAbilityStat) GetFloatValue() float32 {
	if x != nil && x.FloatValue != nil {
		return *x.FloatValue
	}
	return 0
}

type CMsgCombatAnalyzerPlayerStat struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AccountId        *uint32                `protobuf:"varint,1,opt,name=account_id,json=accountId" json:"account_id,omitempty"`
	HeroAbilityStats []*CMsgHeroAbilityStat `protobuf:"bytes,2,rep,name=hero_ability_stats,json=heroAbilityStats" json:"hero_ability_stats,omitempty"`
}

func (x *CMsgCombatAnalyzerPlayerStat) Reset() {
	*x = CMsgCombatAnalyzerPlayerStat{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[96]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CMsgCombatAnalyzerPlayerStat) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CMsgCombatAnalyzerPlayerStat) ProtoMessage() {}

func (x *CMsgCombatAnalyzerPlayerStat) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[96]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CMsgCombatAnalyzerPlayerStat.ProtoReflect.Descriptor instead.
func (*CMsgCombatAnalyzerPlayerStat) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{96}
}

func (x *CMsgCombatAnalyzerPlayerStat) GetAccountId() uint32 {
	if x != nil && x.AccountId != nil {
		return *x.AccountId
	}
	return 0
}

func (x *CMsgCombatAnalyzerPlayerStat) GetHeroAbilityStats() []*CMsgHeroAbilityStat {
	if x != nil {
		return x.HeroAbilityStats
	}
	return nil
}

type CMsgCombatAnalyzerStats struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MatchId     *uint64                         `protobuf:"varint,1,opt,name=match_id,json=matchId" json:"match_id,omitempty"`
	PlayerStats []*CMsgCombatAnalyzerPlayerStat `protobuf:"bytes,2,rep,name=player_stats,json=playerStats" json:"player_stats,omitempty"`
}

func (x *CMsgCombatAnalyzerStats) Reset() {
	*x = CMsgCombatAnalyzerStats{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[97]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CMsgCombatAnalyzerStats) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CMsgCombatAnalyzerStats) ProtoMessage() {}

func (x *CMsgCombatAnalyzerStats) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[97]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CMsgCombatAnalyzerStats.ProtoReflect.Descriptor instead.
func (*CMsgCombatAnalyzerStats) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{97}
}

func (x *CMsgCombatAnalyzerStats) GetMatchId() uint64 {
	if x != nil && x.MatchId != nil {
		return *x.MatchId
	}
	return 0
}

func (x *CMsgCombatAnalyzerStats) GetPlayerStats() []*CMsgCombatAnalyzerPlayerStat {
	if x != nil {
		return x.PlayerStats
	}
	return nil
}

type CDOTAUserMsg_BeastChat struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Team    *uint32 `protobuf:"varint,1,opt,name=team" json:"team,omitempty"`
	Format  *string `protobuf:"bytes,2,opt,name=format" json:"format,omitempty"`
	Message *string `protobuf:"bytes,3,opt,name=message" json:"message,omitempty"`
	Target  *string `protobuf:"bytes,4,opt,name=target" json:"target,omitempty"`
}

func (x *CDOTAUserMsg_BeastChat) Reset() {
	*x = CDOTAUserMsg_BeastChat{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[98]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_BeastChat) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_BeastChat) ProtoMessage() {}

func (x *CDOTAUserMsg_BeastChat) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[98]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_BeastChat.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_BeastChat) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{98}
}

func (x *CDOTAUserMsg_BeastChat) GetTeam() uint32 {
	if x != nil && x.Team != nil {
		return *x.Team
	}
	return 0
}

func (x *CDOTAUserMsg_BeastChat) GetFormat() string {
	if x != nil && x.Format != nil {
		return *x.Format
	}
	return ""
}

func (x *CDOTAUserMsg_BeastChat) GetMessage() string {
	if x != nil && x.Message != nil {
		return *x.Message
	}
	return ""
}

func (x *CDOTAUserMsg_BeastChat) GetTarget() string {
	if x != nil && x.Target != nil {
		return *x.Target
	}
	return ""
}

type CDOTAUserMsg_CustomHudElement_Create struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ElementId      *string `protobuf:"bytes,1,opt,name=element_id,json=elementId" json:"element_id,omitempty"`
	LayoutFilename *string `protobuf:"bytes,2,opt,name=layout_filename,json=layoutFilename" json:"layout_filename,omitempty"`
	Data           []byte  `protobuf:"bytes,3,opt,name=data" json:"data,omitempty"`
}

func (x *CDOTAUserMsg_CustomHudElement_Create) Reset() {
	*x = CDOTAUserMsg_CustomHudElement_Create{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[99]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_CustomHudElement_Create) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_CustomHudElement_Create) ProtoMessage() {}

func (x *CDOTAUserMsg_CustomHudElement_Create) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[99]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_CustomHudElement_Create.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_CustomHudElement_Create) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{99}
}

func (x *CDOTAUserMsg_CustomHudElement_Create) GetElementId() string {
	if x != nil && x.ElementId != nil {
		return *x.ElementId
	}
	return ""
}

func (x *CDOTAUserMsg_CustomHudElement_Create) GetLayoutFilename() string {
	if x != nil && x.LayoutFilename != nil {
		return *x.LayoutFilename
	}
	return ""
}

func (x *CDOTAUserMsg_CustomHudElement_Create) GetData() []byte {
	if x != nil {
		return x.Data
	}
	return nil
}

type CDOTAUserMsg_CustomHudElement_Modify struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ElementId     *string `protobuf:"bytes,1,opt,name=element_id,json=elementId" json:"element_id,omitempty"`
	ModifyVisible *bool   `protobuf:"varint,2,opt,name=modify_visible,json=modifyVisible" json:"modify_visible,omitempty"`
	Data          []byte  `protobuf:"bytes,3,opt,name=data" json:"data,omitempty"`
}

func (x *CDOTAUserMsg_CustomHudElement_Modify) Reset() {
	*x = CDOTAUserMsg_CustomHudElement_Modify{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[100]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_CustomHudElement_Modify) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_CustomHudElement_Modify) ProtoMessage() {}

func (x *CDOTAUserMsg_CustomHudElement_Modify) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[100]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_CustomHudElement_Modify.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_CustomHudElement_Modify) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{100}
}

func (x *CDOTAUserMsg_CustomHudElement_Modify) GetElementId() string {
	if x != nil && x.ElementId != nil {
		return *x.ElementId
	}
	return ""
}

func (x *CDOTAUserMsg_CustomHudElement_Modify) GetModifyVisible() bool {
	if x != nil && x.ModifyVisible != nil {
		return *x.ModifyVisible
	}
	return false
}

func (x *CDOTAUserMsg_CustomHudElement_Modify) GetData() []byte {
	if x != nil {
		return x.Data
	}
	return nil
}

type CDOTAUserMsg_CustomHudElement_Destroy struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ElementId *string `protobuf:"bytes,1,opt,name=element_id,json=elementId" json:"element_id,omitempty"`
}

func (x *CDOTAUserMsg_CustomHudElement_Destroy) Reset() {
	*x = CDOTAUserMsg_CustomHudElement_Destroy{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[101]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_CustomHudElement_Destroy) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_CustomHudElement_Destroy) ProtoMessage() {}

func (x *CDOTAUserMsg_CustomHudElement_Destroy) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[101]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_CustomHudElement_Destroy.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_CustomHudElement_Destroy) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{101}
}

func (x *CDOTAUserMsg_CustomHudElement_Destroy) GetElementId() string {
	if x != nil && x.ElementId != nil {
		return *x.ElementId
	}
	return ""
}

type CDOTAUserMsg_CompendiumStatePlayer struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId *int32  `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	Level    *uint32 `protobuf:"varint,2,opt,name=level" json:"level,omitempty"`
}

func (x *CDOTAUserMsg_CompendiumStatePlayer) Reset() {
	*x = CDOTAUserMsg_CompendiumStatePlayer{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[102]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_CompendiumStatePlayer) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_CompendiumStatePlayer) ProtoMessage() {}

func (x *CDOTAUserMsg_CompendiumStatePlayer) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[102]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_CompendiumStatePlayer.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_CompendiumStatePlayer) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{102}
}

func (x *CDOTAUserMsg_CompendiumStatePlayer) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_CompendiumStatePlayer) GetLevel() uint32 {
	if x != nil && x.Level != nil {
		return *x.Level
	}
	return 0
}

type CDOTAUserMsg_CompendiumState struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CompendiumPlayers []*CDOTAUserMsg_CompendiumStatePlayer `protobuf:"bytes,1,rep,name=compendium_players,json=compendiumPlayers" json:"compendium_players,omitempty"`
}

func (x *CDOTAUserMsg_CompendiumState) Reset() {
	*x = CDOTAUserMsg_CompendiumState{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[103]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_CompendiumState) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_CompendiumState) ProtoMessage() {}

func (x *CDOTAUserMsg_CompendiumState) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[103]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_CompendiumState.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_CompendiumState) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{103}
}

func (x *CDOTAUserMsg_CompendiumState) GetCompendiumPlayers() []*CDOTAUserMsg_CompendiumStatePlayer {
	if x != nil {
		return x.CompendiumPlayers
	}
	return nil
}

type CDOTAUserMsg_ProjectionAbility struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AbilityId       *uint32     `protobuf:"varint,1,opt,name=ability_id,json=abilityId" json:"ability_id,omitempty"`
	CasterEntIndex  *int32      `protobuf:"varint,2,opt,name=caster_ent_index,json=casterEntIndex" json:"caster_ent_index,omitempty"`
	CasterTeam      *int32      `protobuf:"varint,3,opt,name=caster_team,json=casterTeam" json:"caster_team,omitempty"`
	ChannelEnd      *bool       `protobuf:"varint,4,opt,name=channel_end,json=channelEnd" json:"channel_end,omitempty"`
	Origin          *CMsgVector `protobuf:"bytes,5,opt,name=origin" json:"origin,omitempty"`
	TrackCasterOnly *bool       `protobuf:"varint,6,opt,name=track_caster_only,json=trackCasterOnly" json:"track_caster_only,omitempty"`
	EndTime         *float32    `protobuf:"fixed32,7,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
	VictimEntIndex  *int32      `protobuf:"varint,8,opt,name=victim_ent_index,json=victimEntIndex" json:"victim_ent_index,omitempty"`
}

func (x *CDOTAUserMsg_ProjectionAbility) Reset() {
	*x = CDOTAUserMsg_ProjectionAbility{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[104]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_ProjectionAbility) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_ProjectionAbility) ProtoMessage() {}

func (x *CDOTAUserMsg_ProjectionAbility) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[104]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_ProjectionAbility.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_ProjectionAbility) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{104}
}

func (x *CDOTAUserMsg_ProjectionAbility) GetAbilityId() uint32 {
	if x != nil && x.AbilityId != nil {
		return *x.AbilityId
	}
	return 0
}

func (x *CDOTAUserMsg_ProjectionAbility) GetCasterEntIndex() int32 {
	if x != nil && x.CasterEntIndex != nil {
		return *x.CasterEntIndex
	}
	return 0
}

func (x *CDOTAUserMsg_ProjectionAbility) GetCasterTeam() int32 {
	if x != nil && x.CasterTeam != nil {
		return *x.CasterTeam
	}
	return 0
}

func (x *CDOTAUserMsg_ProjectionAbility) GetChannelEnd() bool {
	if x != nil && x.ChannelEnd != nil {
		return *x.ChannelEnd
	}
	return false
}

func (x *CDOTAUserMsg_ProjectionAbility) GetOrigin() *CMsgVector {
	if x != nil {
		return x.Origin
	}
	return nil
}

func (x *CDOTAUserMsg_ProjectionAbility) GetTrackCasterOnly() bool {
	if x != nil && x.TrackCasterOnly != nil {
		return *x.TrackCasterOnly
	}
	return false
}

func (x *CDOTAUserMsg_ProjectionAbility) GetEndTime() float32 {
	if x != nil && x.EndTime != nil {
		return *x.EndTime
	}
	return 0
}

func (x *CDOTAUserMsg_ProjectionAbility) GetVictimEntIndex() int32 {
	if x != nil && x.VictimEntIndex != nil {
		return *x.VictimEntIndex
	}
	return 0
}

type CDOTAUserMsg_ProjectionEvent struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	EventId *EProjectionEvent `protobuf:"varint,1,opt,name=event_id,json=eventId,enum=EProjectionEvent,def=0" json:"event_id,omitempty"`
	Team    *uint32           `protobuf:"varint,2,opt,name=team" json:"team,omitempty"`
}

// Default values for CDOTAUserMsg_ProjectionEvent fields.
const (
	Default_CDOTAUserMsg_ProjectionEvent_EventId = EProjectionEvent_ePE_FirstBlood
)

func (x *CDOTAUserMsg_ProjectionEvent) Reset() {
	*x = CDOTAUserMsg_ProjectionEvent{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[105]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_ProjectionEvent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_ProjectionEvent) ProtoMessage() {}

func (x *CDOTAUserMsg_ProjectionEvent) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[105]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_ProjectionEvent.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_ProjectionEvent) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{105}
}

func (x *CDOTAUserMsg_ProjectionEvent) GetEventId() EProjectionEvent {
	if x != nil && x.EventId != nil {
		return *x.EventId
	}
	return Default_CDOTAUserMsg_ProjectionEvent_EventId
}

func (x *CDOTAUserMsg_ProjectionEvent) GetTeam() uint32 {
	if x != nil && x.Team != nil {
		return *x.Team
	}
	return 0
}

type CDOTAUserMsg_XPAlert struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId       *int32 `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	TargetEntindex *int32 `protobuf:"varint,2,opt,name=target_entindex,json=targetEntindex" json:"target_entindex,omitempty"`
}

func (x *CDOTAUserMsg_XPAlert) Reset() {
	*x = CDOTAUserMsg_XPAlert{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[106]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_XPAlert) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_XPAlert) ProtoMessage() {}

func (x *CDOTAUserMsg_XPAlert) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[106]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_XPAlert.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_XPAlert) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{106}
}

func (x *CDOTAUserMsg_XPAlert) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_XPAlert) GetTargetEntindex() int32 {
	if x != nil && x.TargetEntindex != nil {
		return *x.TargetEntindex
	}
	return 0
}

type CDOTAUserMsg_TalentTreeAlert struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId       *int32 `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	TargetEntindex *int32 `protobuf:"varint,2,opt,name=target_entindex,json=targetEntindex" json:"target_entindex,omitempty"`
	AbilityId      *int32 `protobuf:"varint,3,opt,name=ability_id,json=abilityId" json:"ability_id,omitempty"`
	Slot           *int32 `protobuf:"varint,4,opt,name=slot" json:"slot,omitempty"`
	Learned        *bool  `protobuf:"varint,5,opt,name=learned" json:"learned,omitempty"`
}

func (x *CDOTAUserMsg_TalentTreeAlert) Reset() {
	*x = CDOTAUserMsg_TalentTreeAlert{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[107]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_TalentTreeAlert) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_TalentTreeAlert) ProtoMessage() {}

func (x *CDOTAUserMsg_TalentTreeAlert) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[107]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_TalentTreeAlert.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_TalentTreeAlert) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{107}
}

func (x *CDOTAUserMsg_TalentTreeAlert) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_TalentTreeAlert) GetTargetEntindex() int32 {
	if x != nil && x.TargetEntindex != nil {
		return *x.TargetEntindex
	}
	return 0
}

func (x *CDOTAUserMsg_TalentTreeAlert) GetAbilityId() int32 {
	if x != nil && x.AbilityId != nil {
		return *x.AbilityId
	}
	return 0
}

func (x *CDOTAUserMsg_TalentTreeAlert) GetSlot() int32 {
	if x != nil && x.Slot != nil {
		return *x.Slot
	}
	return 0
}

func (x *CDOTAUserMsg_TalentTreeAlert) GetLearned() bool {
	if x != nil && x.Learned != nil {
		return *x.Learned
	}
	return false
}

type CDOTAUserMsg_UpdateQuestProgress struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *CDOTAUserMsg_UpdateQuestProgress) Reset() {
	*x = CDOTAUserMsg_UpdateQuestProgress{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[108]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_UpdateQuestProgress) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_UpdateQuestProgress) ProtoMessage() {}

func (x *CDOTAUserMsg_UpdateQuestProgress) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[108]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_UpdateQuestProgress.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_UpdateQuestProgress) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{108}
}

type CDOTAUserMsg_QuestStatus struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId      *int32   `protobuf:"varint,1,req,name=player_id,json=playerId" json:"player_id,omitempty"`
	QuestId       *uint32  `protobuf:"varint,2,opt,name=quest_id,json=questId" json:"quest_id,omitempty"`
	ChallengeId   *uint32  `protobuf:"varint,3,opt,name=challenge_id,json=challengeId" json:"challenge_id,omitempty"`
	Progress      *uint32  `protobuf:"varint,4,opt,name=progress" json:"progress,omitempty"`
	Goal          *uint32  `protobuf:"varint,5,opt,name=goal" json:"goal,omitempty"`
	Query         *uint32  `protobuf:"varint,6,opt,name=query" json:"query,omitempty"`
	FailGametime  *float32 `protobuf:"fixed32,7,opt,name=fail_gametime,json=failGametime" json:"fail_gametime,omitempty"`
	ItemAbilityId *uint32  `protobuf:"varint,8,opt,name=item_ability_id,json=itemAbilityId" json:"item_ability_id,omitempty"`
}

func (x *CDOTAUserMsg_QuestStatus) Reset() {
	*x = CDOTAUserMsg_QuestStatus{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[109]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_QuestStatus) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_QuestStatus) ProtoMessage() {}

func (x *CDOTAUserMsg_QuestStatus) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[109]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_QuestStatus.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_QuestStatus) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{109}
}

func (x *CDOTAUserMsg_QuestStatus) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_QuestStatus) GetQuestId() uint32 {
	if x != nil && x.QuestId != nil {
		return *x.QuestId
	}
	return 0
}

func (x *CDOTAUserMsg_QuestStatus) GetChallengeId() uint32 {
	if x != nil && x.ChallengeId != nil {
		return *x.ChallengeId
	}
	return 0
}

func (x *CDOTAUserMsg_QuestStatus) GetProgress() uint32 {
	if x != nil && x.Progress != nil {
		return *x.Progress
	}
	return 0
}

func (x *CDOTAUserMsg_QuestStatus) GetGoal() uint32 {
	if x != nil && x.Goal != nil {
		return *x.Goal
	}
	return 0
}

func (x *CDOTAUserMsg_QuestStatus) GetQuery() uint32 {
	if x != nil && x.Query != nil {
		return *x.Query
	}
	return 0
}

func (x *CDOTAUserMsg_QuestStatus) GetFailGametime() float32 {
	if x != nil && x.FailGametime != nil {
		return *x.FailGametime
	}
	return 0
}

func (x *CDOTAUserMsg_QuestStatus) GetItemAbilityId() uint32 {
	if x != nil && x.ItemAbilityId != nil {
		return *x.ItemAbilityId
	}
	return 0
}

type CDOTAUserMsg_SuggestHeroPick struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId *int32  `protobuf:"varint,1,req,name=player_id,json=playerId" json:"player_id,omitempty"`
	HeroId   *uint32 `protobuf:"varint,2,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"`
	Ban      *bool   `protobuf:"varint,3,opt,name=ban" json:"ban,omitempty"`
}

func (x *CDOTAUserMsg_SuggestHeroPick) Reset() {
	*x = CDOTAUserMsg_SuggestHeroPick{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[110]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_SuggestHeroPick) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_SuggestHeroPick) ProtoMessage() {}

func (x *CDOTAUserMsg_SuggestHeroPick) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[110]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_SuggestHeroPick.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_SuggestHeroPick) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{110}
}

func (x *CDOTAUserMsg_SuggestHeroPick) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_SuggestHeroPick) GetHeroId() uint32 {
	if x != nil && x.HeroId != nil {
		return *x.HeroId
	}
	return 0
}

func (x *CDOTAUserMsg_SuggestHeroPick) GetBan() bool {
	if x != nil && x.Ban != nil {
		return *x.Ban
	}
	return false
}

type CDOTAUserMsg_SuggestHeroRole struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId *int32  `protobuf:"varint,1,req,name=player_id,json=playerId" json:"player_id,omitempty"`
	HeroRole *string `protobuf:"bytes,2,opt,name=hero_role,json=heroRole" json:"hero_role,omitempty"`
}

func (x *CDOTAUserMsg_SuggestHeroRole) Reset() {
	*x = CDOTAUserMsg_SuggestHeroRole{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[111]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_SuggestHeroRole) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_SuggestHeroRole) ProtoMessage() {}

func (x *CDOTAUserMsg_SuggestHeroRole) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[111]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_SuggestHeroRole.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_SuggestHeroRole) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{111}
}

func (x *CDOTAUserMsg_SuggestHeroRole) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_SuggestHeroRole) GetHeroRole() string {
	if x != nil && x.HeroRole != nil {
		return *x.HeroRole
	}
	return ""
}

type CDOTAUserMsg_KillcamDamageTaken struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId      *int32  `protobuf:"varint,1,req,name=player_id,json=playerId" json:"player_id,omitempty"`
	DamageTaken   *uint32 `protobuf:"varint,2,opt,name=damage_taken,json=damageTaken" json:"damage_taken,omitempty"`
	ItemType      *uint32 `protobuf:"varint,3,opt,name=item_type,json=itemType" json:"item_type,omitempty"`
	ItemAbilityId *uint32 `protobuf:"varint,4,opt,name=item_ability_id,json=itemAbilityId" json:"item_ability_id,omitempty"`
	HeroName      *string `protobuf:"bytes,5,opt,name=hero_name,json=heroName" json:"hero_name,omitempty"`
	DamageColor   *string `protobuf:"bytes,6,opt,name=damage_color,json=damageColor" json:"damage_color,omitempty"`
}

func (x *CDOTAUserMsg_KillcamDamageTaken) Reset() {
	*x = CDOTAUserMsg_KillcamDamageTaken{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[112]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_KillcamDamageTaken) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_KillcamDamageTaken) ProtoMessage() {}

func (x *CDOTAUserMsg_KillcamDamageTaken) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[112]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_KillcamDamageTaken.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_KillcamDamageTaken) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{112}
}

func (x *CDOTAUserMsg_KillcamDamageTaken) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_KillcamDamageTaken) GetDamageTaken() uint32 {
	if x != nil && x.DamageTaken != nil {
		return *x.DamageTaken
	}
	return 0
}

func (x *CDOTAUserMsg_KillcamDamageTaken) GetItemType() uint32 {
	if x != nil && x.ItemType != nil {
		return *x.ItemType
	}
	return 0
}

func (x *CDOTAUserMsg_KillcamDamageTaken) GetItemAbilityId() uint32 {
	if x != nil && x.ItemAbilityId != nil {
		return *x.ItemAbilityId
	}
	return 0
}

func (x *CDOTAUserMsg_KillcamDamageTaken) GetHeroName() string {
	if x != nil && x.HeroName != nil {
		return *x.HeroName
	}
	return ""
}

func (x *CDOTAUserMsg_KillcamDamageTaken) GetDamageColor() string {
	if x != nil && x.DamageColor != nil {
		return *x.DamageColor
	}
	return ""
}

type CDOTAUserMsg_SelectPenaltyGold struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId *int32 `protobuf:"varint,1,req,name=player_id,json=playerId" json:"player_id,omitempty"`
	Cost     *int32 `protobuf:"zigzag32,2,opt,name=cost" json:"cost,omitempty"`
}

func (x *CDOTAUserMsg_SelectPenaltyGold) Reset() {
	*x = CDOTAUserMsg_SelectPenaltyGold{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[113]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_SelectPenaltyGold) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_SelectPenaltyGold) ProtoMessage() {}

func (x *CDOTAUserMsg_SelectPenaltyGold) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[113]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_SelectPenaltyGold.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_SelectPenaltyGold) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{113}
}

func (x *CDOTAUserMsg_SelectPenaltyGold) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_SelectPenaltyGold) GetCost() int32 {
	if x != nil && x.Cost != nil {
		return *x.Cost
	}
	return 0
}

type CDOTAUserMsg_RollDiceResult struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId    *int32  `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	ChannelType *uint32 `protobuf:"varint,2,opt,name=channel_type,json=channelType" json:"channel_type,omitempty"`
	RollMin     *uint32 `protobuf:"varint,3,opt,name=roll_min,json=rollMin" json:"roll_min,omitempty"`
	RollMax     *uint32 `protobuf:"varint,4,opt,name=roll_max,json=rollMax" json:"roll_max,omitempty"`
	Result      *uint32 `protobuf:"varint,5,opt,name=result" json:"result,omitempty"`
}

func (x *CDOTAUserMsg_RollDiceResult) Reset() {
	*x = CDOTAUserMsg_RollDiceResult{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[114]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_RollDiceResult) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_RollDiceResult) ProtoMessage() {}

func (x *CDOTAUserMsg_RollDiceResult) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[114]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_RollDiceResult.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_RollDiceResult) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{114}
}

func (x *CDOTAUserMsg_RollDiceResult) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_RollDiceResult) GetChannelType() uint32 {
	if x != nil && x.ChannelType != nil {
		return *x.ChannelType
	}
	return 0
}

func (x *CDOTAUserMsg_RollDiceResult) GetRollMin() uint32 {
	if x != nil && x.RollMin != nil {
		return *x.RollMin
	}
	return 0
}

func (x *CDOTAUserMsg_RollDiceResult) GetRollMax() uint32 {
	if x != nil && x.RollMax != nil {
		return *x.RollMax
	}
	return 0
}

func (x *CDOTAUserMsg_RollDiceResult) GetResult() uint32 {
	if x != nil && x.Result != nil {
		return *x.Result
	}
	return 0
}

type CDOTAUserMsg_FlipCoinResult struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId    *int32  `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	ChannelType *uint32 `protobuf:"varint,2,opt,name=channel_type,json=channelType" json:"channel_type,omitempty"`
	Result      *bool   `protobuf:"varint,3,opt,name=result" json:"result,omitempty"`
}

func (x *CDOTAUserMsg_FlipCoinResult) Reset() {
	*x = CDOTAUserMsg_FlipCoinResult{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[115]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_FlipCoinResult) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_FlipCoinResult) ProtoMessage() {}

func (x *CDOTAUserMsg_FlipCoinResult) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[115]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_FlipCoinResult.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_FlipCoinResult) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{115}
}

func (x *CDOTAUserMsg_FlipCoinResult) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_FlipCoinResult) GetChannelType() uint32 {
	if x != nil && x.ChannelType != nil {
		return *x.ChannelType
	}
	return 0
}

func (x *CDOTAUserMsg_FlipCoinResult) GetResult() bool {
	if x != nil && x.Result != nil {
		return *x.Result
	}
	return false
}

type CDOTAUserMessage_RequestItemSuggestions struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId *int32 `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
}

func (x *CDOTAUserMessage_RequestItemSuggestions) Reset() {
	*x = CDOTAUserMessage_RequestItemSuggestions{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[116]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMessage_RequestItemSuggestions) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMessage_RequestItemSuggestions) ProtoMessage() {}

func (x *CDOTAUserMessage_RequestItemSuggestions) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[116]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMessage_RequestItemSuggestions.ProtoReflect.Descriptor instead.
func (*CDOTAUserMessage_RequestItemSuggestions) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{116}
}

func (x *CDOTAUserMessage_RequestItemSuggestions) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

type CDOTAUserMessage_TeamCaptainChanged struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Team            *uint32 `protobuf:"varint,1,opt,name=team" json:"team,omitempty"`
	CaptainPlayerId *int32  `protobuf:"varint,2,opt,name=captain_player_id,json=captainPlayerId" json:"captain_player_id,omitempty"`
}

func (x *CDOTAUserMessage_TeamCaptainChanged) Reset() {
	*x = CDOTAUserMessage_TeamCaptainChanged{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[117]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMessage_TeamCaptainChanged) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMessage_TeamCaptainChanged) ProtoMessage() {}

func (x *CDOTAUserMessage_TeamCaptainChanged) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[117]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMessage_TeamCaptainChanged.ProtoReflect.Descriptor instead.
func (*CDOTAUserMessage_TeamCaptainChanged) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{117}
}

func (x *CDOTAUserMessage_TeamCaptainChanged) GetTeam() uint32 {
	if x != nil && x.Team != nil {
		return *x.Team
	}
	return 0
}

func (x *CDOTAUserMessage_TeamCaptainChanged) GetCaptainPlayerId() int32 {
	if x != nil && x.CaptainPlayerId != nil {
		return *x.CaptainPlayerId
	}
	return 0
}

type CDOTAUserMsg_ChatWheelCooldown struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MessageId         *uint32  `protobuf:"varint,1,opt,name=message_id,json=messageId" json:"message_id,omitempty"`
	CooldownRemaining *float32 `protobuf:"fixed32,2,opt,name=cooldown_remaining,json=cooldownRemaining" json:"cooldown_remaining,omitempty"`
}

func (x *CDOTAUserMsg_ChatWheelCooldown) Reset() {
	*x = CDOTAUserMsg_ChatWheelCooldown{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[118]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_ChatWheelCooldown) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_ChatWheelCooldown) ProtoMessage() {}

func (x *CDOTAUserMsg_ChatWheelCooldown) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[118]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_ChatWheelCooldown.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_ChatWheelCooldown) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{118}
}

func (x *CDOTAUserMsg_ChatWheelCooldown) GetMessageId() uint32 {
	if x != nil && x.MessageId != nil {
		return *x.MessageId
	}
	return 0
}

func (x *CDOTAUserMsg_ChatWheelCooldown) GetCooldownRemaining() float32 {
	if x != nil && x.CooldownRemaining != nil {
		return *x.CooldownRemaining
	}
	return 0
}

type CDOTAUserMsg_HeroRelicProgress struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	HeroRelicType *uint32  `protobuf:"varint,1,opt,name=hero_relic_type,json=heroRelicType" json:"hero_relic_type,omitempty"`
	Value         *uint32  `protobuf:"varint,2,opt,name=value" json:"value,omitempty"`
	Ehandle       *uint32  `protobuf:"varint,3,opt,name=ehandle" json:"ehandle,omitempty"`
	EventId       *uint32  `protobuf:"varint,4,opt,name=event_id,json=eventId" json:"event_id,omitempty"`
	ValueDisplay  *float32 `protobuf:"fixed32,5,opt,name=value_display,json=valueDisplay" json:"value_display,omitempty"`
}

func (x *CDOTAUserMsg_HeroRelicProgress) Reset() {
	*x = CDOTAUserMsg_HeroRelicProgress{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[119]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_HeroRelicProgress) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_HeroRelicProgress) ProtoMessage() {}

func (x *CDOTAUserMsg_HeroRelicProgress) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[119]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_HeroRelicProgress.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_HeroRelicProgress) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{119}
}

func (x *CDOTAUserMsg_HeroRelicProgress) GetHeroRelicType() uint32 {
	if x != nil && x.HeroRelicType != nil {
		return *x.HeroRelicType
	}
	return 0
}

func (x *CDOTAUserMsg_HeroRelicProgress) GetValue() uint32 {
	if x != nil && x.Value != nil {
		return *x.Value
	}
	return 0
}

func (x *CDOTAUserMsg_HeroRelicProgress) GetEhandle() uint32 {
	if x != nil && x.Ehandle != nil {
		return *x.Ehandle
	}
	return 0
}

func (x *CDOTAUserMsg_HeroRelicProgress) GetEventId() uint32 {
	if x != nil && x.EventId != nil {
		return *x.EventId
	}
	return 0
}

func (x *CDOTAUserMsg_HeroRelicProgress) GetValueDisplay() float32 {
	if x != nil && x.ValueDisplay != nil {
		return *x.ValueDisplay
	}
	return 0
}

type CDOTAUserMsg_AbilityDraftRequestAbility struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId           *int32  `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	RequestedAbilityId *uint32 `protobuf:"varint,2,opt,name=requested_ability_id,json=requestedAbilityId" json:"requested_ability_id,omitempty"`
	CtrlIsDown         *bool   `protobuf:"varint,3,opt,name=ctrl_is_down,json=ctrlIsDown" json:"ctrl_is_down,omitempty"`
}

func (x *CDOTAUserMsg_AbilityDraftRequestAbility) Reset() {
	*x = CDOTAUserMsg_AbilityDraftRequestAbility{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[120]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_AbilityDraftRequestAbility) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_AbilityDraftRequestAbility) ProtoMessage() {}

func (x *CDOTAUserMsg_AbilityDraftRequestAbility) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[120]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_AbilityDraftRequestAbility.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_AbilityDraftRequestAbility) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{120}
}

func (x *CDOTAUserMsg_AbilityDraftRequestAbility) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_AbilityDraftRequestAbility) GetRequestedAbilityId() uint32 {
	if x != nil && x.RequestedAbilityId != nil {
		return *x.RequestedAbilityId
	}
	return 0
}

func (x *CDOTAUserMsg_AbilityDraftRequestAbility) GetCtrlIsDown() bool {
	if x != nil && x.CtrlIsDown != nil {
		return *x.CtrlIsDown
	}
	return false
}

type CDOTAUserMsg_DamageReport struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId     *int32  `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	TargetHeroId *uint32 `protobuf:"varint,2,opt,name=target_hero_id,json=targetHeroId" json:"target_hero_id,omitempty"`
	SourceHeroId *uint32 `protobuf:"varint,3,opt,name=source_hero_id,json=sourceHeroId" json:"source_hero_id,omitempty"`
	DamageAmount *int32  `protobuf:"varint,4,opt,name=damage_amount,json=damageAmount" json:"damage_amount,omitempty"`
	Broadcast    *bool   `protobuf:"varint,5,opt,name=broadcast" json:"broadcast,omitempty"`
}

func (x *CDOTAUserMsg_DamageReport) Reset() {
	*x = CDOTAUserMsg_DamageReport{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[121]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_DamageReport) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_DamageReport) ProtoMessage() {}

func (x *CDOTAUserMsg_DamageReport) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[121]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_DamageReport.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_DamageReport) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{121}
}

func (x *CDOTAUserMsg_DamageReport) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_DamageReport) GetTargetHeroId() uint32 {
	if x != nil && x.TargetHeroId != nil {
		return *x.TargetHeroId
	}
	return 0
}

func (x *CDOTAUserMsg_DamageReport) GetSourceHeroId() uint32 {
	if x != nil && x.SourceHeroId != nil {
		return *x.SourceHeroId
	}
	return 0
}

func (x *CDOTAUserMsg_DamageReport) GetDamageAmount() int32 {
	if x != nil && x.DamageAmount != nil {
		return *x.DamageAmount
	}
	return 0
}

func (x *CDOTAUserMsg_DamageReport) GetBroadcast() bool {
	if x != nil && x.Broadcast != nil {
		return *x.Broadcast
	}
	return false
}

type CDOTAUserMsg_SalutePlayer struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SourcePlayerId *int32  `protobuf:"varint,1,opt,name=source_player_id,json=sourcePlayerId" json:"source_player_id,omitempty"`
	TargetPlayerId *int32  `protobuf:"varint,2,opt,name=target_player_id,json=targetPlayerId" json:"target_player_id,omitempty"`
	TipAmount      *uint32 `protobuf:"varint,3,opt,name=tip_amount,json=tipAmount" json:"tip_amount,omitempty"`
	EventId        *uint32 `protobuf:"varint,4,opt,name=event_id,json=eventId" json:"event_id,omitempty"`
}

func (x *CDOTAUserMsg_SalutePlayer) Reset() {
	*x = CDOTAUserMsg_SalutePlayer{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[122]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_SalutePlayer) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_SalutePlayer) ProtoMessage() {}

func (x *CDOTAUserMsg_SalutePlayer) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[122]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_SalutePlayer.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_SalutePlayer) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{122}
}

func (x *CDOTAUserMsg_SalutePlayer) GetSourcePlayerId() int32 {
	if x != nil && x.SourcePlayerId != nil {
		return *x.SourcePlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_SalutePlayer) GetTargetPlayerId() int32 {
	if x != nil && x.TargetPlayerId != nil {
		return *x.TargetPlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_SalutePlayer) GetTipAmount() uint32 {
	if x != nil && x.TipAmount != nil {
		return *x.TipAmount
	}
	return 0
}

func (x *CDOTAUserMsg_SalutePlayer) GetEventId() uint32 {
	if x != nil && x.EventId != nil {
		return *x.EventId
	}
	return 0
}

type CDOTAUserMsg_TipAlert struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId *int32  `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	TipText  *string `protobuf:"bytes,2,opt,name=tip_text,json=tipText" json:"tip_text,omitempty"`
}

func (x *CDOTAUserMsg_TipAlert) Reset() {
	*x = CDOTAUserMsg_TipAlert{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[123]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_TipAlert) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_TipAlert) ProtoMessage() {}

func (x *CDOTAUserMsg_TipAlert) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[123]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_TipAlert.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_TipAlert) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{123}
}

func (x *CDOTAUserMsg_TipAlert) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_TipAlert) GetTipText() string {
	if x != nil && x.TipText != nil {
		return *x.TipText
	}
	return ""
}

type CDOTAUserMsg_ReplaceQueryUnit struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId       *int32 `protobuf:"varint,1,req,name=player_id,json=playerId" json:"player_id,omitempty"`
	SourceEntindex *int32 `protobuf:"varint,2,opt,name=source_entindex,json=sourceEntindex" json:"source_entindex,omitempty"`
	TargetEntindex *int32 `protobuf:"varint,3,opt,name=target_entindex,json=targetEntindex" json:"target_entindex,omitempty"`
}

func (x *CDOTAUserMsg_ReplaceQueryUnit) Reset() {
	*x = CDOTAUserMsg_ReplaceQueryUnit{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[124]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_ReplaceQueryUnit) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_ReplaceQueryUnit) ProtoMessage() {}

func (x *CDOTAUserMsg_ReplaceQueryUnit) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[124]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_ReplaceQueryUnit.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_ReplaceQueryUnit) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{124}
}

func (x *CDOTAUserMsg_ReplaceQueryUnit) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_ReplaceQueryUnit) GetSourceEntindex() int32 {
	if x != nil && x.SourceEntindex != nil {
		return *x.SourceEntindex
	}
	return 0
}

func (x *CDOTAUserMsg_ReplaceQueryUnit) GetTargetEntindex() int32 {
	if x != nil && x.TargetEntindex != nil {
		return *x.TargetEntindex
	}
	return 0
}

type CDOTAUserMsg_ESArcanaCombo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Ehandle     *uint32 `protobuf:"varint,1,opt,name=ehandle" json:"ehandle,omitempty"`
	ComboCount  *uint32 `protobuf:"varint,2,opt,name=combo_count,json=comboCount" json:"combo_count,omitempty"`
	ArcanaLevel *uint32 `protobuf:"varint,3,opt,name=arcana_level,json=arcanaLevel" json:"arcana_level,omitempty"`
}

func (x *CDOTAUserMsg_ESArcanaCombo) Reset() {
	*x = CDOTAUserMsg_ESArcanaCombo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[125]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_ESArcanaCombo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_ESArcanaCombo) ProtoMessage() {}

func (x *CDOTAUserMsg_ESArcanaCombo) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[125]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_ESArcanaCombo.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_ESArcanaCombo) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{125}
}

func (x *CDOTAUserMsg_ESArcanaCombo) GetEhandle() uint32 {
	if x != nil && x.Ehandle != nil {
		return *x.Ehandle
	}
	return 0
}

func (x *CDOTAUserMsg_ESArcanaCombo) GetComboCount() uint32 {
	if x != nil && x.ComboCount != nil {
		return *x.ComboCount
	}
	return 0
}

func (x *CDOTAUserMsg_ESArcanaCombo) GetArcanaLevel() uint32 {
	if x != nil && x.ArcanaLevel != nil {
		return *x.ArcanaLevel
	}
	return 0
}

type CDOTAUserMsg_ESArcanaComboSummary struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Ehandle      *uint32 `protobuf:"varint,1,opt,name=ehandle" json:"ehandle,omitempty"`
	ComboCount   *uint32 `protobuf:"varint,2,opt,name=combo_count,json=comboCount" json:"combo_count,omitempty"`
	DamageAmount *uint32 `protobuf:"varint,3,opt,name=damage_amount,json=damageAmount" json:"damage_amount,omitempty"`
}

func (x *CDOTAUserMsg_ESArcanaComboSummary) Reset() {
	*x = CDOTAUserMsg_ESArcanaComboSummary{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[126]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_ESArcanaComboSummary) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_ESArcanaComboSummary) ProtoMessage() {}

func (x *CDOTAUserMsg_ESArcanaComboSummary) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[126]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_ESArcanaComboSummary.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_ESArcanaComboSummary) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{126}
}

func (x *CDOTAUserMsg_ESArcanaComboSummary) GetEhandle() uint32 {
	if x != nil && x.Ehandle != nil {
		return *x.Ehandle
	}
	return 0
}

func (x *CDOTAUserMsg_ESArcanaComboSummary) GetComboCount() uint32 {
	if x != nil && x.ComboCount != nil {
		return *x.ComboCount
	}
	return 0
}

func (x *CDOTAUserMsg_ESArcanaComboSummary) GetDamageAmount() uint32 {
	if x != nil && x.DamageAmount != nil {
		return *x.DamageAmount
	}
	return 0
}

type CDOTAUserMsg_OMArcanaCombo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Ehandle         *uint32 `protobuf:"varint,1,opt,name=ehandle" json:"ehandle,omitempty"`
	MulticastAmount *uint32 `protobuf:"varint,2,opt,name=multicast_amount,json=multicastAmount" json:"multicast_amount,omitempty"`
	ArcanaLevel     *uint32 `protobuf:"varint,3,opt,name=arcana_level,json=arcanaLevel" json:"arcana_level,omitempty"`
	MulticastChance *uint32 `protobuf:"varint,4,opt,name=multicast_chance,json=multicastChance" json:"multicast_chance,omitempty"`
}

func (x *CDOTAUserMsg_OMArcanaCombo) Reset() {
	*x = CDOTAUserMsg_OMArcanaCombo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[127]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_OMArcanaCombo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_OMArcanaCombo) ProtoMessage() {}

func (x *CDOTAUserMsg_OMArcanaCombo) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[127]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_OMArcanaCombo.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_OMArcanaCombo) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{127}
}

func (x *CDOTAUserMsg_OMArcanaCombo) GetEhandle() uint32 {
	if x != nil && x.Ehandle != nil {
		return *x.Ehandle
	}
	return 0
}

func (x *CDOTAUserMsg_OMArcanaCombo) GetMulticastAmount() uint32 {
	if x != nil && x.MulticastAmount != nil {
		return *x.MulticastAmount
	}
	return 0
}

func (x *CDOTAUserMsg_OMArcanaCombo) GetArcanaLevel() uint32 {
	if x != nil && x.ArcanaLevel != nil {
		return *x.ArcanaLevel
	}
	return 0
}

func (x *CDOTAUserMsg_OMArcanaCombo) GetMulticastChance() uint32 {
	if x != nil && x.MulticastChance != nil {
		return *x.MulticastChance
	}
	return 0
}

type CDOTAUserMsg_HighFiveCompleted struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId_1      *int32 `protobuf:"varint,1,opt,name=player_id_1,json=playerId1" json:"player_id_1,omitempty"`
	PlayerId_2      *int32 `protobuf:"varint,2,opt,name=player_id_2,json=playerId2" json:"player_id_2,omitempty"`
	SpecialHighFive *bool  `protobuf:"varint,3,opt,name=special_high_five,json=specialHighFive" json:"special_high_five,omitempty"`
}

func (x *CDOTAUserMsg_HighFiveCompleted) Reset() {
	*x = CDOTAUserMsg_HighFiveCompleted{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[128]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_HighFiveCompleted) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_HighFiveCompleted) ProtoMessage() {}

func (x *CDOTAUserMsg_HighFiveCompleted) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[128]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_HighFiveCompleted.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_HighFiveCompleted) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{128}
}

func (x *CDOTAUserMsg_HighFiveCompleted) GetPlayerId_1() int32 {
	if x != nil && x.PlayerId_1 != nil {
		return *x.PlayerId_1
	}
	return 0
}

func (x *CDOTAUserMsg_HighFiveCompleted) GetPlayerId_2() int32 {
	if x != nil && x.PlayerId_2 != nil {
		return *x.PlayerId_2
	}
	return 0
}

func (x *CDOTAUserMsg_HighFiveCompleted) GetSpecialHighFive() bool {
	if x != nil && x.SpecialHighFive != nil {
		return *x.SpecialHighFive
	}
	return false
}

type CDOTAUserMsg_HighFiveLeftHanging struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId *int32 `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
}

func (x *CDOTAUserMsg_HighFiveLeftHanging) Reset() {
	*x = CDOTAUserMsg_HighFiveLeftHanging{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[129]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_HighFiveLeftHanging) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_HighFiveLeftHanging) ProtoMessage() {}

func (x *CDOTAUserMsg_HighFiveLeftHanging) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[129]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_HighFiveLeftHanging.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_HighFiveLeftHanging) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{129}
}

func (x *CDOTAUserMsg_HighFiveLeftHanging) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

type CDOTAUserMsg_ShovelUnearth struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId  *int32  `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	AllChat   *bool   `protobuf:"varint,2,opt,name=all_chat,json=allChat" json:"all_chat,omitempty"`
	Locstring *string `protobuf:"bytes,3,opt,name=locstring" json:"locstring,omitempty"`
	Quantity  *uint32 `protobuf:"varint,4,opt,name=quantity" json:"quantity,omitempty"`
}

func (x *CDOTAUserMsg_ShovelUnearth) Reset() {
	*x = CDOTAUserMsg_ShovelUnearth{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[130]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_ShovelUnearth) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_ShovelUnearth) ProtoMessage() {}

func (x *CDOTAUserMsg_ShovelUnearth) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[130]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_ShovelUnearth.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_ShovelUnearth) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{130}
}

func (x *CDOTAUserMsg_ShovelUnearth) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_ShovelUnearth) GetAllChat() bool {
	if x != nil && x.AllChat != nil {
		return *x.AllChat
	}
	return false
}

func (x *CDOTAUserMsg_ShovelUnearth) GetLocstring() string {
	if x != nil && x.Locstring != nil {
		return *x.Locstring
	}
	return ""
}

func (x *CDOTAUserMsg_ShovelUnearth) GetQuantity() uint32 {
	if x != nil && x.Quantity != nil {
		return *x.Quantity
	}
	return 0
}

type CDOTAUserMsg_AllStarEvent struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SourcePlayerId *int32                                   `protobuf:"varint,1,opt,name=source_player_id,json=sourcePlayerId" json:"source_player_id,omitempty"`
	TargetPlayerId *int32                                   `protobuf:"varint,2,opt,name=target_player_id,json=targetPlayerId" json:"target_player_id,omitempty"`
	PointAmount    *uint32                                  `protobuf:"varint,3,opt,name=point_amount,json=pointAmount" json:"point_amount,omitempty"`
	EventId        *uint32                                  `protobuf:"varint,4,opt,name=event_id,json=eventId" json:"event_id,omitempty"`
	PlayerScores   []*CDOTAUserMsg_AllStarEvent_PlayerScore `protobuf:"bytes,5,rep,name=player_scores,json=playerScores" json:"player_scores,omitempty"`
}

func (x *CDOTAUserMsg_AllStarEvent) Reset() {
	*x = CDOTAUserMsg_AllStarEvent{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[131]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_AllStarEvent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_AllStarEvent) ProtoMessage() {}

func (x *CDOTAUserMsg_AllStarEvent) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[131]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_AllStarEvent.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_AllStarEvent) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{131}
}

func (x *CDOTAUserMsg_AllStarEvent) GetSourcePlayerId() int32 {
	if x != nil && x.SourcePlayerId != nil {
		return *x.SourcePlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_AllStarEvent) GetTargetPlayerId() int32 {
	if x != nil && x.TargetPlayerId != nil {
		return *x.TargetPlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_AllStarEvent) GetPointAmount() uint32 {
	if x != nil && x.PointAmount != nil {
		return *x.PointAmount
	}
	return 0
}

func (x *CDOTAUserMsg_AllStarEvent) GetEventId() uint32 {
	if x != nil && x.EventId != nil {
		return *x.EventId
	}
	return 0
}

func (x *CDOTAUserMsg_AllStarEvent) GetPlayerScores() []*CDOTAUserMsg_AllStarEvent_PlayerScore {
	if x != nil {
		return x.PlayerScores
	}
	return nil
}

type CDOTAUserMsg_QueuedOrderRemoved struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	UnitOrderSequence []uint32 `protobuf:"varint,1,rep,name=unit_order_sequence,json=unitOrderSequence" json:"unit_order_sequence,omitempty"`
}

func (x *CDOTAUserMsg_QueuedOrderRemoved) Reset() {
	*x = CDOTAUserMsg_QueuedOrderRemoved{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[132]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_QueuedOrderRemoved) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_QueuedOrderRemoved) ProtoMessage() {}

func (x *CDOTAUserMsg_QueuedOrderRemoved) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[132]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_QueuedOrderRemoved.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_QueuedOrderRemoved) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{132}
}

func (x *CDOTAUserMsg_QueuedOrderRemoved) GetUnitOrderSequence() []uint32 {
	if x != nil {
		return x.UnitOrderSequence
	}
	return nil
}

type CDOTAUserMsg_DebugChallenge struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ChallengeType    *uint32 `protobuf:"varint,1,req,name=challenge_type,json=challengeType" json:"challenge_type,omitempty"`
	ChallengeQueryId *uint32 `protobuf:"varint,2,req,name=challenge_query_id,json=challengeQueryId" json:"challenge_query_id,omitempty"`
	EventId          *uint32 `protobuf:"varint,3,req,name=event_id,json=eventId" json:"event_id,omitempty"`
	InstanceId       *uint32 `protobuf:"varint,4,opt,name=instance_id,json=instanceId" json:"instance_id,omitempty"`
	ChallengeVar_0   *uint32 `protobuf:"varint,5,opt,name=challenge_var_0,json=challengeVar0" json:"challenge_var_0,omitempty"`
	ChallengeVar_1   *uint32 `protobuf:"varint,6,opt,name=challenge_var_1,json=challengeVar1" json:"challenge_var_1,omitempty"`
	ChallengeMaxRank *uint32 `protobuf:"varint,7,opt,name=challenge_max_rank,json=challengeMaxRank" json:"challenge_max_rank,omitempty"`
}

func (x *CDOTAUserMsg_DebugChallenge) Reset() {
	*x = CDOTAUserMsg_DebugChallenge{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[133]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_DebugChallenge) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_DebugChallenge) ProtoMessage() {}

func (x *CDOTAUserMsg_DebugChallenge) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[133]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_DebugChallenge.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_DebugChallenge) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{133}
}

func (x *CDOTAUserMsg_DebugChallenge) GetChallengeType() uint32 {
	if x != nil && x.ChallengeType != nil {
		return *x.ChallengeType
	}
	return 0
}

func (x *CDOTAUserMsg_DebugChallenge) GetChallengeQueryId() uint32 {
	if x != nil && x.ChallengeQueryId != nil {
		return *x.ChallengeQueryId
	}
	return 0
}

func (x *CDOTAUserMsg_DebugChallenge) GetEventId() uint32 {
	if x != nil && x.EventId != nil {
		return *x.EventId
	}
	return 0
}

func (x *CDOTAUserMsg_DebugChallenge) GetInstanceId() uint32 {
	if x != nil && x.InstanceId != nil {
		return *x.InstanceId
	}
	return 0
}

func (x *CDOTAUserMsg_DebugChallenge) GetChallengeVar_0() uint32 {
	if x != nil && x.ChallengeVar_0 != nil {
		return *x.ChallengeVar_0
	}
	return 0
}

func (x *CDOTAUserMsg_DebugChallenge) GetChallengeVar_1() uint32 {
	if x != nil && x.ChallengeVar_1 != nil {
		return *x.ChallengeVar_1
	}
	return 0
}

func (x *CDOTAUserMsg_DebugChallenge) GetChallengeMaxRank() uint32 {
	if x != nil && x.ChallengeMaxRank != nil {
		return *x.ChallengeMaxRank
	}
	return 0
}

type CDOTAUserMsg_FoundNeutralItem struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId      *int32  `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	ItemAbilityId *uint32 `protobuf:"varint,2,opt,name=item_ability_id,json=itemAbilityId" json:"item_ability_id,omitempty"`
	ItemTier      *uint32 `protobuf:"varint,3,opt,name=item_tier,json=itemTier" json:"item_tier,omitempty"`
	TierItemCount *uint32 `protobuf:"varint,4,opt,name=tier_item_count,json=tierItemCount" json:"tier_item_count,omitempty"`
}

func (x *CDOTAUserMsg_FoundNeutralItem) Reset() {
	*x = CDOTAUserMsg_FoundNeutralItem{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[134]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_FoundNeutralItem) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_FoundNeutralItem) ProtoMessage() {}

func (x *CDOTAUserMsg_FoundNeutralItem) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[134]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_FoundNeutralItem.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_FoundNeutralItem) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{134}
}

func (x *CDOTAUserMsg_FoundNeutralItem) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_FoundNeutralItem) GetItemAbilityId() uint32 {
	if x != nil && x.ItemAbilityId != nil {
		return *x.ItemAbilityId
	}
	return 0
}

func (x *CDOTAUserMsg_FoundNeutralItem) GetItemTier() uint32 {
	if x != nil && x.ItemTier != nil {
		return *x.ItemTier
	}
	return 0
}

func (x *CDOTAUserMsg_FoundNeutralItem) GetTierItemCount() uint32 {
	if x != nil && x.TierItemCount != nil {
		return *x.TierItemCount
	}
	return 0
}

type CDOTAUserMsg_OutpostCaptured struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	OutpostEntindex *int32  `protobuf:"varint,1,opt,name=outpost_entindex,json=outpostEntindex" json:"outpost_entindex,omitempty"`
	TeamId          *uint32 `protobuf:"varint,2,opt,name=team_id,json=teamId" json:"team_id,omitempty"`
}

func (x *CDOTAUserMsg_OutpostCaptured) Reset() {
	*x = CDOTAUserMsg_OutpostCaptured{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[135]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_OutpostCaptured) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_OutpostCaptured) ProtoMessage() {}

func (x *CDOTAUserMsg_OutpostCaptured) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[135]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_OutpostCaptured.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_OutpostCaptured) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{135}
}

func (x *CDOTAUserMsg_OutpostCaptured) GetOutpostEntindex() int32 {
	if x != nil && x.OutpostEntindex != nil {
		return *x.OutpostEntindex
	}
	return 0
}

func (x *CDOTAUserMsg_OutpostCaptured) GetTeamId() uint32 {
	if x != nil && x.TeamId != nil {
		return *x.TeamId
	}
	return 0
}

type CDOTAUserMsg_OutpostGrantedXP struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	TeamId   *uint32 `protobuf:"varint,1,opt,name=team_id,json=teamId" json:"team_id,omitempty"`
	XpAmount *uint32 `protobuf:"varint,2,opt,name=xp_amount,json=xpAmount" json:"xp_amount,omitempty"`
}

func (x *CDOTAUserMsg_OutpostGrantedXP) Reset() {
	*x = CDOTAUserMsg_OutpostGrantedXP{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[136]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_OutpostGrantedXP) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_OutpostGrantedXP) ProtoMessage() {}

func (x *CDOTAUserMsg_OutpostGrantedXP) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[136]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_OutpostGrantedXP.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_OutpostGrantedXP) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{136}
}

func (x *CDOTAUserMsg_OutpostGrantedXP) GetTeamId() uint32 {
	if x != nil && x.TeamId != nil {
		return *x.TeamId
	}
	return 0
}

func (x *CDOTAUserMsg_OutpostGrantedXP) GetXpAmount() uint32 {
	if x != nil && x.XpAmount != nil {
		return *x.XpAmount
	}
	return 0
}

type CDOTAUserMsg_MoveCameraToUnit struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	UnitEhandle *uint32 `protobuf:"varint,1,opt,name=unit_ehandle,json=unitEhandle" json:"unit_ehandle,omitempty"`
}

func (x *CDOTAUserMsg_MoveCameraToUnit) Reset() {
	*x = CDOTAUserMsg_MoveCameraToUnit{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[137]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_MoveCameraToUnit) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_MoveCameraToUnit) ProtoMessage() {}

func (x *CDOTAUserMsg_MoveCameraToUnit) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[137]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_MoveCameraToUnit.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_MoveCameraToUnit) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{137}
}

func (x *CDOTAUserMsg_MoveCameraToUnit) GetUnitEhandle() uint32 {
	if x != nil && x.UnitEhandle != nil {
		return *x.UnitEhandle
	}
	return 0
}

type CDOTAUserMsg_PauseMinigameData struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DataBits []*CDOTAUserMsg_PauseMinigameData_DataBit `protobuf:"bytes,1,rep,name=data_bits,json=dataBits" json:"data_bits,omitempty"`
}

func (x *CDOTAUserMsg_PauseMinigameData) Reset() {
	*x = CDOTAUserMsg_PauseMinigameData{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[138]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_PauseMinigameData) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_PauseMinigameData) ProtoMessage() {}

func (x *CDOTAUserMsg_PauseMinigameData) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[138]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_PauseMinigameData.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_PauseMinigameData) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{138}
}

func (x *CDOTAUserMsg_PauseMinigameData) GetDataBits() []*CDOTAUserMsg_PauseMinigameData_DataBit {
	if x != nil {
		return x.DataBits
	}
	return nil
}

type CDOTAUserMsg_VersusScene_PlayerBehavior struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId     *int32                          `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	Behavior     *EDOTAVersusScenePlayerBehavior `protobuf:"varint,2,opt,name=behavior,enum=EDOTAVersusScenePlayerBehavior,def=1" json:"behavior,omitempty"`
	PlayActivity *VersusScene_PlayActivity       `protobuf:"bytes,3,opt,name=play_activity,json=playActivity" json:"play_activity,omitempty"`
	ChatWheel    *VersusScene_ChatWheel          `protobuf:"bytes,4,opt,name=chat_wheel,json=chatWheel" json:"chat_wheel,omitempty"`
	PlaybackRate *VersusScene_PlaybackRate       `protobuf:"bytes,5,opt,name=playback_rate,json=playbackRate" json:"playback_rate,omitempty"`
}

// Default values for CDOTAUserMsg_VersusScene_PlayerBehavior fields.
const (
	Default_CDOTAUserMsg_VersusScene_PlayerBehavior_Behavior = EDOTAVersusScenePlayerBehavior_VS_PLAYER_BEHAVIOR_PLAY_ACTIVITY
)

func (x *CDOTAUserMsg_VersusScene_PlayerBehavior) Reset() {
	*x = CDOTAUserMsg_VersusScene_PlayerBehavior{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[139]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_VersusScene_PlayerBehavior) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_VersusScene_PlayerBehavior) ProtoMessage() {}

func (x *CDOTAUserMsg_VersusScene_PlayerBehavior) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[139]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_VersusScene_PlayerBehavior.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_VersusScene_PlayerBehavior) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{139}
}

func (x *CDOTAUserMsg_VersusScene_PlayerBehavior) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_VersusScene_PlayerBehavior) GetBehavior() EDOTAVersusScenePlayerBehavior {
	if x != nil && x.Behavior != nil {
		return *x.Behavior
	}
	return Default_CDOTAUserMsg_VersusScene_PlayerBehavior_Behavior
}

func (x *CDOTAUserMsg_VersusScene_PlayerBehavior) GetPlayActivity() *VersusScene_PlayActivity {
	if x != nil {
		return x.PlayActivity
	}
	return nil
}

func (x *CDOTAUserMsg_VersusScene_PlayerBehavior) GetChatWheel() *VersusScene_ChatWheel {
	if x != nil {
		return x.ChatWheel
	}
	return nil
}

func (x *CDOTAUserMsg_VersusScene_PlayerBehavior) GetPlaybackRate() *VersusScene_PlaybackRate {
	if x != nil {
		return x.PlaybackRate
	}
	return nil
}

type CDOTAUserMsg_QoP_ArcanaSummary struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Ehandle       *uint32 `protobuf:"varint,1,opt,name=ehandle" json:"ehandle,omitempty"`
	ArcanaLevel   *uint32 `protobuf:"varint,2,opt,name=arcana_level,json=arcanaLevel" json:"arcana_level,omitempty"`
	PlayersHit    *uint32 `protobuf:"varint,3,opt,name=players_hit,json=playersHit" json:"players_hit,omitempty"`
	PlayersKilled *uint32 `protobuf:"varint,4,opt,name=players_killed,json=playersKilled" json:"players_killed,omitempty"`
}

func (x *CDOTAUserMsg_QoP_ArcanaSummary) Reset() {
	*x = CDOTAUserMsg_QoP_ArcanaSummary{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[140]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_QoP_ArcanaSummary) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_QoP_ArcanaSummary) ProtoMessage() {}

func (x *CDOTAUserMsg_QoP_ArcanaSummary) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[140]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_QoP_ArcanaSummary.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_QoP_ArcanaSummary) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{140}
}

func (x *CDOTAUserMsg_QoP_ArcanaSummary) GetEhandle() uint32 {
	if x != nil && x.Ehandle != nil {
		return *x.Ehandle
	}
	return 0
}

func (x *CDOTAUserMsg_QoP_ArcanaSummary) GetArcanaLevel() uint32 {
	if x != nil && x.ArcanaLevel != nil {
		return *x.ArcanaLevel
	}
	return 0
}

func (x *CDOTAUserMsg_QoP_ArcanaSummary) GetPlayersHit() uint32 {
	if x != nil && x.PlayersHit != nil {
		return *x.PlayersHit
	}
	return 0
}

func (x *CDOTAUserMsg_QoP_ArcanaSummary) GetPlayersKilled() uint32 {
	if x != nil && x.PlayersKilled != nil {
		return *x.PlayersKilled
	}
	return 0
}

type CDOTAUserMsg_HotPotato_Created struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId_1 *int32 `protobuf:"varint,1,opt,name=player_id_1,json=playerId1" json:"player_id_1,omitempty"`
	PlayerId_2 *int32 `protobuf:"varint,2,opt,name=player_id_2,json=playerId2" json:"player_id_2,omitempty"`
}

func (x *CDOTAUserMsg_HotPotato_Created) Reset() {
	*x = CDOTAUserMsg_HotPotato_Created{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[141]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_HotPotato_Created) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_HotPotato_Created) ProtoMessage() {}

func (x *CDOTAUserMsg_HotPotato_Created) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[141]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_HotPotato_Created.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_HotPotato_Created) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{141}
}

func (x *CDOTAUserMsg_HotPotato_Created) GetPlayerId_1() int32 {
	if x != nil && x.PlayerId_1 != nil {
		return *x.PlayerId_1
	}
	return 0
}

func (x *CDOTAUserMsg_HotPotato_Created) GetPlayerId_2() int32 {
	if x != nil && x.PlayerId_2 != nil {
		return *x.PlayerId_2
	}
	return 0
}

type CDOTAUserMsg_HotPotato_Exploded struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId *int32 `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
}

func (x *CDOTAUserMsg_HotPotato_Exploded) Reset() {
	*x = CDOTAUserMsg_HotPotato_Exploded{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[142]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_HotPotato_Exploded) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_HotPotato_Exploded) ProtoMessage() {}

func (x *CDOTAUserMsg_HotPotato_Exploded) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[142]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_HotPotato_Exploded.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_HotPotato_Exploded) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{142}
}

func (x *CDOTAUserMsg_HotPotato_Exploded) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

type CDOTAUserMsg_WK_Arcana_Progress struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Ehandle     *uint32 `protobuf:"varint,1,opt,name=ehandle" json:"ehandle,omitempty"`
	ArcanaLevel *uint32 `protobuf:"varint,2,opt,name=arcana_level,json=arcanaLevel" json:"arcana_level,omitempty"`
	HeroId      *uint32 `protobuf:"varint,3,opt,name=hero_id,json=heroId" json:"hero_id,omitempty"`
}

func (x *CDOTAUserMsg_WK_Arcana_Progress) Reset() {
	*x = CDOTAUserMsg_WK_Arcana_Progress{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[143]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_WK_Arcana_Progress) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_WK_Arcana_Progress) ProtoMessage() {}

func (x *CDOTAUserMsg_WK_Arcana_Progress) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[143]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_WK_Arcana_Progress.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_WK_Arcana_Progress) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{143}
}

func (x *CDOTAUserMsg_WK_Arcana_Progress) GetEhandle() uint32 {
	if x != nil && x.Ehandle != nil {
		return *x.Ehandle
	}
	return 0
}

func (x *CDOTAUserMsg_WK_Arcana_Progress) GetArcanaLevel() uint32 {
	if x != nil && x.ArcanaLevel != nil {
		return *x.ArcanaLevel
	}
	return 0
}

func (x *CDOTAUserMsg_WK_Arcana_Progress) GetHeroId() uint32 {
	if x != nil && x.HeroId != nil {
		return *x.HeroId
	}
	return 0
}

type CDOTAUserMsg_GuildChallenge_Progress struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerProgress           []*CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress `protobuf:"bytes,1,rep,name=player_progress,json=playerProgress" json:"player_progress,omitempty"`
	GuildId                  *uint32                                                `protobuf:"varint,2,opt,name=guild_id,json=guildId" json:"guild_id,omitempty"`
	ChallengeInstanceId      *uint32                                                `protobuf:"varint,3,opt,name=challenge_instance_id,json=challengeInstanceId" json:"challenge_instance_id,omitempty"`
	ChallengeParameter       *uint32                                                `protobuf:"varint,4,opt,name=challenge_parameter,json=challengeParameter" json:"challenge_parameter,omitempty"`
	ChallengeType            *CDOTAUserMsg_GuildChallenge_Progress_EChallengeType   `protobuf:"varint,5,opt,name=challenge_type,json=challengeType,enum=CDOTAUserMsg_GuildChallenge_Progress_EChallengeType,def=0" json:"challenge_type,omitempty"`
	ChallengeProgressAtStart *uint32                                                `protobuf:"varint,7,opt,name=challenge_progress_at_start,json=challengeProgressAtStart" json:"challenge_progress_at_start,omitempty"`
	Complete                 *bool                                                  `protobuf:"varint,8,opt,name=complete" json:"complete,omitempty"`
}

// Default values for CDOTAUserMsg_GuildChallenge_Progress fields.
const (
	Default_CDOTAUserMsg_GuildChallenge_Progress_ChallengeType = CDOTAUserMsg_GuildChallenge_Progress_k_EChallengeType_Invalid
)

func (x *CDOTAUserMsg_GuildChallenge_Progress) Reset() {
	*x = CDOTAUserMsg_GuildChallenge_Progress{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[144]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_GuildChallenge_Progress) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_GuildChallenge_Progress) ProtoMessage() {}

func (x *CDOTAUserMsg_GuildChallenge_Progress) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[144]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_GuildChallenge_Progress.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_GuildChallenge_Progress) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{144}
}

func (x *CDOTAUserMsg_GuildChallenge_Progress) GetPlayerProgress() []*CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress {
	if x != nil {
		return x.PlayerProgress
	}
	return nil
}

func (x *CDOTAUserMsg_GuildChallenge_Progress) GetGuildId() uint32 {
	if x != nil && x.GuildId != nil {
		return *x.GuildId
	}
	return 0
}

func (x *CDOTAUserMsg_GuildChallenge_Progress) GetChallengeInstanceId() uint32 {
	if x != nil && x.ChallengeInstanceId != nil {
		return *x.ChallengeInstanceId
	}
	return 0
}

func (x *CDOTAUserMsg_GuildChallenge_Progress) GetChallengeParameter() uint32 {
	if x != nil && x.ChallengeParameter != nil {
		return *x.ChallengeParameter
	}
	return 0
}

func (x *CDOTAUserMsg_GuildChallenge_Progress) GetChallengeType() CDOTAUserMsg_GuildChallenge_Progress_EChallengeType {
	if x != nil && x.ChallengeType != nil {
		return *x.ChallengeType
	}
	return Default_CDOTAUserMsg_GuildChallenge_Progress_ChallengeType
}

func (x *CDOTAUserMsg_GuildChallenge_Progress) GetChallengeProgressAtStart() uint32 {
	if x != nil && x.ChallengeProgressAtStart != nil {
		return *x.ChallengeProgressAtStart
	}
	return 0
}

func (x *CDOTAUserMsg_GuildChallenge_Progress) GetComplete() bool {
	if x != nil && x.Complete != nil {
		return *x.Complete
	}
	return false
}

type CDOTAUserMsg_WRArcanaProgress struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Ehandle       *uint32 `protobuf:"varint,1,opt,name=ehandle" json:"ehandle,omitempty"`
	TargetEhandle *uint32 `protobuf:"varint,2,opt,name=target_ehandle,json=targetEhandle" json:"target_ehandle,omitempty"`
	ArrowsLanded  *uint32 `protobuf:"varint,3,opt,name=arrows_landed,json=arrowsLanded" json:"arrows_landed,omitempty"`
	DamageDealt   *uint32 `protobuf:"varint,4,opt,name=damage_dealt,json=damageDealt" json:"damage_dealt,omitempty"`
	TargetHp      *uint32 `protobuf:"varint,5,opt,name=target_hp,json=targetHp" json:"target_hp,omitempty"`
	TargetMaxHp   *uint32 `protobuf:"varint,6,opt,name=target_max_hp,json=targetMaxHp" json:"target_max_hp,omitempty"`
	ArcanaLevel   *uint32 `protobuf:"varint,7,opt,name=arcana_level,json=arcanaLevel" json:"arcana_level,omitempty"`
}

func (x *CDOTAUserMsg_WRArcanaProgress) Reset() {
	*x = CDOTAUserMsg_WRArcanaProgress{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[145]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_WRArcanaProgress) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_WRArcanaProgress) ProtoMessage() {}

func (x *CDOTAUserMsg_WRArcanaProgress) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[145]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_WRArcanaProgress.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_WRArcanaProgress) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{145}
}

func (x *CDOTAUserMsg_WRArcanaProgress) GetEhandle() uint32 {
	if x != nil && x.Ehandle != nil {
		return *x.Ehandle
	}
	return 0
}

func (x *CDOTAUserMsg_WRArcanaProgress) GetTargetEhandle() uint32 {
	if x != nil && x.TargetEhandle != nil {
		return *x.TargetEhandle
	}
	return 0
}

func (x *CDOTAUserMsg_WRArcanaProgress) GetArrowsLanded() uint32 {
	if x != nil && x.ArrowsLanded != nil {
		return *x.ArrowsLanded
	}
	return 0
}

func (x *CDOTAUserMsg_WRArcanaProgress) GetDamageDealt() uint32 {
	if x != nil && x.DamageDealt != nil {
		return *x.DamageDealt
	}
	return 0
}

func (x *CDOTAUserMsg_WRArcanaProgress) GetTargetHp() uint32 {
	if x != nil && x.TargetHp != nil {
		return *x.TargetHp
	}
	return 0
}

func (x *CDOTAUserMsg_WRArcanaProgress) GetTargetMaxHp() uint32 {
	if x != nil && x.TargetMaxHp != nil {
		return *x.TargetMaxHp
	}
	return 0
}

func (x *CDOTAUserMsg_WRArcanaProgress) GetArcanaLevel() uint32 {
	if x != nil && x.ArcanaLevel != nil {
		return *x.ArcanaLevel
	}
	return 0
}

type CDOTAUserMsg_WRArcanaSummary struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Ehandle       *uint32 `protobuf:"varint,1,opt,name=ehandle" json:"ehandle,omitempty"`
	TargetEhandle *uint32 `protobuf:"varint,2,opt,name=target_ehandle,json=targetEhandle" json:"target_ehandle,omitempty"`
	ArrowsLanded  *uint32 `protobuf:"varint,3,opt,name=arrows_landed,json=arrowsLanded" json:"arrows_landed,omitempty"`
	DamageDealt   *uint32 `protobuf:"varint,4,opt,name=damage_dealt,json=damageDealt" json:"damage_dealt,omitempty"`
	TargetHp      *uint32 `protobuf:"varint,5,opt,name=target_hp,json=targetHp" json:"target_hp,omitempty"`
	TargetMaxHp   *uint32 `protobuf:"varint,6,opt,name=target_max_hp,json=targetMaxHp" json:"target_max_hp,omitempty"`
	ArcanaLevel   *uint32 `protobuf:"varint,7,opt,name=arcana_level,json=arcanaLevel" json:"arcana_level,omitempty"`
	Success       *bool   `protobuf:"varint,8,opt,name=success" json:"success,omitempty"`
}

func (x *CDOTAUserMsg_WRArcanaSummary) Reset() {
	*x = CDOTAUserMsg_WRArcanaSummary{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[146]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_WRArcanaSummary) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_WRArcanaSummary) ProtoMessage() {}

func (x *CDOTAUserMsg_WRArcanaSummary) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[146]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_WRArcanaSummary.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_WRArcanaSummary) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{146}
}

func (x *CDOTAUserMsg_WRArcanaSummary) GetEhandle() uint32 {
	if x != nil && x.Ehandle != nil {
		return *x.Ehandle
	}
	return 0
}

func (x *CDOTAUserMsg_WRArcanaSummary) GetTargetEhandle() uint32 {
	if x != nil && x.TargetEhandle != nil {
		return *x.TargetEhandle
	}
	return 0
}

func (x *CDOTAUserMsg_WRArcanaSummary) GetArrowsLanded() uint32 {
	if x != nil && x.ArrowsLanded != nil {
		return *x.ArrowsLanded
	}
	return 0
}

func (x *CDOTAUserMsg_WRArcanaSummary) GetDamageDealt() uint32 {
	if x != nil && x.DamageDealt != nil {
		return *x.DamageDealt
	}
	return 0
}

func (x *CDOTAUserMsg_WRArcanaSummary) GetTargetHp() uint32 {
	if x != nil && x.TargetHp != nil {
		return *x.TargetHp
	}
	return 0
}

func (x *CDOTAUserMsg_WRArcanaSummary) GetTargetMaxHp() uint32 {
	if x != nil && x.TargetMaxHp != nil {
		return *x.TargetMaxHp
	}
	return 0
}

func (x *CDOTAUserMsg_WRArcanaSummary) GetArcanaLevel() uint32 {
	if x != nil && x.ArcanaLevel != nil {
		return *x.ArcanaLevel
	}
	return 0
}

func (x *CDOTAUserMsg_WRArcanaSummary) GetSuccess() bool {
	if x != nil && x.Success != nil {
		return *x.Success
	}
	return false
}

type CDOTAUserMsg_EmptyItemSlotAlert struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SourcePlayerId  *int32 `protobuf:"varint,1,opt,name=source_player_id,json=sourcePlayerId" json:"source_player_id,omitempty"`
	TargetPlayerId  *int32 `protobuf:"varint,2,opt,name=target_player_id,json=targetPlayerId" json:"target_player_id,omitempty"`
	SlotIndex       *int32 `protobuf:"varint,3,opt,name=slot_index,json=slotIndex" json:"slot_index,omitempty"`
	CooldownSeconds *int32 `protobuf:"varint,4,opt,name=cooldown_seconds,json=cooldownSeconds" json:"cooldown_seconds,omitempty"`
}

func (x *CDOTAUserMsg_EmptyItemSlotAlert) Reset() {
	*x = CDOTAUserMsg_EmptyItemSlotAlert{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[147]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_EmptyItemSlotAlert) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_EmptyItemSlotAlert) ProtoMessage() {}

func (x *CDOTAUserMsg_EmptyItemSlotAlert) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[147]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_EmptyItemSlotAlert.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_EmptyItemSlotAlert) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{147}
}

func (x *CDOTAUserMsg_EmptyItemSlotAlert) GetSourcePlayerId() int32 {
	if x != nil && x.SourcePlayerId != nil {
		return *x.SourcePlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_EmptyItemSlotAlert) GetTargetPlayerId() int32 {
	if x != nil && x.TargetPlayerId != nil {
		return *x.TargetPlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_EmptyItemSlotAlert) GetSlotIndex() int32 {
	if x != nil && x.SlotIndex != nil {
		return *x.SlotIndex
	}
	return 0
}

func (x *CDOTAUserMsg_EmptyItemSlotAlert) GetCooldownSeconds() int32 {
	if x != nil && x.CooldownSeconds != nil {
		return *x.CooldownSeconds
	}
	return 0
}

type CDOTAUserMsg_AghsStatusAlert struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SourcePlayerId *int32  `protobuf:"varint,1,opt,name=source_player_id,json=sourcePlayerId" json:"source_player_id,omitempty"`
	TargetPlayerId *int32  `protobuf:"varint,2,opt,name=target_player_id,json=targetPlayerId" json:"target_player_id,omitempty"`
	TargetEntindex *int32  `protobuf:"varint,3,opt,name=target_entindex,json=targetEntindex" json:"target_entindex,omitempty"`
	AlertType      *uint32 `protobuf:"varint,4,opt,name=alert_type,json=alertType" json:"alert_type,omitempty"`
	HasScepter     *bool   `protobuf:"varint,5,opt,name=has_scepter,json=hasScepter" json:"has_scepter,omitempty"`
	HasShard       *bool   `protobuf:"varint,6,opt,name=has_shard,json=hasShard" json:"has_shard,omitempty"`
}

func (x *CDOTAUserMsg_AghsStatusAlert) Reset() {
	*x = CDOTAUserMsg_AghsStatusAlert{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[148]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_AghsStatusAlert) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_AghsStatusAlert) ProtoMessage() {}

func (x *CDOTAUserMsg_AghsStatusAlert) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[148]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_AghsStatusAlert.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_AghsStatusAlert) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{148}
}

func (x *CDOTAUserMsg_AghsStatusAlert) GetSourcePlayerId() int32 {
	if x != nil && x.SourcePlayerId != nil {
		return *x.SourcePlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_AghsStatusAlert) GetTargetPlayerId() int32 {
	if x != nil && x.TargetPlayerId != nil {
		return *x.TargetPlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_AghsStatusAlert) GetTargetEntindex() int32 {
	if x != nil && x.TargetEntindex != nil {
		return *x.TargetEntindex
	}
	return 0
}

func (x *CDOTAUserMsg_AghsStatusAlert) GetAlertType() uint32 {
	if x != nil && x.AlertType != nil {
		return *x.AlertType
	}
	return 0
}

func (x *CDOTAUserMsg_AghsStatusAlert) GetHasScepter() bool {
	if x != nil && x.HasScepter != nil {
		return *x.HasScepter
	}
	return false
}

func (x *CDOTAUserMsg_AghsStatusAlert) GetHasShard() bool {
	if x != nil && x.HasShard != nil {
		return *x.HasShard
	}
	return false
}

type CDOTAUserMsg_MutedPlayers struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	TextMutedPlayerIds  []int32 `protobuf:"varint,1,rep,name=text_muted_player_ids,json=textMutedPlayerIds" json:"text_muted_player_ids,omitempty"`
	VoiceMutedPlayerIds []int32 `protobuf:"varint,2,rep,name=voice_muted_player_ids,json=voiceMutedPlayerIds" json:"voice_muted_player_ids,omitempty"`
}

func (x *CDOTAUserMsg_MutedPlayers) Reset() {
	*x = CDOTAUserMsg_MutedPlayers{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[149]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_MutedPlayers) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_MutedPlayers) ProtoMessage() {}

func (x *CDOTAUserMsg_MutedPlayers) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[149]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_MutedPlayers.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_MutedPlayers) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{149}
}

func (x *CDOTAUserMsg_MutedPlayers) GetTextMutedPlayerIds() []int32 {
	if x != nil {
		return x.TextMutedPlayerIds
	}
	return nil
}

func (x *CDOTAUserMsg_MutedPlayers) GetVoiceMutedPlayerIds() []int32 {
	if x != nil {
		return x.VoiceMutedPlayerIds
	}
	return nil
}

type CDOTAUserMsg_ContextualTip struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	TipId                 *int32   `protobuf:"varint,1,opt,name=tip_id,json=tipId" json:"tip_id,omitempty"`
	ReferencedAbilities   []string `protobuf:"bytes,2,rep,name=referenced_abilities,json=referencedAbilities" json:"referenced_abilities,omitempty"`
	ReferencedUnits       []string `protobuf:"bytes,3,rep,name=referenced_units,json=referencedUnits" json:"referenced_units,omitempty"`
	PanoramaClasses       []string `protobuf:"bytes,4,rep,name=panorama_classes,json=panoramaClasses" json:"panorama_classes,omitempty"`
	ForceAnnotation       *bool    `protobuf:"varint,5,opt,name=force_annotation,json=forceAnnotation" json:"force_annotation,omitempty"`
	Variant               *int32   `protobuf:"varint,6,opt,name=variant" json:"variant,omitempty"`
	IntParam              *int32   `protobuf:"varint,7,opt,name=int_param,json=intParam" json:"int_param,omitempty"`
	IntParam2             *int32   `protobuf:"varint,8,opt,name=int_param2,json=intParam2" json:"int_param2,omitempty"`
	FloatParam            *float32 `protobuf:"fixed32,9,opt,name=float_param,json=floatParam" json:"float_param,omitempty"`
	FloatParam2           *float32 `protobuf:"fixed32,10,opt,name=float_param2,json=floatParam2" json:"float_param2,omitempty"`
	StringParam           *string  `protobuf:"bytes,11,opt,name=string_param,json=stringParam" json:"string_param,omitempty"`
	StringParam2          *string  `protobuf:"bytes,12,opt,name=string_param2,json=stringParam2" json:"string_param2,omitempty"`
	TipTextOverride       *string  `protobuf:"bytes,13,opt,name=tip_text_override,json=tipTextOverride" json:"tip_text_override,omitempty"`
	TipAnnotationOverride *string  `protobuf:"bytes,14,opt,name=tip_annotation_override,json=tipAnnotationOverride" json:"tip_annotation_override,omitempty"`
	PanoramaSnippet       *string  `protobuf:"bytes,15,opt,name=panorama_snippet,json=panoramaSnippet" json:"panorama_snippet,omitempty"`
}

func (x *CDOTAUserMsg_ContextualTip) Reset() {
	*x = CDOTAUserMsg_ContextualTip{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[150]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_ContextualTip) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_ContextualTip) ProtoMessage() {}

func (x *CDOTAUserMsg_ContextualTip) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[150]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_ContextualTip.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_ContextualTip) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{150}
}

func (x *CDOTAUserMsg_ContextualTip) GetTipId() int32 {
	if x != nil && x.TipId != nil {
		return *x.TipId
	}
	return 0
}

func (x *CDOTAUserMsg_ContextualTip) GetReferencedAbilities() []string {
	if x != nil {
		return x.ReferencedAbilities
	}
	return nil
}

func (x *CDOTAUserMsg_ContextualTip) GetReferencedUnits() []string {
	if x != nil {
		return x.ReferencedUnits
	}
	return nil
}

func (x *CDOTAUserMsg_ContextualTip) GetPanoramaClasses() []string {
	if x != nil {
		return x.PanoramaClasses
	}
	return nil
}

func (x *CDOTAUserMsg_ContextualTip) GetForceAnnotation() bool {
	if x != nil && x.ForceAnnotation != nil {
		return *x.ForceAnnotation
	}
	return false
}

func (x *CDOTAUserMsg_ContextualTip) GetVariant() int32 {
	if x != nil && x.Variant != nil {
		return *x.Variant
	}
	return 0
}

func (x *CDOTAUserMsg_ContextualTip) GetIntParam() int32 {
	if x != nil && x.IntParam != nil {
		return *x.IntParam
	}
	return 0
}

func (x *CDOTAUserMsg_ContextualTip) GetIntParam2() int32 {
	if x != nil && x.IntParam2 != nil {
		return *x.IntParam2
	}
	return 0
}

func (x *CDOTAUserMsg_ContextualTip) GetFloatParam() float32 {
	if x != nil && x.FloatParam != nil {
		return *x.FloatParam
	}
	return 0
}

func (x *CDOTAUserMsg_ContextualTip) GetFloatParam2() float32 {
	if x != nil && x.FloatParam2 != nil {
		return *x.FloatParam2
	}
	return 0
}

func (x *CDOTAUserMsg_ContextualTip) GetStringParam() string {
	if x != nil && x.StringParam != nil {
		return *x.StringParam
	}
	return ""
}

func (x *CDOTAUserMsg_ContextualTip) GetStringParam2() string {
	if x != nil && x.StringParam2 != nil {
		return *x.StringParam2
	}
	return ""
}

func (x *CDOTAUserMsg_ContextualTip) GetTipTextOverride() string {
	if x != nil && x.TipTextOverride != nil {
		return *x.TipTextOverride
	}
	return ""
}

func (x *CDOTAUserMsg_ContextualTip) GetTipAnnotationOverride() string {
	if x != nil && x.TipAnnotationOverride != nil {
		return *x.TipAnnotationOverride
	}
	return ""
}

func (x *CDOTAUserMsg_ContextualTip) GetPanoramaSnippet() string {
	if x != nil && x.PanoramaSnippet != nil {
		return *x.PanoramaSnippet
	}
	return ""
}

type CDOTAUserMsg_ChatMessage struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SourcePlayerId *int32  `protobuf:"varint,1,opt,name=source_player_id,json=sourcePlayerId" json:"source_player_id,omitempty"`
	ChannelType    *uint32 `protobuf:"varint,2,opt,name=channel_type,json=channelType" json:"channel_type,omitempty"`
	MessageText    *string `protobuf:"bytes,3,opt,name=message_text,json=messageText" json:"message_text,omitempty"`
}

func (x *CDOTAUserMsg_ChatMessage) Reset() {
	*x = CDOTAUserMsg_ChatMessage{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[151]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_ChatMessage) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_ChatMessage) ProtoMessage() {}

func (x *CDOTAUserMsg_ChatMessage) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[151]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_ChatMessage.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_ChatMessage) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{151}
}

func (x *CDOTAUserMsg_ChatMessage) GetSourcePlayerId() int32 {
	if x != nil && x.SourcePlayerId != nil {
		return *x.SourcePlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_ChatMessage) GetChannelType() uint32 {
	if x != nil && x.ChannelType != nil {
		return *x.ChannelType
	}
	return 0
}

func (x *CDOTAUserMsg_ChatMessage) GetMessageText() string {
	if x != nil && x.MessageText != nil {
		return *x.MessageText
	}
	return ""
}

type CDOTAUserMsg_MiniKillCamInfo_Attacker struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Attacker     *uint32                                          `protobuf:"varint,1,opt,name=attacker" json:"attacker,omitempty"`
	TotalDamage  *int32                                           `protobuf:"varint,2,opt,name=total_damage,json=totalDamage" json:"total_damage,omitempty"`
	Abilities    []*CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability `protobuf:"bytes,3,rep,name=abilities" json:"abilities,omitempty"`
	AttackerName *string                                          `protobuf:"bytes,4,opt,name=attacker_name,json=attackerName" json:"attacker_name,omitempty"`
}

func (x *CDOTAUserMsg_MiniKillCamInfo_Attacker) Reset() {
	*x = CDOTAUserMsg_MiniKillCamInfo_Attacker{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[152]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_MiniKillCamInfo_Attacker) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_MiniKillCamInfo_Attacker) ProtoMessage() {}

func (x *CDOTAUserMsg_MiniKillCamInfo_Attacker) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[152]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_MiniKillCamInfo_Attacker.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_MiniKillCamInfo_Attacker) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{8, 0}
}

func (x *CDOTAUserMsg_MiniKillCamInfo_Attacker) GetAttacker() uint32 {
	if x != nil && x.Attacker != nil {
		return *x.Attacker
	}
	return 0
}

func (x *CDOTAUserMsg_MiniKillCamInfo_Attacker) GetTotalDamage() int32 {
	if x != nil && x.TotalDamage != nil {
		return *x.TotalDamage
	}
	return 0
}

func (x *CDOTAUserMsg_MiniKillCamInfo_Attacker) GetAbilities() []*CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability {
	if x != nil {
		return x.Abilities
	}
	return nil
}

func (x *CDOTAUserMsg_MiniKillCamInfo_Attacker) GetAttackerName() string {
	if x != nil && x.AttackerName != nil {
		return *x.AttackerName
	}
	return ""
}

type CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AbilityId *uint32 `protobuf:"varint,1,opt,name=ability_id,json=abilityId" json:"ability_id,omitempty"`
	Damage    *int32  `protobuf:"varint,2,opt,name=damage" json:"damage,omitempty"`
}

func (x *CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability) Reset() {
	*x = CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[153]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability) ProtoMessage() {}

func (x *CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[153]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{8, 0, 0}
}

func (x *CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability) GetAbilityId() uint32 {
	if x != nil && x.AbilityId != nil {
		return *x.AbilityId
	}
	return 0
}

func (x *CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability) GetDamage() int32 {
	if x != nil && x.Damage != nil {
		return *x.Damage
	}
	return 0
}

type CDOTAUserMsg_CourierKilledAlert_LostItem struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ItemAbilityId *int32  `protobuf:"varint,1,opt,name=item_ability_id,json=itemAbilityId" json:"item_ability_id,omitempty"`
	Quantity      *uint32 `protobuf:"varint,2,opt,name=quantity" json:"quantity,omitempty"`
}

func (x *CDOTAUserMsg_CourierKilledAlert_LostItem) Reset() {
	*x = CDOTAUserMsg_CourierKilledAlert_LostItem{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[154]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_CourierKilledAlert_LostItem) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_CourierKilledAlert_LostItem) ProtoMessage() {}

func (x *CDOTAUserMsg_CourierKilledAlert_LostItem) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[154]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_CourierKilledAlert_LostItem.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_CourierKilledAlert_LostItem) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{25, 0}
}

func (x *CDOTAUserMsg_CourierKilledAlert_LostItem) GetItemAbilityId() int32 {
	if x != nil && x.ItemAbilityId != nil {
		return *x.ItemAbilityId
	}
	return 0
}

func (x *CDOTAUserMsg_CourierKilledAlert_LostItem) GetQuantity() uint32 {
	if x != nil && x.Quantity != nil {
		return *x.Quantity
	}
	return 0
}

type CDOTAUserMsg_PredictionResult_Prediction struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ItemDef         *uint32                                           `protobuf:"varint,1,opt,name=item_def,json=itemDef" json:"item_def,omitempty"`
	NumCorrect      *uint32                                           `protobuf:"varint,2,opt,name=num_correct,json=numCorrect" json:"num_correct,omitempty"`
	NumFails        *uint32                                           `protobuf:"varint,3,opt,name=num_fails,json=numFails" json:"num_fails,omitempty"`
	Result          *CDOTAUserMsg_PredictionResult_Prediction_EResult `protobuf:"varint,4,opt,name=result,enum=CDOTAUserMsg_PredictionResult_Prediction_EResult,def=1" json:"result,omitempty"`
	GrantedItemDefs []uint32                                          `protobuf:"varint,6,rep,name=granted_item_defs,json=grantedItemDefs" json:"granted_item_defs,omitempty"`
}

// Default values for CDOTAUserMsg_PredictionResult_Prediction fields.
const (
	Default_CDOTAUserMsg_PredictionResult_Prediction_Result = CDOTAUserMsg_PredictionResult_Prediction_k_eResult_ItemGranted
)

func (x *CDOTAUserMsg_PredictionResult_Prediction) Reset() {
	*x = CDOTAUserMsg_PredictionResult_Prediction{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[155]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_PredictionResult_Prediction) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_PredictionResult_Prediction) ProtoMessage() {}

func (x *CDOTAUserMsg_PredictionResult_Prediction) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[155]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_PredictionResult_Prediction.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_PredictionResult_Prediction) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{40, 0}
}

func (x *CDOTAUserMsg_PredictionResult_Prediction) GetItemDef() uint32 {
	if x != nil && x.ItemDef != nil {
		return *x.ItemDef
	}
	return 0
}

func (x *CDOTAUserMsg_PredictionResult_Prediction) GetNumCorrect() uint32 {
	if x != nil && x.NumCorrect != nil {
		return *x.NumCorrect
	}
	return 0
}

func (x *CDOTAUserMsg_PredictionResult_Prediction) GetNumFails() uint32 {
	if x != nil && x.NumFails != nil {
		return *x.NumFails
	}
	return 0
}

func (x *CDOTAUserMsg_PredictionResult_Prediction) GetResult() CDOTAUserMsg_PredictionResult_Prediction_EResult {
	if x != nil && x.Result != nil {
		return *x.Result
	}
	return Default_CDOTAUserMsg_PredictionResult_Prediction_Result
}

func (x *CDOTAUserMsg_PredictionResult_Prediction) GetGrantedItemDefs() []uint32 {
	if x != nil {
		return x.GrantedItemDefs
	}
	return nil
}

type CDOTAResponseQuerySerialized_Fact struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Key                 *int32                                       `protobuf:"varint,1,req,name=key" json:"key,omitempty"`
	Valtype             *CDOTAResponseQuerySerialized_Fact_ValueType `protobuf:"varint,2,req,name=valtype,enum=CDOTAResponseQuerySerialized_Fact_ValueType,def=1" json:"valtype,omitempty"`
	ValNumeric          *float32                                     `protobuf:"fixed32,3,opt,name=val_numeric,json=valNumeric" json:"val_numeric,omitempty"`
	ValString           *string                                      `protobuf:"bytes,4,opt,name=val_string,json=valString" json:"val_string,omitempty"`
	ValStringtableIndex *int32                                       `protobuf:"varint,5,opt,name=val_stringtable_index,json=valStringtableIndex" json:"val_stringtable_index,omitempty"`
	ValIntNumeric       *int32                                       `protobuf:"zigzag32,6,opt,name=val_int_numeric,json=valIntNumeric" json:"val_int_numeric,omitempty"`
}

// Default values for CDOTAResponseQuerySerialized_Fact fields.
const (
	Default_CDOTAResponseQuerySerialized_Fact_Valtype = CDOTAResponseQuerySerialized_Fact_NUMERIC
)

func (x *CDOTAResponseQuerySerialized_Fact) Reset() {
	*x = CDOTAResponseQuerySerialized_Fact{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[156]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAResponseQuerySerialized_Fact) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAResponseQuerySerialized_Fact) ProtoMessage() {}

func (x *CDOTAResponseQuerySerialized_Fact) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[156]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAResponseQuerySerialized_Fact.ProtoReflect.Descriptor instead.
func (*CDOTAResponseQuerySerialized_Fact) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{41, 0}
}

func (x *CDOTAResponseQuerySerialized_Fact) GetKey() int32 {
	if x != nil && x.Key != nil {
		return *x.Key
	}
	return 0
}

func (x *CDOTAResponseQuerySerialized_Fact) GetValtype() CDOTAResponseQuerySerialized_Fact_ValueType {
	if x != nil && x.Valtype != nil {
		return *x.Valtype
	}
	return Default_CDOTAResponseQuerySerialized_Fact_Valtype
}

func (x *CDOTAResponseQuerySerialized_Fact) GetValNumeric() float32 {
	if x != nil && x.ValNumeric != nil {
		return *x.ValNumeric
	}
	return 0
}

func (x *CDOTAResponseQuerySerialized_Fact) GetValString() string {
	if x != nil && x.ValString != nil {
		return *x.ValString
	}
	return ""
}

func (x *CDOTAResponseQuerySerialized_Fact) GetValStringtableIndex() int32 {
	if x != nil && x.ValStringtableIndex != nil {
		return *x.ValStringtableIndex
	}
	return 0
}

func (x *CDOTAResponseQuerySerialized_Fact) GetValIntNumeric() int32 {
	if x != nil && x.ValIntNumeric != nil {
		return *x.ValIntNumeric
	}
	return 0
}

type CDOTAUserMsg_UnitEvent_Interval struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Start *float32 `protobuf:"fixed32,1,opt,name=start" json:"start,omitempty"`
	Range *float32 `protobuf:"fixed32,2,opt,name=range" json:"range,omitempty"`
}

func (x *CDOTAUserMsg_UnitEvent_Interval) Reset() {
	*x = CDOTAUserMsg_UnitEvent_Interval{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[157]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_UnitEvent_Interval) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_UnitEvent_Interval) ProtoMessage() {}

func (x *CDOTAUserMsg_UnitEvent_Interval) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[157]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_UnitEvent_Interval.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_UnitEvent_Interval) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{43, 0}
}

func (x *CDOTAUserMsg_UnitEvent_Interval) GetStart() float32 {
	if x != nil && x.Start != nil {
		return *x.Start
	}
	return 0
}

func (x *CDOTAUserMsg_UnitEvent_Interval) GetRange() float32 {
	if x != nil && x.Range != nil {
		return *x.Range
	}
	return 0
}

type CDOTAUserMsg_UnitEvent_Speech struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SpeechConcept *int32                           `protobuf:"varint,1,opt,name=speech_concept,json=speechConcept" json:"speech_concept,omitempty"`
	Response      *string                          `protobuf:"bytes,2,opt,name=response" json:"response,omitempty"`
	RecipientType *int32                           `protobuf:"varint,3,opt,name=recipient_type,json=recipientType" json:"recipient_type,omitempty"`
	Level         *int32                           `protobuf:"varint,4,opt,name=level" json:"level,omitempty"`
	Muteable      *bool                            `protobuf:"varint,5,opt,name=muteable,def=0" json:"muteable,omitempty"`
	Predelay      *CDOTAUserMsg_UnitEvent_Interval `protobuf:"bytes,6,opt,name=predelay" json:"predelay,omitempty"`
	Flags         *uint32                          `protobuf:"varint,7,opt,name=flags" json:"flags,omitempty"`
}

// Default values for CDOTAUserMsg_UnitEvent_Speech fields.
const (
	Default_CDOTAUserMsg_UnitEvent_Speech_Muteable = bool(false)
)

func (x *CDOTAUserMsg_UnitEvent_Speech) Reset() {
	*x = CDOTAUserMsg_UnitEvent_Speech{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[158]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_UnitEvent_Speech) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_UnitEvent_Speech) ProtoMessage() {}

func (x *CDOTAUserMsg_UnitEvent_Speech) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[158]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_UnitEvent_Speech.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_UnitEvent_Speech) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{43, 1}
}

func (x *CDOTAUserMsg_UnitEvent_Speech) GetSpeechConcept() int32 {
	if x != nil && x.SpeechConcept != nil {
		return *x.SpeechConcept
	}
	return 0
}

func (x *CDOTAUserMsg_UnitEvent_Speech) GetResponse() string {
	if x != nil && x.Response != nil {
		return *x.Response
	}
	return ""
}

func (x *CDOTAUserMsg_UnitEvent_Speech) GetRecipientType() int32 {
	if x != nil && x.RecipientType != nil {
		return *x.RecipientType
	}
	return 0
}

func (x *CDOTAUserMsg_UnitEvent_Speech) GetLevel() int32 {
	if x != nil && x.Level != nil {
		return *x.Level
	}
	return 0
}

func (x *CDOTAUserMsg_UnitEvent_Speech) GetMuteable() bool {
	if x != nil && x.Muteable != nil {
		return *x.Muteable
	}
	return Default_CDOTAUserMsg_UnitEvent_Speech_Muteable
}

func (x *CDOTAUserMsg_UnitEvent_Speech) GetPredelay() *CDOTAUserMsg_UnitEvent_Interval {
	if x != nil {
		return x.Predelay
	}
	return nil
}

func (x *CDOTAUserMsg_UnitEvent_Speech) GetFlags() uint32 {
	if x != nil && x.Flags != nil {
		return *x.Flags
	}
	return 0
}

type CDOTAUserMsg_UnitEvent_SpeechMute struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Delay *float32 `protobuf:"fixed32,1,opt,name=delay,def=0.5" json:"delay,omitempty"`
}

// Default values for CDOTAUserMsg_UnitEvent_SpeechMute fields.
const (
	Default_CDOTAUserMsg_UnitEvent_SpeechMute_Delay = float32(0.5)
)

func (x *CDOTAUserMsg_UnitEvent_SpeechMute) Reset() {
	*x = CDOTAUserMsg_UnitEvent_SpeechMute{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[159]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_UnitEvent_SpeechMute) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_UnitEvent_SpeechMute) ProtoMessage() {}

func (x *CDOTAUserMsg_UnitEvent_SpeechMute) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[159]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_UnitEvent_SpeechMute.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_UnitEvent_SpeechMute) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{43, 2}
}

func (x *CDOTAUserMsg_UnitEvent_SpeechMute) GetDelay() float32 {
	if x != nil && x.Delay != nil {
		return *x.Delay
	}
	return Default_CDOTAUserMsg_UnitEvent_SpeechMute_Delay
}

type CDOTAUserMsg_UnitEvent_AddGesture struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Activity        *int32   `protobuf:"varint,1,opt,name=activity" json:"activity,omitempty"`
	Slot            *int32   `protobuf:"varint,2,opt,name=slot" json:"slot,omitempty"`
	FadeIn          *float32 `protobuf:"fixed32,3,opt,name=fade_in,json=fadeIn,def=0" json:"fade_in,omitempty"`
	FadeOut         *float32 `protobuf:"fixed32,4,opt,name=fade_out,json=fadeOut,def=0.1" json:"fade_out,omitempty"`
	PlaybackRate    *float32 `protobuf:"fixed32,5,opt,name=playback_rate,json=playbackRate,def=1" json:"playback_rate,omitempty"`
	SequenceVariant *int32   `protobuf:"varint,6,opt,name=sequence_variant,json=sequenceVariant" json:"sequence_variant,omitempty"`
}

// Default values for CDOTAUserMsg_UnitEvent_AddGesture fields.
const (
	Default_CDOTAUserMsg_UnitEvent_AddGesture_FadeIn       = float32(0)
	Default_CDOTAUserMsg_UnitEvent_AddGesture_FadeOut      = float32(0.10000000149011612)
	Default_CDOTAUserMsg_UnitEvent_AddGesture_PlaybackRate = float32(1)
)

func (x *CDOTAUserMsg_UnitEvent_AddGesture) Reset() {
	*x = CDOTAUserMsg_UnitEvent_AddGesture{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[160]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_UnitEvent_AddGesture) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_UnitEvent_AddGesture) ProtoMessage() {}

func (x *CDOTAUserMsg_UnitEvent_AddGesture) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[160]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_UnitEvent_AddGesture.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_UnitEvent_AddGesture) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{43, 3}
}

func (x *CDOTAUserMsg_UnitEvent_AddGesture) GetActivity() int32 {
	if x != nil && x.Activity != nil {
		return *x.Activity
	}
	return 0
}

func (x *CDOTAUserMsg_UnitEvent_AddGesture) GetSlot() int32 {
	if x != nil && x.Slot != nil {
		return *x.Slot
	}
	return 0
}

func (x *CDOTAUserMsg_UnitEvent_AddGesture) GetFadeIn() float32 {
	if x != nil && x.FadeIn != nil {
		return *x.FadeIn
	}
	return Default_CDOTAUserMsg_UnitEvent_AddGesture_FadeIn
}

func (x *CDOTAUserMsg_UnitEvent_AddGesture) GetFadeOut() float32 {
	if x != nil && x.FadeOut != nil {
		return *x.FadeOut
	}
	return Default_CDOTAUserMsg_UnitEvent_AddGesture_FadeOut
}

func (x *CDOTAUserMsg_UnitEvent_AddGesture) GetPlaybackRate() float32 {
	if x != nil && x.PlaybackRate != nil {
		return *x.PlaybackRate
	}
	return Default_CDOTAUserMsg_UnitEvent_AddGesture_PlaybackRate
}

func (x *CDOTAUserMsg_UnitEvent_AddGesture) GetSequenceVariant() int32 {
	if x != nil && x.SequenceVariant != nil {
		return *x.SequenceVariant
	}
	return 0
}

type CDOTAUserMsg_UnitEvent_RemoveGesture struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Activity *int32 `protobuf:"varint,1,opt,name=activity" json:"activity,omitempty"`
}

func (x *CDOTAUserMsg_UnitEvent_RemoveGesture) Reset() {
	*x = CDOTAUserMsg_UnitEvent_RemoveGesture{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[161]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_UnitEvent_RemoveGesture) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_UnitEvent_RemoveGesture) ProtoMessage() {}

func (x *CDOTAUserMsg_UnitEvent_RemoveGesture) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[161]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_UnitEvent_RemoveGesture.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_UnitEvent_RemoveGesture) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{43, 4}
}

func (x *CDOTAUserMsg_UnitEvent_RemoveGesture) GetActivity() int32 {
	if x != nil && x.Activity != nil {
		return *x.Activity
	}
	return 0
}

type CDOTAUserMsg_UnitEvent_BloodImpact struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Scale   *int32 `protobuf:"varint,1,opt,name=scale" json:"scale,omitempty"`
	XNormal *int32 `protobuf:"varint,2,opt,name=x_normal,json=xNormal" json:"x_normal,omitempty"`
	YNormal *int32 `protobuf:"varint,3,opt,name=y_normal,json=yNormal" json:"y_normal,omitempty"`
}

func (x *CDOTAUserMsg_UnitEvent_BloodImpact) Reset() {
	*x = CDOTAUserMsg_UnitEvent_BloodImpact{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[162]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_UnitEvent_BloodImpact) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_UnitEvent_BloodImpact) ProtoMessage() {}

func (x *CDOTAUserMsg_UnitEvent_BloodImpact) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[162]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_UnitEvent_BloodImpact.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_UnitEvent_BloodImpact) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{43, 5}
}

func (x *CDOTAUserMsg_UnitEvent_BloodImpact) GetScale() int32 {
	if x != nil && x.Scale != nil {
		return *x.Scale
	}
	return 0
}

func (x *CDOTAUserMsg_UnitEvent_BloodImpact) GetXNormal() int32 {
	if x != nil && x.XNormal != nil {
		return *x.XNormal
	}
	return 0
}

func (x *CDOTAUserMsg_UnitEvent_BloodImpact) GetYNormal() int32 {
	if x != nil && x.YNormal != nil {
		return *x.YNormal
	}
	return 0
}

type CDOTAUserMsg_UnitEvent_FadeGesture struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Activity *int32 `protobuf:"varint,1,opt,name=activity" json:"activity,omitempty"`
}

func (x *CDOTAUserMsg_UnitEvent_FadeGesture) Reset() {
	*x = CDOTAUserMsg_UnitEvent_FadeGesture{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[163]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_UnitEvent_FadeGesture) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_UnitEvent_FadeGesture) ProtoMessage() {}

func (x *CDOTAUserMsg_UnitEvent_FadeGesture) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[163]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_UnitEvent_FadeGesture.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_UnitEvent_FadeGesture) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{43, 6}
}

func (x *CDOTAUserMsg_UnitEvent_FadeGesture) GetActivity() int32 {
	if x != nil && x.Activity != nil {
		return *x.Activity
	}
	return 0
}

type CDOTAUserMsg_StatsHeroPositionInfo_PositionPair struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PositionCategory *DOTA_POSITION_CATEGORY `protobuf:"varint,1,opt,name=position_category,json=positionCategory,enum=DOTA_POSITION_CATEGORY,def=0" json:"position_category,omitempty"`
	PositionCount    *uint32                 `protobuf:"varint,2,opt,name=position_count,json=positionCount" json:"position_count,omitempty"`
}

// Default values for CDOTAUserMsg_StatsHeroPositionInfo_PositionPair fields.
const (
	Default_CDOTAUserMsg_StatsHeroPositionInfo_PositionPair_PositionCategory = DOTA_POSITION_CATEGORY_DOTA_POSITION_NONE
)

func (x *CDOTAUserMsg_StatsHeroPositionInfo_PositionPair) Reset() {
	*x = CDOTAUserMsg_StatsHeroPositionInfo_PositionPair{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[164]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_StatsHeroPositionInfo_PositionPair) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_StatsHeroPositionInfo_PositionPair) ProtoMessage() {}

func (x *CDOTAUserMsg_StatsHeroPositionInfo_PositionPair) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[164]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_StatsHeroPositionInfo_PositionPair.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_StatsHeroPositionInfo_PositionPair) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{86, 0}
}

func (x *CDOTAUserMsg_StatsHeroPositionInfo_PositionPair) GetPositionCategory() DOTA_POSITION_CATEGORY {
	if x != nil && x.PositionCategory != nil {
		return *x.PositionCategory
	}
	return Default_CDOTAUserMsg_StatsHeroPositionInfo_PositionPair_PositionCategory
}

func (x *CDOTAUserMsg_StatsHeroPositionInfo_PositionPair) GetPositionCount() uint32 {
	if x != nil && x.PositionCount != nil {
		return *x.PositionCount
	}
	return 0
}

type CDOTAUserMsg_StatsTeamMinuteDetails_LocationPerformance struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	LocationCategory *uint32 `protobuf:"varint,1,opt,name=location_category,json=locationCategory" json:"location_category,omitempty"`
	StatType         *uint32 `protobuf:"varint,2,opt,name=stat_type,json=statType" json:"stat_type,omitempty"`
	Value            *uint32 `protobuf:"varint,3,opt,name=value" json:"value,omitempty"`
}

func (x *CDOTAUserMsg_StatsTeamMinuteDetails_LocationPerformance) Reset() {
	*x = CDOTAUserMsg_StatsTeamMinuteDetails_LocationPerformance{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[165]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_StatsTeamMinuteDetails_LocationPerformance) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_StatsTeamMinuteDetails_LocationPerformance) ProtoMessage() {}

func (x *CDOTAUserMsg_StatsTeamMinuteDetails_LocationPerformance) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[165]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_StatsTeamMinuteDetails_LocationPerformance.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_StatsTeamMinuteDetails_LocationPerformance) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{88, 0}
}

func (x *CDOTAUserMsg_StatsTeamMinuteDetails_LocationPerformance) GetLocationCategory() uint32 {
	if x != nil && x.LocationCategory != nil {
		return *x.LocationCategory
	}
	return 0
}

func (x *CDOTAUserMsg_StatsTeamMinuteDetails_LocationPerformance) GetStatType() uint32 {
	if x != nil && x.StatType != nil {
		return *x.StatType
	}
	return 0
}

func (x *CDOTAUserMsg_StatsTeamMinuteDetails_LocationPerformance) GetValue() uint32 {
	if x != nil && x.Value != nil {
		return *x.Value
	}
	return 0
}

type CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightTeamDetails struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Participants []int32 `protobuf:"varint,1,rep,name=participants" json:"participants,omitempty"`
	Deaths       []int32 `protobuf:"varint,2,rep,name=deaths" json:"deaths,omitempty"`
	GoldDelta    *uint32 `protobuf:"varint,3,opt,name=gold_delta,json=goldDelta" json:"gold_delta,omitempty"`
	XpDelta      *uint32 `protobuf:"varint,4,opt,name=xp_delta,json=xpDelta" json:"xp_delta,omitempty"`
}

func (x *CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightTeamDetails) Reset() {
	*x = CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightTeamDetails{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[166]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightTeamDetails) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightTeamDetails) ProtoMessage() {}

func (x *CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightTeamDetails) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[166]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightTeamDetails.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightTeamDetails) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{91, 0}
}

func (x *CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightTeamDetails) GetParticipants() []int32 {
	if x != nil {
		return x.Participants
	}
	return nil
}

func (x *CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightTeamDetails) GetDeaths() []int32 {
	if x != nil {
		return x.Deaths
	}
	return nil
}

func (x *CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightTeamDetails) GetGoldDelta() uint32 {
	if x != nil && x.GoldDelta != nil {
		return *x.GoldDelta
	}
	return 0
}

func (x *CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightTeamDetails) GetXpDelta() uint32 {
	if x != nil && x.XpDelta != nil {
		return *x.XpDelta
	}
	return 0
}

type CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightDetails struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	StartTime           *float32                                                           `protobuf:"fixed32,1,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
	EndTime             *float32                                                           `protobuf:"fixed32,2,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
	RadiantFightDetails *CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightTeamDetails `protobuf:"bytes,3,opt,name=radiant_fight_details,json=radiantFightDetails" json:"radiant_fight_details,omitempty"`
	DireFightDetails    *CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightTeamDetails `protobuf:"bytes,4,opt,name=dire_fight_details,json=direFightDetails" json:"dire_fight_details,omitempty"`
}

func (x *CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightDetails) Reset() {
	*x = CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightDetails{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[167]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightDetails) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightDetails) ProtoMessage() {}

func (x *CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightDetails) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[167]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightDetails.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightDetails) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{91, 1}
}

func (x *CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightDetails) GetStartTime() float32 {
	if x != nil && x.StartTime != nil {
		return *x.StartTime
	}
	return 0
}

func (x *CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightDetails) GetEndTime() float32 {
	if x != nil && x.EndTime != nil {
		return *x.EndTime
	}
	return 0
}

func (x *CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightDetails) GetRadiantFightDetails() *CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightTeamDetails {
	if x != nil {
		return x.RadiantFightDetails
	}
	return nil
}

func (x *CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightDetails) GetDireFightDetails() *CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightTeamDetails {
	if x != nil {
		return x.DireFightDetails
	}
	return nil
}

type CDOTAUserMsg_AllStarEvent_PlayerScore struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId     *int32  `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	ScoreSansKda *uint32 `protobuf:"varint,2,opt,name=score_sans_kda,json=scoreSansKda" json:"score_sans_kda,omitempty"`
}

func (x *CDOTAUserMsg_AllStarEvent_PlayerScore) Reset() {
	*x = CDOTAUserMsg_AllStarEvent_PlayerScore{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[168]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_AllStarEvent_PlayerScore) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_AllStarEvent_PlayerScore) ProtoMessage() {}

func (x *CDOTAUserMsg_AllStarEvent_PlayerScore) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[168]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_AllStarEvent_PlayerScore.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_AllStarEvent_PlayerScore) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{131, 0}
}

func (x *CDOTAUserMsg_AllStarEvent_PlayerScore) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_AllStarEvent_PlayerScore) GetScoreSansKda() uint32 {
	if x != nil && x.ScoreSansKda != nil {
		return *x.ScoreSansKda
	}
	return 0
}

type CDOTAUserMsg_PauseMinigameData_DataBit struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Index     *uint32 `protobuf:"varint,1,opt,name=index" json:"index,omitempty"`
	Data      *int32  `protobuf:"varint,2,opt,name=data" json:"data,omitempty"`
	DataExtra *int64  `protobuf:"varint,3,opt,name=data_extra,json=dataExtra" json:"data_extra,omitempty"`
}

func (x *CDOTAUserMsg_PauseMinigameData_DataBit) Reset() {
	*x = CDOTAUserMsg_PauseMinigameData_DataBit{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[169]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_PauseMinigameData_DataBit) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_PauseMinigameData_DataBit) ProtoMessage() {}

func (x *CDOTAUserMsg_PauseMinigameData_DataBit) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[169]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_PauseMinigameData_DataBit.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_PauseMinigameData_DataBit) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{138, 0}
}

func (x *CDOTAUserMsg_PauseMinigameData_DataBit) GetIndex() uint32 {
	if x != nil && x.Index != nil {
		return *x.Index
	}
	return 0
}

func (x *CDOTAUserMsg_PauseMinigameData_DataBit) GetData() int32 {
	if x != nil && x.Data != nil {
		return *x.Data
	}
	return 0
}

func (x *CDOTAUserMsg_PauseMinigameData_DataBit) GetDataExtra() int64 {
	if x != nil && x.DataExtra != nil {
		return *x.DataExtra
	}
	return 0
}

type CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	PlayerId *int32  `protobuf:"varint,1,opt,name=player_id,json=playerId" json:"player_id,omitempty"`
	Progress *uint32 `protobuf:"varint,6,opt,name=progress" json:"progress,omitempty"`
}

func (x *CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress) Reset() {
	*x = CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress{}
	if protoimpl.UnsafeEnabled {
		mi := &file_dota_usermessages_proto_msgTypes[170]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress) ProtoMessage() {}

func (x *CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress) ProtoReflect() protoreflect.Message {
	mi := &file_dota_usermessages_proto_msgTypes[170]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress.ProtoReflect.Descriptor instead.
func (*CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress) Descriptor() ([]byte, []int) {
	return file_dota_usermessages_proto_rawDescGZIP(), []int{144, 0}
}

func (x *CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress) GetPlayerId() int32 {
	if x != nil && x.PlayerId != nil {
		return *x.PlayerId
	}
	return 0
}

func (x *CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress) GetProgress() uint32 {
	if x != nil && x.Progress != nil {
		return *x.Progress
	}
	return 0
}

var File_dota_usermessages_proto protoreflect.FileDescriptor

var file_dota_usermessages_proto_rawDesc = []byte{
	0x0a, 0x17, 0x64, 0x6f, 0x74, 0x61, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6d, 0x65, 0x73, 0x73, 0x61,
	0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x16, 0x6e, 0x65, 0x74, 0x77, 0x6f,
	0x72, 0x6b, 0x62, 0x61, 0x73, 0x65, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x1a, 0x17, 0x64, 0x6f, 0x74, 0x61, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x65,
	0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x64, 0x6f, 0x74, 0x61,
	0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x34, 0x0a, 0x18, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73,
	0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x41, 0x49, 0x44, 0x65, 0x62, 0x75, 0x67, 0x4c, 0x69, 0x6e,
	0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3b, 0x0a, 0x11, 0x43,
	0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x69, 0x6e, 0x67,
	0x12, 0x12, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04,
	0x70, 0x69, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x22, 0x36, 0x0a, 0x17, 0x43, 0x44, 0x4f, 0x54,
	0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x77, 0x61, 0x70, 0x56, 0x65, 0x72,
	0x69, 0x66, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64,
	0x22, 0xee, 0x02, 0x0a, 0x16, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73,
	0x67, 0x5f, 0x43, 0x68, 0x61, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x04, 0x74,
	0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x44, 0x4f, 0x54, 0x41,
	0x5f, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x3a, 0x14, 0x43,
	0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x49, 0x4e, 0x56, 0x41,
	0x4c, 0x49, 0x44, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
	0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12,
	0x21, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x69, 0x64, 0x5f, 0x31, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x11, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x69,
	0x64, 0x31, 0x12, 0x21, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x69, 0x64, 0x5f, 0x32,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x79,
	0x65, 0x72, 0x69, 0x64, 0x32, 0x12, 0x21, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x69,
	0x64, 0x5f, 0x33, 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x09, 0x70,
	0x6c, 0x61, 0x79, 0x65, 0x72, 0x69, 0x64, 0x33, 0x12, 0x21, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79,
	0x65, 0x72, 0x69, 0x64, 0x5f, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x3a, 0x02, 0x2d, 0x31,
	0x52, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x69, 0x64, 0x34, 0x12, 0x21, 0x0a, 0x0a, 0x70,
	0x6c, 0x61, 0x79, 0x65, 0x72, 0x69, 0x64, 0x5f, 0x35, 0x18, 0x07, 0x20, 0x01, 0x28, 0x11, 0x3a,
	0x02, 0x2d, 0x31, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x69, 0x64, 0x35, 0x12, 0x21,
	0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x69, 0x64, 0x5f, 0x36, 0x18, 0x08, 0x20, 0x01,
	0x28, 0x11, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x69, 0x64,
	0x36, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c,
	0x75, 0x65, 0x33, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x33, 0x22, 0x82, 0x01, 0x0a, 0x14, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d,
	0x73, 0x67, 0x5f, 0x42, 0x6f, 0x74, 0x43, 0x68, 0x61, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c,
	0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70,
	0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61,
	0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
	0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x61,
	0x6d, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x74, 0x65,
	0x61, 0x6d, 0x4f, 0x6e, 0x6c, 0x79, 0x22, 0x90, 0x01, 0x0a, 0x20, 0x43, 0x44, 0x4f, 0x54, 0x41,
	0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x48, 0x65,
	0x72, 0x6f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69,
	0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65,
	0x78, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x5f, 0x70,
	0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56,
	0x65, 0x63, 0x74, 0x6f, 0x72, 0x32, 0x44, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x50, 0x6f,
	0x73, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x06, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x22, 0xb7, 0x01, 0x0a, 0x1e, 0x43, 0x44,
	0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x6f, 0x6d, 0x62, 0x61,
	0x74, 0x4c, 0x6f, 0x67, 0x42, 0x75, 0x6c, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3e, 0x0a, 0x0e,
	0x63, 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x44, 0x4f, 0x54, 0x41, 0x43,
	0x6f, 0x6d, 0x62, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x63,
	0x6f, 0x6d, 0x62, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09,
	0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52,
	0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75,
	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x64, 0x75,
	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72,
	0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65,
	0x72, 0x49, 0x64, 0x22, 0x71, 0x0a, 0x25, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72,
	0x4d, 0x73, 0x67, 0x5f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6c, 0x65, 0x50, 0x61,
	0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x43, 0x50, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x0d,
	0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x69, 0x6e,
	0x74, 0x12, 0x23, 0x0a, 0x06, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x0b, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06,
	0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22, 0xe5, 0x02, 0x0a, 0x1c, 0x43, 0x44, 0x4f, 0x54, 0x41,
	0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x4d, 0x69, 0x6e, 0x69, 0x4b, 0x69, 0x6c, 0x6c,
	0x43, 0x61, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x44, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x61, 0x63,
	0x6b, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x43, 0x44, 0x4f,
	0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x4d, 0x69, 0x6e, 0x69, 0x4b, 0x69,
	0x6c, 0x6c, 0x43, 0x61, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b,
	0x65, 0x72, 0x52, 0x09, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x1a, 0xfe, 0x01,
	0x0a, 0x08, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x74,
	0x74, 0x61, 0x63, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x61, 0x74,
	0x74, 0x61, 0x63, 0x6b, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f,
	0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x6f,
	0x74, 0x61, 0x6c, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x4c, 0x0a, 0x09, 0x61, 0x62, 0x69,
	0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x43,
	0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x4d, 0x69, 0x6e, 0x69,
	0x4b, 0x69, 0x6c, 0x6c, 0x43, 0x61, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x74, 0x74, 0x61,
	0x63, 0x6b, 0x65, 0x72, 0x2e, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x09, 0x61, 0x62,
	0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x74, 0x74, 0x61, 0x63,
	0x6b, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,
	0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x40, 0x0a, 0x07,
	0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x62, 0x69, 0x6c, 0x69,
	0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x62, 0x69,
	0x6c, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x51,
	0x0a, 0x1d, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x47,
	0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12,
	0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05,
	0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x22, 0x6a, 0x0a, 0x21, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73,
	0x67, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x44, 0x69, 0x72,
	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x43, 0x4d, 0x73, 0x67,
	0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x02, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x75, 0x0a,
	0x19, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x4c, 0x6f,
	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c,
	0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70,
	0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16,
	0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x4d, 0x73, 0x67, 0x5f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x50, 0x69, 0x6e, 0x67, 0x22, 0xc8, 0x01, 0x0a, 0x1d, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73,
	0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72,
	0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x1c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72,
	0x5f, 0x69, 0x64, 0x5f, 0x6f, 0x66, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f,
	0x70, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x70, 0x6c,
	0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x4f, 0x66, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c,
	0x50, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79,
	0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x65, 0x6e,
	0x74, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x63, 0x6f,
	0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x69, 0x63,
	0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56,
	0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22,
	0x69, 0x0a, 0x16, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f,
	0x49, 0x74, 0x65, 0x6d, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61,
	0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c,
	0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x0a, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x61,
	0x6c, 0x65, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x43, 0x44, 0x4f,
	0x54, 0x41, 0x4d, 0x73, 0x67, 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52,
	0x09, 0x69, 0x74, 0x65, 0x6d, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x22, 0xcb, 0x02, 0x0a, 0x1b, 0x43,
	0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x45, 0x6e, 0x65, 0x6d,
	0x79, 0x49, 0x74, 0x65, 0x6d, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c,
	0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70,
	0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x61, 0x72, 0x67, 0x65,
	0x74, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49,
	0x64, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74,
	0x79, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x69, 0x74, 0x65, 0x6d,
	0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x09, 0x72, 0x75, 0x6e,
	0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31,
	0x52, 0x08, 0x72, 0x75, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x6e,
	0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65,
	0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0a, 0x69, 0x74, 0x65, 0x6d, 0x5f,
	0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52,
	0x09, 0x69, 0x74, 0x65, 0x6d, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x2b, 0x0a, 0x0f, 0x70, 0x72,
	0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x73, 0x18, 0x07, 0x20,
	0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x0e, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79,
	0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x11, 0x73, 0x65, 0x63, 0x6f, 0x6e,
	0x64, 0x61, 0x72, 0x79, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01,
	0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x10, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72,
	0x79, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x73, 0x22, 0xec, 0x01, 0x0a, 0x1a, 0x43, 0x44, 0x4f,
	0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69,
	0x65, 0x72, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65,
	0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79,
	0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6e, 0x61,
	0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e,
	0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5f, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x43,
	0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x62, 0x75, 0x66,
	0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x44, 0x65, 0x62, 0x75, 0x66,
	0x66, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x74, 0x69,
	0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67,
	0x65, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x65,
	0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x18,
	0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x52, 0x65,
	0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x88, 0x01, 0x0a, 0x18, 0x43, 0x44, 0x4f, 0x54,
	0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x48, 0x50, 0x4d, 0x61, 0x6e, 0x61, 0x41,
	0x6c, 0x65, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49,
	0x64, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x74, 0x69,
	0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67,
	0x65, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x68,
	0x6f, 0x77, 0x5f, 0x72, 0x61, 0x77, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x68, 0x6f, 0x77, 0x52, 0x61, 0x77, 0x56, 0x61, 0x6c, 0x75,
	0x65, 0x73, 0x22, 0x52, 0x0a, 0x17, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d,
	0x73, 0x67, 0x5f, 0x47, 0x6c, 0x79, 0x70, 0x68, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x12, 0x1b, 0x0a,
	0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x65,
	0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6e, 0x65,
	0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x22, 0x52, 0x0a, 0x17, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55,
	0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x52, 0x61, 0x64, 0x61, 0x72, 0x41, 0x6c, 0x65, 0x72,
	0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a,
	0x0a, 0x08, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x08, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x22, 0xbe, 0x01, 0x0a, 0x1e, 0x43,
	0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x57, 0x69, 0x6c, 0x6c,
	0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x12, 0x26, 0x0a,
	0x0f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x69, 0x74, 0x65, 0x6d, 0x41, 0x62, 0x69, 0x6c,
	0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f,
	0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72,
	0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x67, 0x6f, 0x6c, 0x64, 0x5f, 0x72, 0x65, 0x6d, 0x61, 0x69,
	0x6e, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x67, 0x6f, 0x6c, 0x64,
	0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x75, 0x67,
	0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69,
	0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74,
	0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x22, 0xa0, 0x01, 0x0a, 0x1f,
	0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x45, 0x6d, 0x70,
	0x74, 0x79, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x12,
	0x28, 0x0a, 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72,
	0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63,
	0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x61, 0x72,
	0x67, 0x65, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65,
	0x72, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x5f,
	0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x63,
	0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0x98,
	0x01, 0x0a, 0x23, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f,
	0x4d, 0x61, 0x72, 0x73, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x4f, 0x66, 0x42, 0x6c, 0x6f, 0x6f, 0x64,
	0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
	0x5f, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d,
	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x25, 0x0a,
	0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x68, 0x61,
	0x6e, 0x64, 0x6c, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x77, 0x61, 0x72, 0x72, 0x69, 0x6f, 0x72, 0x5f,
	0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x77, 0x61, 0x72,
	0x72, 0x69, 0x6f, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x72, 0x0a, 0x1f, 0x43, 0x44, 0x4f,
	0x54, 0x41, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4d, 0x73, 0x67, 0x5f, 0x49, 0x6e, 0x76, 0x6f,
	0x6b, 0x65, 0x72, 0x53, 0x70, 0x65, 0x6c, 0x6c, 0x43, 0x61, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x0a,
	0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x0b, 0x2e, 0x43, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4d, 0x73, 0x67, 0x52, 0x09, 0x65,
	0x6e, 0x74, 0x69, 0x74, 0x79, 0x4d, 0x73, 0x67, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x61, 0x73, 0x74,
	0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x0c, 0x63, 0x61, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x22, 0x3d, 0x0a,
	0x1e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x42, 0x75,
	0x79, 0x42, 0x61, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x12,
	0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x22, 0xd5, 0x01, 0x0a,
	0x1a, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x51, 0x75,
	0x69, 0x63, 0x6b, 0x42, 0x75, 0x79, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70,
	0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08,
	0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x74, 0x65, 0x6d,
	0x5f, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x0d, 0x69, 0x74, 0x65, 0x6d, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x64,
	0x12, 0x1b, 0x0a, 0x09, 0x67, 0x6f, 0x6c, 0x64, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x08, 0x67, 0x6f, 0x6c, 0x64, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x32, 0x0a,
	0x15, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x73,
	0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x69, 0x74,
	0x65, 0x6d, 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64,
	0x73, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x62, 0x75, 0x79, 0x62, 0x61, 0x63,
	0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x73, 0x68, 0x6f, 0x77, 0x42, 0x75, 0x79,
	0x62, 0x61, 0x63, 0x6b, 0x22, 0x85, 0x03, 0x0a, 0x1f, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73,
	0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x6f, 0x75, 0x72, 0x69, 0x65, 0x72, 0x4b, 0x69, 0x6c,
	0x6c, 0x65, 0x64, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x12, 0x1d, 0x0a, 0x0a,
	0x67, 0x6f, 0x6c, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d,
	0x52, 0x09, 0x67, 0x6f, 0x6c, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x65,
	0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x0c, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65,
	0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x48,
	0x0a, 0x0a, 0x6c, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x29, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73,
	0x67, 0x5f, 0x43, 0x6f, 0x75, 0x72, 0x69, 0x65, 0x72, 0x4b, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x41,
	0x6c, 0x65, 0x72, 0x74, 0x2e, 0x4c, 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x09, 0x6c,
	0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x6b, 0x69, 0x6c, 0x6c,
	0x65, 0x72, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x0e, 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72,
	0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x6f, 0x77, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x61,
	0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6f, 0x77,
	0x6e, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x1a, 0x4e, 0x0a, 0x08,
	0x4c, 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x74, 0x65, 0x6d,
	0x5f, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x0d, 0x69, 0x74, 0x65, 0x6d, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x64,
	0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x22, 0xc9, 0x01, 0x0a,
	0x19, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x4d, 0x69,
	0x6e, 0x69, 0x6d, 0x61, 0x70, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x76,
	0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09,
	0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6e, 0x74,
	0x69, 0x74, 0x79, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d,
	0x52, 0x0c, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x0c,
	0x0a, 0x01, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x78, 0x12, 0x0c, 0x0a, 0x01,
	0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75,
	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x75,
	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74,
	0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x06,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x69,
	0x74, 0x79, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x60, 0x0a, 0x14, 0x43, 0x44, 0x4f, 0x54,
	0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x4d, 0x61, 0x70, 0x4c, 0x69, 0x6e, 0x65,
	0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2b, 0x0a,
	0x07, 0x6d, 0x61, 0x70, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11,
	0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x4d, 0x73, 0x67, 0x5f, 0x4d, 0x61, 0x70, 0x4c, 0x69, 0x6e,
	0x65, 0x52, 0x07, 0x6d, 0x61, 0x70, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0xa5, 0x01, 0x0a, 0x1e, 0x43,
	0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x4d, 0x69, 0x6e, 0x69,
	0x6d, 0x61, 0x70, 0x44, 0x65, 0x62, 0x75, 0x67, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x27, 0x0a,
	0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x0b, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x6c, 0x6f,
	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04,
	0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65,
	0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x02, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05,
	0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64,
	0x65, 0x78, 0x22, 0xff, 0x03, 0x0a, 0x23, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72,
	0x4d, 0x73, 0x67, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x61, 0x72,
	0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6c, 0x65, 0x12, 0x23, 0x0a, 0x06, 0x6f, 0x72,
	0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x43, 0x4d, 0x73,
	0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12,
	0x29, 0x0a, 0x08, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x0d, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x32, 0x44,
	0x52, 0x08, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e,
	0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x6e,
	0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63,
	0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d,
	0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a,
	0x06, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68,
	0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x31, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x43, 0x4d,
	0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x32, 0x44, 0x52, 0x0c, 0x61, 0x63, 0x63, 0x65,
	0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f,
	0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x61, 0x78,
	0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x6f, 0x77, 0x5f, 0x72, 0x61, 0x64,
	0x69, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x66, 0x6f, 0x77, 0x52, 0x61,
	0x64, 0x69, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x79, 0x5f, 0x66,
	0x6f, 0x77, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x0f, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x79, 0x46, 0x6f, 0x77, 0x52, 0x65, 0x76, 0x65, 0x61, 0x6c,
	0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01,
	0x28, 0x02, 0x52, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x24, 0x0a, 0x0d,
	0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x67, 0x65, 0x6d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x0c, 0x20,
	0x01, 0x28, 0x07, 0x52, 0x0d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x67, 0x65, 0x6d, 0x63, 0x6f, 0x6c,
	0x6f, 0x72, 0x12, 0x50, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x63,
	0x70, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x43,
	0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x72, 0x6f, 0x6a,
	0x65, 0x63, 0x74, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x43, 0x50,
	0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x43, 0x70,
	0x44, 0x61, 0x74, 0x61, 0x22, 0x3e, 0x0a, 0x24, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65,
	0x72, 0x4d, 0x73, 0x67, 0x5f, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x4c, 0x69, 0x6e, 0x65,
	0x61, 0x72, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06,
	0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x61,
	0x6e, 0x64, 0x6c, 0x65, 0x22, 0x66, 0x0a, 0x25, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65,
	0x72, 0x4d, 0x73, 0x67, 0x5f, 0x44, 0x6f, 0x64, 0x67, 0x65, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x69,
	0x6e, 0x67, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x1a, 0x0a,
	0x08, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x02, 0x28, 0x05, 0x52,
	0x08, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x74, 0x74,
	0x61, 0x63, 0x6b, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x73, 0x4f, 0x6e, 0x6c, 0x79, 0x22, 0x81, 0x01, 0x0a,
	0x21, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x70,
	0x65, 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6c, 0x69,
	0x63, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01,
	0x20, 0x02, 0x28, 0x05, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1d,
	0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a,
	0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78,
	0x22, 0xb9, 0x02, 0x0a, 0x26, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73,
	0x67, 0x5f, 0x53, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65,
	0x72, 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x65,
	0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65,
	0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72,
	0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6f, 0x72, 0x64,
	0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x18,
	0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c,
	0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12,
	0x1d, 0x0a, 0x0a, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x27,
	0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x0b, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x70,
	0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65,
	0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x27, 0x0a,
	0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72,
	0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65,
	0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18,
	0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x22, 0x99, 0x01, 0x0a,
	0x1d, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x4e, 0x65,
	0x76, 0x65, 0x72, 0x6d, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x69, 0x65, 0x6d, 0x12, 0x23,
	0x0a, 0x0d, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x48, 0x61, 0x6e,
	0x64, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x06, 0x6f, 0x72, 0x69,
	0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x43, 0x4d, 0x73, 0x67,
	0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x18,
	0x0a, 0x07, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x07, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x22, 0x60, 0x0a, 0x1b, 0x43, 0x44, 0x4f, 0x54,
	0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64,
	0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61,
	0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
	0x65, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75,
	0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75,
	0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x5b, 0x0a, 0x15, 0x43, 0x44,
	0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x48, 0x75, 0x64, 0x45, 0x72,
	0x72, 0x6f, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x27,
	0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65,
	0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63,
	0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x88, 0x01, 0x0a, 0x1b, 0x43, 0x44, 0x4f, 0x54,
	0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x43,
	0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x6e,
	0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x6e,
	0x64, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6f, 0x6c, 0x64,
	0x6f, 0x77, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x63, 0x6f, 0x6f, 0x6c, 0x64,
	0x6f, 0x77, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65,
	0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x64,
	0x65, 0x78, 0x22, 0x35, 0x0a, 0x1f, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d,
	0x73, 0x67, 0x5f, 0x53, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x41, 0x75, 0x74, 0x6f, 0x62, 0x75,
	0x79, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x78, 0x0a, 0x1b, 0x43, 0x44, 0x4f,
	0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x48, 0x61, 0x6c, 0x6c, 0x6f, 0x77,
	0x65, 0x65, 0x6e, 0x44, 0x72, 0x6f, 0x70, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x74, 0x65, 0x6d,
	0x5f, 0x64, 0x65, 0x66, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x69, 0x74, 0x65,
	0x6d, 0x44, 0x65, 0x66, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f,
	0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65,
	0x72, 0x49, 0x64, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x69, 0x7a, 0x65, 0x5f, 0x6c, 0x69,
	0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x72, 0x69, 0x7a, 0x65, 0x4c,
	0x69, 0x73, 0x74, 0x22, 0xf5, 0x03, 0x0a, 0x1d, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65,
	0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52,
	0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
	0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12,
	0x18, 0x0a, 0x07, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x07, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x12, 0x4b, 0x0a, 0x0b, 0x70, 0x72, 0x65,
	0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29,
	0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x72,
	0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x50,
	0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x64, 0x69,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xb2, 0x02, 0x0a, 0x0a, 0x50, 0x72, 0x65, 0x64, 0x69,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x64, 0x65,
	0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x69, 0x74, 0x65, 0x6d, 0x44, 0x65, 0x66,
	0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63,
	0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x75, 0x6d, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6e, 0x75, 0x6d, 0x46, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x60,
	0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31,
	0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x72,
	0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x50,
	0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x52, 0x65, 0x73, 0x75, 0x6c,
	0x74, 0x3a, 0x15, 0x6b, 0x5f, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x49, 0x74, 0x65,
	0x6d, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
	0x12, 0x2a, 0x0a, 0x11, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x74, 0x65, 0x6d,
	0x5f, 0x64, 0x65, 0x66, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0f, 0x67, 0x72, 0x61,
	0x6e, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x44, 0x65, 0x66, 0x73, 0x22, 0x3d, 0x0a, 0x07,
	0x45, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x19, 0x0a, 0x15, 0x6b, 0x5f, 0x65, 0x52, 0x65,
	0x73, 0x75, 0x6c, 0x74, 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64,
	0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x5f, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f,
	0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x65, 0x64, 0x10, 0x02, 0x22, 0xae, 0x03, 0x0a, 0x1c,
	0x43, 0x44, 0x4f, 0x54, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x51, 0x75, 0x65,
	0x72, 0x79, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x38, 0x0a, 0x05,
	0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x43, 0x44,
	0x4f, 0x54, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79,
	0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x2e, 0x46, 0x61, 0x63, 0x74, 0x52,
	0x05, 0x66, 0x61, 0x63, 0x74, 0x73, 0x1a, 0xd3, 0x02, 0x0a, 0x04, 0x46, 0x61, 0x63, 0x74, 0x12,
	0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x02, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65,
	0x79, 0x12, 0x4f, 0x0a, 0x07, 0x76, 0x61, 0x6c, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x02,
	0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65,
	0x64, 0x2e, 0x46, 0x61, 0x63, 0x74, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65,
	0x3a, 0x07, 0x4e, 0x55, 0x4d, 0x45, 0x52, 0x49, 0x43, 0x52, 0x07, 0x76, 0x61, 0x6c, 0x74, 0x79,
	0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x61, 0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69,
	0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x65,
	0x72, 0x69, 0x63, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e,
	0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x53, 0x74, 0x72, 0x69,
	0x6e, 0x67, 0x12, 0x32, 0x0a, 0x15, 0x76, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67,
	0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x74, 0x61, 0x62, 0x6c,
	0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0f, 0x76, 0x61, 0x6c, 0x5f, 0x69, 0x6e,
	0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52,
	0x0d, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x22, 0x4c,
	0x0a, 0x09, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x4e,
	0x55, 0x4d, 0x45, 0x52, 0x49, 0x43, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49,
	0x4e, 0x47, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x54, 0x41,
	0x42, 0x4c, 0x45, 0x5f, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x49,
	0x4e, 0x54, 0x5f, 0x4e, 0x55, 0x4d, 0x45, 0x52, 0x49, 0x43, 0x10, 0x04, 0x22, 0xd0, 0x01, 0x0a,
	0x18, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x4d, 0x61, 0x74, 0x63,
	0x68, 0x4f, 0x6e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x70, 0x65,
	0x65, 0x63, 0x68, 0x5f, 0x63, 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x0d, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74,
	0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79,
	0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69,
	0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x43, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d,
	0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x51, 0x75,
	0x65, 0x72, 0x79, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x52, 0x0d, 0x72,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x21, 0x0a, 0x0a,
	0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x73, 0x65, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0f,
	0x3a, 0x01, 0x30, 0x52, 0x0a, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x73, 0x65, 0x65, 0x64, 0x22,
	0xd2, 0x0a, 0x0a, 0x16, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67,
	0x5f, 0x55, 0x6e, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x08, 0x6d, 0x73,
	0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x45,
	0x44, 0x6f, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
	0x65, 0x73, 0x3a, 0x10, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x53, 0x50,
	0x45, 0x45, 0x43, 0x48, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a,
	0x0c, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20,
	0x02, 0x28, 0x05, 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78,
	0x12, 0x36, 0x0a, 0x06, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1e, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f,
	0x55, 0x6e, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68,
	0x52, 0x06, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x12, 0x43, 0x0a, 0x0b, 0x73, 0x70, 0x65, 0x65,
	0x63, 0x68, 0x5f, 0x6d, 0x75, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e,
	0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x55, 0x6e, 0x69,
	0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x4d, 0x75, 0x74,
	0x65, 0x52, 0x0a, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x4d, 0x75, 0x74, 0x65, 0x12, 0x43, 0x0a,
	0x0b, 0x61, 0x64, 0x64, 0x5f, 0x67, 0x65, 0x73, 0x74, 0x75, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x22, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73,
	0x67, 0x5f, 0x55, 0x6e, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x64, 0x64, 0x47,
	0x65, 0x73, 0x74, 0x75, 0x72, 0x65, 0x52, 0x0a, 0x61, 0x64, 0x64, 0x47, 0x65, 0x73, 0x74, 0x75,
	0x72, 0x65, 0x12, 0x4c, 0x0a, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x67, 0x65, 0x73,
	0x74, 0x75, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x43, 0x44, 0x4f,
	0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x55, 0x6e, 0x69, 0x74, 0x45, 0x76,
	0x65, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x47, 0x65, 0x73, 0x74, 0x75, 0x72,
	0x65, 0x52, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x47, 0x65, 0x73, 0x74, 0x75, 0x72, 0x65,
	0x12, 0x46, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x6f, 0x64, 0x5f, 0x69, 0x6d, 0x70, 0x61, 0x63, 0x74,
	0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73,
	0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x55, 0x6e, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e,
	0x42, 0x6c, 0x6f, 0x6f, 0x64, 0x49, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x52, 0x0b, 0x62, 0x6c, 0x6f,
	0x6f, 0x64, 0x49, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x12, 0x46, 0x0a, 0x0c, 0x66, 0x61, 0x64, 0x65,
	0x5f, 0x67, 0x65, 0x73, 0x74, 0x75, 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23,
	0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x55, 0x6e,
	0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x46, 0x61, 0x64, 0x65, 0x47, 0x65, 0x73, 0x74,
	0x75, 0x72, 0x65, 0x52, 0x0b, 0x66, 0x61, 0x64, 0x65, 0x47, 0x65, 0x73, 0x74, 0x75, 0x72, 0x65,
	0x12, 0x4e, 0x0a, 0x16, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68,
	0x5f, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x19, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x4d, 0x61,
	0x74, 0x63, 0x68, 0x4f, 0x6e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x13, 0x73, 0x70, 0x65,
	0x65, 0x63, 0x68, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x6e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74,
	0x1a, 0x36, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05,
	0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x74, 0x61,
	0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x02, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x1a, 0xff, 0x01, 0x0a, 0x06, 0x53, 0x70, 0x65,
	0x65, 0x63, 0x68, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x5f, 0x63, 0x6f,
	0x6e, 0x63, 0x65, 0x70, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x73, 0x70, 0x65,
	0x65, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69,
	0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d,
	0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a,
	0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65,
	0x76, 0x65, 0x6c, 0x12, 0x21, 0x0a, 0x08, 0x6d, 0x75, 0x74, 0x65, 0x61, 0x62, 0x6c, 0x65, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x08, 0x6d, 0x75,
	0x74, 0x65, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x64, 0x65, 0x6c,
	0x61, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41,
	0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x55, 0x6e, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e,
	0x74, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x65, 0x64,
	0x65, 0x6c, 0x61, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20,
	0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x1a, 0x27, 0x0a, 0x0a, 0x53, 0x70,
	0x65, 0x65, 0x63, 0x68, 0x4d, 0x75, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61,
	0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x3a, 0x03, 0x30, 0x2e, 0x35, 0x52, 0x05, 0x64, 0x65,
	0x6c, 0x61, 0x79, 0x1a, 0xcb, 0x01, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x47, 0x65, 0x73, 0x74, 0x75,
	0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x12,
	0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x6c,
	0x6f, 0x74, 0x12, 0x1a, 0x0a, 0x07, 0x66, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x02, 0x3a, 0x01, 0x30, 0x52, 0x06, 0x66, 0x61, 0x64, 0x65, 0x49, 0x6e, 0x12, 0x1e,
	0x0a, 0x08, 0x66, 0x61, 0x64, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02,
	0x3a, 0x03, 0x30, 0x2e, 0x31, 0x52, 0x07, 0x66, 0x61, 0x64, 0x65, 0x4f, 0x75, 0x74, 0x12, 0x26,
	0x0a, 0x0d, 0x70, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x02, 0x3a, 0x01, 0x31, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x62, 0x61,
	0x63, 0x6b, 0x52, 0x61, 0x74, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e,
	0x63, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e,
	0x74, 0x1a, 0x2b, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x47, 0x65, 0x73, 0x74, 0x75,
	0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x1a, 0x59,
	0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x6f, 0x64, 0x49, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x12, 0x14, 0x0a,
	0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x63,
	0x61, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x78, 0x5f, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x78, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x12, 0x19,
	0x0a, 0x08, 0x79, 0x5f, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x07, 0x79, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x1a, 0x29, 0x0a, 0x0b, 0x46, 0x61, 0x64,
	0x65, 0x47, 0x65, 0x73, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69,
	0x76, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69,
	0x76, 0x69, 0x74, 0x79, 0x22, 0x44, 0x0a, 0x1a, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65,
	0x72, 0x4d, 0x73, 0x67, 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73,
	0x65, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x61, 0x62, 0x69, 0x6c, 0x69,
	0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x69, 0x74, 0x65,
	0x6d, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x64, 0x22, 0x3f, 0x0a, 0x15, 0x43, 0x44,
	0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x53,
	0x6f, 0x6c, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x61, 0x62, 0x69, 0x6c,
	0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x69, 0x74,
	0x65, 0x6d, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x64, 0x22, 0x94, 0x01, 0x0a, 0x16,
	0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x49, 0x74, 0x65,
	0x6d, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x18,
	0x0a, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x07, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61, 0x72, 0x69,
	0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x61, 0x72, 0x69, 0x74, 0x79,
	0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x74, 0x65, 0x6d,
	0x64, 0x65, 0x66, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x69, 0x74, 0x65, 0x6d, 0x64,
	0x65, 0x66, 0x22, 0x95, 0x02, 0x0a, 0x1a, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72,
	0x4d, 0x73, 0x67, 0x5f, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x65, 0x61, 0x64, 0x45, 0x76, 0x65, 0x6e,
	0x74, 0x12, 0x4c, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70,
	0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4f,
	0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x3a, 0x13, 0x4f,
	0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x47, 0x4f,
	0x4c, 0x44, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12,
	0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f,
	0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x6c, 0x61,
	0x79, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x27, 0x0a, 0x0f, 0x74,
	0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x69,
	0x6e, 0x64, 0x65, 0x78, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70,
	0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x79,
	0x65, 0x72, 0x45, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x4e, 0x0a, 0x1c, 0x43, 0x44,
	0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x54, 0x75, 0x74, 0x6f, 0x72,
	0x69, 0x61, 0x6c, 0x54, 0x69, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
	0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a,
	0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x22, 0x7d, 0x0a, 0x1b, 0x43, 0x44,
	0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x54, 0x75, 0x74, 0x6f, 0x72,
	0x69, 0x61, 0x6c, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x61,
	0x64, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64,
	0x69, 0x6e, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x6d, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x62,
	0x6f, 0x64, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12,
	0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x26, 0x0a, 0x24, 0x43, 0x44, 0x4f,
	0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x54, 0x75, 0x74, 0x6f, 0x72, 0x69,
	0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x61, 0x70, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
	0x6e, 0x22, 0x7d, 0x0a, 0x1f, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73,
	0x67, 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x54, 0x6f, 0x6f,
	0x6c, 0x54, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65,
	0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1a,
	0x0a, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c,
	0x6f, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x73, 0x65,
	0x22, 0x68, 0x0a, 0x16, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67,
	0x5f, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c,
	0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70,
	0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6c, 0x64,
	0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x43, 0x44, 0x4f,
	0x54, 0x41, 0x4d, 0x73, 0x67, 0x5f, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x4c, 0x69, 0x6e, 0x65, 0x52,
	0x09, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0xc1, 0x01, 0x0a, 0x16, 0x43,
	0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x68, 0x61, 0x74,
	0x57, 0x68, 0x65, 0x65, 0x6c, 0x12, 0x26, 0x0a, 0x0f, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x6d, 0x65,
	0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d,
	0x63, 0x68, 0x61, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x1b, 0x0a,
	0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09,
	0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x61, 0x72,
	0x61, 0x6d, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d,
	0x52, 0x0b, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1f, 0x0a,
	0x0b, 0x65, 0x6d, 0x6f, 0x74, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x0a, 0x65, 0x6d, 0x6f, 0x74, 0x69, 0x63, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x80,
	0x01, 0x0a, 0x1d, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f,
	0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x58, 0x6d, 0x61, 0x73, 0x47, 0x69, 0x66, 0x74,
	0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a,
	0x09, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x08, 0x69, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6e,
	0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x0d, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x6c, 0x6f,
	0x74, 0x22, 0xf7, 0x01, 0x0a, 0x17, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d,
	0x73, 0x67, 0x5f, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x75, 0x72, 0x76, 0x65, 0x79, 0x12, 0x1b, 0x0a,
	0x09, 0x73, 0x75, 0x72, 0x76, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x08, 0x73, 0x75, 0x72, 0x76, 0x65, 0x79, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61,
	0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61,
	0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x10,
	0x74, 0x65, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x74, 0x65, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x65,
	0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x65, 0x61, 0x6d, 0x6d, 0x61,
	0x74, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74,
	0x65, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x74,
	0x65, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f,
	0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x74, 0x65, 0x61, 0x6d, 0x6d, 0x61,
	0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x3f, 0x0a, 0x20, 0x43,
	0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x55, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12,
	0x1b, 0x0a, 0x09, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x08, 0x73, 0x6c, 0x6f, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x21, 0x0a, 0x1f,
	0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x54, 0x75, 0x74,
	0x6f, 0x72, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x45, 0x78, 0x70, 0x22,
	0x38, 0x0a, 0x19, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f,
	0x54, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x46, 0x61, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09,
	0x74, 0x67, 0x74, 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x08, 0x74, 0x67, 0x74, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x22, 0xa1, 0x01, 0x0a, 0x20, 0x43, 0x44,
	0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x54, 0x75, 0x74, 0x6f, 0x72,
	0x69, 0x61, 0x6c, 0x50, 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x61, 0x70, 0x12, 0x1b,
	0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x13, 0x0a, 0x05, 0x70,
	0x6f, 0x73, 0x5f, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x70, 0x6f, 0x73, 0x58,
	0x12, 0x13, 0x0a, 0x05, 0x70, 0x6f, 0x73, 0x5f, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52,
	0x04, 0x70, 0x6f, 0x73, 0x59, 0x12, 0x13, 0x0a, 0x05, 0x70, 0x6f, 0x73, 0x5f, 0x7a, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x70, 0x6f, 0x73, 0x5a, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6e,
	0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x3a, 0x0a,
	0x22, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x47, 0x61,
	0x6d, 0x65, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e,
	0x67, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x59, 0x0a, 0x1d, 0x43, 0x44, 0x4f,
	0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x41, 0x64, 0x64, 0x51, 0x75, 0x65,
	0x73, 0x74, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x70,
	0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x70,
	0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x70, 0x63, 0x5f, 0x64, 0x69, 0x61,
	0x6c, 0x6f, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x70, 0x63, 0x44, 0x69,
	0x61, 0x6c, 0x6f, 0x67, 0x22, 0x70, 0x0a, 0x1a, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65,
	0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x50, 0x6f, 0x70,
	0x75, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12,
	0x35, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x74, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x17, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x65,
	0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61,
	0x74, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x22, 0x69, 0x0a, 0x21, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55,
	0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x41, 0x6c,
	0x6c, 0x53, 0x74, 0x61, 0x74, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x73, 0x12, 0x44, 0x0a, 0x0d, 0x64,
	0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x61, 0x6c, 0x6c, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x4d, 0x73, 0x67, 0x5f, 0x44, 0x69,
	0x73, 0x6d, 0x69, 0x73, 0x73, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x50, 0x6f, 0x70, 0x75,
	0x70, 0x73, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x61, 0x6c, 0x6c, 0x6d, 0x73,
	0x67, 0x22, 0xb3, 0x01, 0x0a, 0x25, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d,
	0x73, 0x67, 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x6f, 0x73, 0x68, 0x61, 0x6e, 0x53, 0x70, 0x65,
	0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x68, 0x61, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x05, 0x70,
	0x68, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x44, 0x4f, 0x54,
	0x41, 0x5f, 0x52, 0x4f, 0x53, 0x48, 0x41, 0x4e, 0x5f, 0x50, 0x48, 0x41, 0x53, 0x45, 0x3a, 0x13,
	0x6b, 0x5f, 0x53, 0x52, 0x53, 0x50, 0x5f, 0x52, 0x4f, 0x53, 0x48, 0x41, 0x4e, 0x5f, 0x41, 0x4c,
	0x49, 0x56, 0x45, 0x52, 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x68,
	0x61, 0x73, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x70, 0x68, 0x61, 0x73, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74,
	0x54, 0x69, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x68, 0x61, 0x73, 0x65, 0x5f, 0x6c, 0x65,
	0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x68, 0x61, 0x73,
	0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x58, 0x0a, 0x1c, 0x43, 0x44, 0x4f, 0x54, 0x41,
	0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x6f, 0x73, 0x68,
	0x61, 0x6e, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x6c, 0x61,
	0x69, 0x6d, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x72, 0x65, 0x63, 0x6c,
	0x61, 0x69, 0x6d, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x74, 0x69, 0x6d,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x74, 0x69, 0x6d,
	0x65, 0x22, 0x6a, 0x0a, 0x1a, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73,
	0x67, 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x47, 0x6f, 0x6c, 0x64, 0x12,
	0x23, 0x0a, 0x0d, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x67, 0x6f, 0x6c, 0x64,
	0x18, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0c, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x6c, 0x65,
	0x47, 0x6f, 0x6c, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x6e, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62,
	0x6c, 0x65, 0x5f, 0x67, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x75,
	0x6e, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x6f, 0x6c, 0x64, 0x22, 0x65, 0x0a,
	0x16, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x75,
	0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61,
	0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
	0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14,
	0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76,
	0x61, 0x6c, 0x75, 0x65, 0x22, 0x6b, 0x0a, 0x19, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65,
	0x72, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x6f, 0x61, 0x63, 0x68, 0x48, 0x55, 0x44, 0x50, 0x69, 0x6e,
	0x67, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x31,
	0x0a, 0x08, 0x68, 0x75, 0x64, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x16, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x6f, 0x61, 0x63,
	0x68, 0x48, 0x55, 0x44, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x68, 0x75, 0x64, 0x50, 0x69, 0x6e,
	0x67, 0x22, 0x20, 0x0a, 0x1e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73,
	0x67, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x61, 0x64, 0x47, 0x72, 0x69, 0x64,
	0x4e, 0x61, 0x76, 0x22, 0xad, 0x04, 0x0a, 0x1a, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65,
	0x72, 0x4d, 0x73, 0x67, 0x5f, 0x54, 0x45, 0x5f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69,
	0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61,
	0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67,
	0x65, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x70, 0x65, 0x65,
	0x64, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x61,
	0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x73, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x34,
	0x0a, 0x16, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65,
	0x6d, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14,
	0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x48, 0x61,
	0x6e, 0x64, 0x6c, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x6f, 0x64, 0x67, 0x65, 0x61, 0x62, 0x6c,
	0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x64, 0x6f, 0x64, 0x67, 0x65, 0x61, 0x62,
	0x6c, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x12,
	0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09,
	0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65,
	0x12, 0x24, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x74, 0x69, 0x6d,
	0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x70, 0x61,
	0x63, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x67,
	0x65, 0x6d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0d, 0x63,
	0x6f, 0x6c, 0x6f, 0x72, 0x67, 0x65, 0x6d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x0b,
	0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x0a, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x54, 0x69, 0x63, 0x6b, 0x12, 0x16, 0x0a,
	0x06, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68,
	0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x2a, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f,
	0x6c, 0x6f, 0x63, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x43, 0x4d, 0x73, 0x67,
	0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4c, 0x6f,
	0x63, 0x12, 0x50, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x63, 0x70,
	0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x43, 0x44,
	0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x72, 0x6f, 0x6a, 0x65,
	0x63, 0x74, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x43, 0x50, 0x44,
	0x61, 0x74, 0x61, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x43, 0x70, 0x44,
	0x61, 0x74, 0x61, 0x22, 0xb6, 0x04, 0x0a, 0x1d, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65,
	0x72, 0x4d, 0x73, 0x67, 0x5f, 0x54, 0x45, 0x5f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69,
	0x6c, 0x65, 0x4c, 0x6f, 0x63, 0x12, 0x2a, 0x0a, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f,
	0x6c, 0x6f, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x43, 0x4d, 0x73, 0x67,
	0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x09, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4c, 0x6f,
	0x63, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x6f, 0x76,
	0x65, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d,
	0x6f, 0x76, 0x65, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x61, 0x72, 0x74,
	0x69, 0x63, 0x6c, 0x65, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x68, 0x61, 0x6e, 0x64,
	0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63,
	0x6c, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x1c,
	0x0a, 0x09, 0x64, 0x6f, 0x64, 0x67, 0x65, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x09, 0x64, 0x6f, 0x64, 0x67, 0x65, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1b, 0x0a, 0x09,
	0x69, 0x73, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x08, 0x69, 0x73, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x70,
	0x69, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a,
	0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x0a, 0x74, 0x61,
	0x72, 0x67, 0x65, 0x74, 0x5f, 0x6c, 0x6f, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b,
	0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x09, 0x74, 0x61, 0x72,
	0x67, 0x65, 0x74, 0x4c, 0x6f, 0x63, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x67,
	0x65, 0x6d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0d, 0x63,
	0x6f, 0x6c, 0x6f, 0x72, 0x67, 0x65, 0x6d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x0b,
	0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x0a, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x54, 0x69, 0x63, 0x6b, 0x12, 0x16, 0x0a,
	0x06, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68,
	0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18,
	0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x2b, 0x0a,
	0x11, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65,
	0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
	0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x50, 0x0a, 0x10, 0x70, 0x61,
	0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x63, 0x70, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x10,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72,
	0x4d, 0x73, 0x67, 0x5f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6c, 0x65, 0x50, 0x61,
	0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x43, 0x50, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x70, 0x61,
	0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x43, 0x70, 0x44, 0x61, 0x74, 0x61, 0x22, 0x3b, 0x0a, 0x21,
	0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x54, 0x45, 0x5f,
	0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6c,
	0x65, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x06, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x83, 0x01, 0x0a, 0x1f, 0x43, 0x44,
	0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x54, 0x45, 0x5f, 0x44, 0x6f,
	0x74, 0x61, 0x42, 0x6c, 0x6f, 0x6f, 0x64, 0x49, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x12, 0x16, 0x0a,
	0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x65,
	0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x78,
	0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x78, 0x6e,
	0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x79, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x79, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x22,
	0xc6, 0x03, 0x0a, 0x18, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67,
	0x5f, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x1b, 0x0a, 0x09,
	0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x62, 0x69,
	0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61,
	0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x3f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x41, 0x42,
	0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x3a,
	0x12, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x52, 0x45,
	0x41, 0x44, 0x59, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6f,
	0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x0d, 0x52, 0x0f, 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x53, 0x65, 0x63,
	0x6f, 0x6e, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61,
	0x73, 0x73, 0x69, 0x76, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x70, 0x61, 0x73,
	0x73, 0x69, 0x76, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x6e, 0x61, 0x5f, 0x6e, 0x65, 0x65,
	0x64, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x61, 0x6e, 0x61, 0x4e,
	0x65, 0x65, 0x64, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f,
	0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79,
	0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x63, 0x68,
	0x61, 0x72, 0x67, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x70, 0x72, 0x69,
	0x6d, 0x61, 0x72, 0x79, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x73,
	0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x73,
	0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72,
	0x79, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x74, 0x72, 0x6c,
	0x5f, 0x68, 0x65, 0x6c, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x63, 0x74, 0x72,
	0x6c, 0x48, 0x65, 0x6c, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x6c, 0x61, 0x69, 0x6d,
	0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x72, 0x65, 0x63,
	0x6c, 0x61, 0x69, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x88, 0x02, 0x0a, 0x1d, 0x43, 0x44, 0x4f,
	0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x54, 0x45, 0x5f, 0x55, 0x6e, 0x69,
	0x74, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e,
	0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69,
	0x74, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x76,
	0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x73, 0x65,
	0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x12, 0x22, 0x0a,
	0x0c, 0x70, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x02, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x72, 0x61, 0x74,
	0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, 0x73, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x63, 0x61, 0x73, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12,
	0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74,
	0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18,
	0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12,
	0x32, 0x0a, 0x15, 0x6c, 0x61, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x73, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13,
	0x6c, 0x61, 0x67, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54,
	0x69, 0x6d, 0x65, 0x22, 0x4e, 0x0a, 0x20, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72,
	0x4d, 0x73, 0x67, 0x5f, 0x54, 0x45, 0x5f, 0x55, 0x6e, 0x69, 0x74, 0x41, 0x6e, 0x69, 0x6d, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74,
	0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12,
	0x12, 0x0a, 0x04, 0x73, 0x6e, 0x61, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x73,
	0x6e, 0x61, 0x70, 0x22, 0xcf, 0x01, 0x0a, 0x1d, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65,
	0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x68, 0x6f, 0x77, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63,
	0x50, 0x6f, 0x70, 0x75, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18,
	0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a,
	0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x02, 0x20, 0x02, 0x28, 0x09, 0x52, 0x04, 0x62, 0x6f, 0x64,
	0x79, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72,
	0x61, 0x6d, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d,
	0x32, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x74, 0x69, 0x6e, 0x74, 0x53, 0x63, 0x72, 0x65,
	0x65, 0x6e, 0x12, 0x31, 0x0a, 0x15, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x6e, 0x6f, 0x5f, 0x6f, 0x74,
	0x68, 0x65, 0x72, 0x5f, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x12, 0x73, 0x68, 0x6f, 0x77, 0x4e, 0x6f, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x44, 0x69,
	0x61, 0x6c, 0x6f, 0x67, 0x73, 0x22, 0x87, 0x01, 0x0a, 0x16, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55,
	0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x56, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74,
	0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65,
	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x73,
	0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x73, 0x22,
	0x3e, 0x0a, 0x17, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f,
	0x56, 0x6f, 0x74, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x68,
	0x6f, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
	0x05, 0x52, 0x0c, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22,
	0x3f, 0x0a, 0x14, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f,
	0x56, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x6c, 0x65, 0x63,
	0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x0e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65,
	0x22, 0xc8, 0x01, 0x0a, 0x1f, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73,
	0x67, 0x5f, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6c,
	0x61, 0x79, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49,
	0x64, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02,
	0x52, 0x05, 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74,
	0x5f, 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x65, 0x76,
	0x65, 0x6e, 0x74, 0x42, 0x6f, 0x6e, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x62, 0x6f, 0x6e, 0x75,
	0x73, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52,
	0x0b, 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x13,
	0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x5f, 0x69, 0x74, 0x65, 0x6d,
	0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x65, 0x76, 0x65, 0x6e, 0x74,
	0x42, 0x6f, 0x6e, 0x75, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x22, 0x66, 0x0a, 0x19, 0x43,
	0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x42, 0x6f, 0x6f, 0x73,
	0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x49, 0x0a, 0x0f, 0x62, 0x6f, 0x6f, 0x73,
	0x74, 0x65, 0x64, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x20, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67,
	0x5f, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6c, 0x61,
	0x79, 0x65, 0x72, 0x52, 0x0e, 0x62, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x64, 0x50, 0x6c, 0x61, 0x79,
	0x65, 0x72, 0x73, 0x22, 0x2e, 0x0a, 0x16, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72,
	0x4d, 0x73, 0x67, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x4d, 0x52, 0x12, 0x14, 0x0a,
	0x03, 0x6d, 0x6d, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x11, 0x42, 0x02, 0x10, 0x01, 0x52, 0x03,
	0x6d, 0x6d, 0x72, 0x22, 0x7c, 0x0a, 0x19, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72,
	0x4d, 0x73, 0x67, 0x5f, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x74, 0x65, 0x61, 0x6c,
	0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a,
	0x0a, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x09, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d,
	0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x0d, 0x52, 0x0c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4c, 0x65, 0x76, 0x65,
	0x6c, 0x22, 0x8b, 0x01, 0x0a, 0x1c, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d,
	0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x48, 0x65, 0x72, 0x6f, 0x4c, 0x6f, 0x6f, 0x6b,
	0x75, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12,
	0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x65, 0x72, 0x6f,
	0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x65, 0x72,
	0x6f, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x22,
	0xbe, 0x02, 0x0a, 0x22, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67,
	0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x48, 0x65, 0x72, 0x6f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69,
	0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67,
	0x65, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02,
	0x52, 0x0f, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
	0x6e, 0x12, 0x5b, 0x0a, 0x10, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65,
	0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x43, 0x44,
	0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73,
	0x48, 0x65, 0x72, 0x6f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f,
	0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0f, 0x70,
	0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x1a, 0x8f,
	0x01, 0x0a, 0x0c, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x12,
	0x58, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x61, 0x74, 0x65,
	0x67, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x44, 0x4f, 0x54,
	0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x41, 0x54, 0x45, 0x47,
	0x4f, 0x52, 0x59, 0x3a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49,
	0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
	0x6e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x6f, 0x73,
	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x0d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74,
	0x22, 0xcc, 0x04, 0x0a, 0x23, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73,
	0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x69, 0x6e, 0x75, 0x74,
	0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74,
	0x5f, 0x68, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x61, 0x73,
	0x74, 0x48, 0x69, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x6b, 0x69,
	0x6c, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x4b,
	0x69, 0x6c, 0x6c, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x64, 0x61, 0x6d,
	0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x68, 0x65, 0x72, 0x6f, 0x44,
	0x61, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x64,
	0x61, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x74, 0x6f, 0x77,
	0x65, 0x72, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x48, 0x0a, 0x0d, 0x70, 0x6f, 0x73, 0x69,
	0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x23, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53,
	0x74, 0x61, 0x74, 0x73, 0x48, 0x65, 0x72, 0x6f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e,
	0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e,
	0x66, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x78, 0x70, 0x18, 0x06,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x58, 0x70, 0x12, 0x1b, 0x0a,
	0x09, 0x6e, 0x65, 0x74, 0x5f, 0x77, 0x6f, 0x72, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d,
	0x52, 0x08, 0x6e, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x74, 0x68, 0x12, 0x30, 0x0a, 0x14, 0x68, 0x61,
	0x72, 0x76, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x72, 0x65, 0x65, 0x70, 0x5f, 0x67, 0x6f,
	0x6c, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x68, 0x61, 0x72, 0x76, 0x65, 0x73,
	0x74, 0x65, 0x64, 0x43, 0x72, 0x65, 0x65, 0x70, 0x47, 0x6f, 0x6c, 0x64, 0x12, 0x21, 0x0a, 0x0c,
	0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x5f, 0x66, 0x61, 0x72, 0x6d, 0x18, 0x09, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x0b, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x46, 0x61, 0x72, 0x6d, 0x12,
	0x21, 0x0a, 0x0c, 0x77, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x18,
	0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6c, 0x61, 0x63,
	0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x75, 0x6e, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6c, 0x6c,
	0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x72, 0x75, 0x6e,
	0x65, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x74,
	0x70, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x74,
	0x70, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x6e, 0x61, 0x5f, 0x73,
	0x70, 0x65, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x61, 0x6e, 0x61,
	0x53, 0x70, 0x65, 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x5f,
	0x61, 0x62, 0x73, 0x6f, 0x72, 0x62, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e,
	0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x41, 0x62, 0x73, 0x6f, 0x72, 0x62, 0x65, 0x64, 0x12, 0x1f,
	0x0a, 0x0b, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x6f, 0x6e, 0x65, 0x18, 0x0f, 0x20,
	0x03, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x6f, 0x6e, 0x65, 0x22,
	0xb7, 0x05, 0x0a, 0x23, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67,
	0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65,
	0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x47, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x65,
	0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e,
	0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61,
	0x74, 0x73, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x44, 0x65, 0x74, 0x61,
	0x69, 0x6c, 0x73, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73,
	0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x6f, 0x77, 0x65, 0x72, 0x4b, 0x69, 0x6c, 0x6c,
	0x73, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x61, 0x72, 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x6b, 0x69, 0x6c,
	0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x62, 0x61, 0x72, 0x72, 0x61, 0x63,
	0x6b, 0x4b, 0x69, 0x6c, 0x6c, 0x73, 0x12, 0x39, 0x0a, 0x19, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61,
	0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x61, 0x6e, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x65, 0x70, 0x5f, 0x67,
	0x6f, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x61, 0x76, 0x61, 0x69, 0x6c,
	0x61, 0x62, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x65, 0x43, 0x72, 0x65, 0x65, 0x70, 0x47, 0x6f, 0x6c,
	0x64, 0x12, 0x2c, 0x0a, 0x12, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6b, 0x69, 0x6c,
	0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x62,
	0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x4b, 0x69, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12,
	0x2e, 0x0a, 0x13, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x6f, 0x77, 0x65, 0x72,
	0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x62, 0x61,
	0x6c, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x6f, 0x77, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12,
	0x34, 0x0a, 0x16, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x62, 0x61, 0x72, 0x72, 0x61,
	0x63, 0x6b, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52,
	0x14, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x61, 0x72, 0x72, 0x61, 0x63, 0x6b, 0x73,
	0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65,
	0x5f, 0x67, 0x6f, 0x6c, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x10, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x47, 0x6f, 0x6c, 0x64, 0x56, 0x61,
	0x6c, 0x75, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x78,
	0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x62,
	0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x58, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x63, 0x0a,
	0x10, 0x6c, 0x61, 0x6e, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63,
	0x65, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55,
	0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x54, 0x65, 0x61, 0x6d,
	0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x4c, 0x6f,
	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63,
	0x65, 0x52, 0x0f, 0x6c, 0x61, 0x6e, 0x65, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e,
	0x63, 0x65, 0x1a, 0x75, 0x0a, 0x13, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65,
	0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x6c, 0x6f, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61,
	0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x74,
	0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x54,
	0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xfc, 0x01, 0x0a, 0x21, 0x43, 0x44,
	0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73,
	0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4b, 0x69, 0x6c, 0x6c, 0x53, 0x68, 0x61, 0x72, 0x65, 0x12,
	0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x12,
	0x6b, 0x69, 0x6c, 0x6c, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65,
	0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6b, 0x69, 0x6c, 0x6c, 0x53, 0x68,
	0x61, 0x72, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0c, 0x70, 0x6c,
	0x61, 0x79, 0x65, 0x72, 0x5f, 0x6c, 0x6f, 0x63, 0x5f, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02,
	0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x58, 0x12, 0x20, 0x0a, 0x0c,
	0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x6c, 0x6f, 0x63, 0x5f, 0x79, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x02, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x59, 0x12, 0x25,
	0x0a, 0x0e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x50, 0x65,
	0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x6e, 0x61, 0x5f, 0x70, 0x65,
	0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x6d, 0x61, 0x6e,
	0x61, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x22, 0x8e, 0x02, 0x0a, 0x1d, 0x43, 0x44, 0x4f,
	0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4b,
	0x69, 0x6c, 0x6c, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x69,
	0x63, 0x74, 0x69, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x76,
	0x69, 0x63, 0x74, 0x69, 0x6d, 0x49, 0x64, 0x12, 0x43, 0x0a, 0x0b, 0x6b, 0x69, 0x6c, 0x6c, 0x5f,
	0x73, 0x68, 0x61, 0x72, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x43,
	0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74,
	0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4b, 0x69, 0x6c, 0x6c, 0x53, 0x68, 0x61, 0x72, 0x65,
	0x52, 0x0a, 0x6b, 0x69, 0x6c, 0x6c, 0x53, 0x68, 0x61, 0x72, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0e,
	0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x4b, 0x69,
	0x6c, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f,
	0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x65, 0x66,
	0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x12, 0x1d, 0x0a,
	0x0a, 0x64, 0x65, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x02, 0x52, 0x09, 0x64, 0x65, 0x61, 0x74, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09,
	0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x08, 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x64, 0x22, 0xbd, 0x07, 0x0a, 0x1e, 0x43, 0x44,
	0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73,
	0x4d, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x3e, 0x0a, 0x0b,
	0x68, 0x65, 0x72, 0x6f, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x18, 0x01, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x1d, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67,
	0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x48, 0x65, 0x72, 0x6f, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70,
	0x52, 0x0a, 0x68, 0x65, 0x72, 0x6f, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x12, 0x49, 0x0a, 0x0d,
	0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x02, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d,
	0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x69, 0x6e, 0x75,
	0x74, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0c, 0x72, 0x61, 0x64, 0x69, 0x61,
	0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x43, 0x0a, 0x0a, 0x64, 0x69, 0x72, 0x65, 0x5f,
	0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x43, 0x44,
	0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73,
	0x54, 0x65, 0x61, 0x6d, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c,
	0x73, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x43, 0x0a, 0x0d,
	0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x18, 0x04, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d,
	0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4b, 0x69, 0x6c, 0x6c, 0x44, 0x65, 0x74, 0x61,
	0x69, 0x6c, 0x73, 0x52, 0x0c, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x4b, 0x69, 0x6c, 0x6c,
	0x73, 0x12, 0x3d, 0x0a, 0x0a, 0x64, 0x69, 0x72, 0x65, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x73, 0x18,
	0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65,
	0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4b, 0x69, 0x6c, 0x6c, 0x44, 0x65,
	0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x4b, 0x69, 0x6c, 0x6c, 0x73,
	0x12, 0x63, 0x0a, 0x0d, 0x66, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c,
	0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55,
	0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x61, 0x74, 0x63,
	0x68, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73,
	0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x46, 0x69, 0x67, 0x68, 0x74,
	0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0c, 0x66, 0x69, 0x67, 0x68, 0x74, 0x44, 0x65,
	0x74, 0x61, 0x69, 0x6c, 0x73, 0x1a, 0x9a, 0x01, 0x0a, 0x22, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55,
	0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x46, 0x69, 0x67, 0x68,
	0x74, 0x54, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x22, 0x0a, 0x0c,
	0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03,
	0x28, 0x05, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73,
	0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x61, 0x74, 0x68, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05,
	0x52, 0x06, 0x64, 0x65, 0x61, 0x74, 0x68, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x6f, 0x6c, 0x64,
	0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x67, 0x6f,
	0x6c, 0x64, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x78, 0x70, 0x5f, 0x64, 0x65,
	0x6c, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x78, 0x70, 0x44, 0x65, 0x6c,
	0x74, 0x61, 0x1a, 0xc4, 0x02, 0x0a, 0x1e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72,
	0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x46, 0x69, 0x67, 0x68, 0x74, 0x44, 0x65,
	0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74,
	0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74,
	0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12,
	0x76, 0x0a, 0x15, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x66, 0x69, 0x67, 0x68, 0x74,
	0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42,
	0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74,
	0x61, 0x74, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e,
	0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x74, 0x61,
	0x74, 0x73, 0x46, 0x69, 0x67, 0x68, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x74, 0x61, 0x69,
	0x6c, 0x73, 0x52, 0x13, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e, 0x74, 0x46, 0x69, 0x67, 0x68, 0x74,
	0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x70, 0x0a, 0x12, 0x64, 0x69, 0x72, 0x65, 0x5f,
	0x66, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d,
	0x73, 0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x74,
	0x61, 0x69, 0x6c, 0x73, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73,
	0x67, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x46, 0x69, 0x67, 0x68, 0x74, 0x54, 0x65, 0x61, 0x6d,
	0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x10, 0x64, 0x69, 0x72, 0x65, 0x46, 0x69, 0x67,
	0x68, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x46, 0x0a, 0x16, 0x43, 0x44, 0x4f,
	0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x4d, 0x69, 0x6e, 0x69, 0x54, 0x61,
	0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x74, 0x61, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x5f,
	0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x10, 0x74, 0x61, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49,
	0x64, 0x22, 0x3c, 0x0a, 0x19, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73,
	0x67, 0x5f, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x42, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x12, 0x1f,
	0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x41, 0x6c, 0x6c, 0x22,
	0x8b, 0x01, 0x0a, 0x20, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67,
	0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x73,
	0x73, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49,
	0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x02, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a,
	0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
	0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x96, 0x01,
	0x0a, 0x13, 0x43, 0x4d, 0x73, 0x67, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74,
	0x79, 0x53, 0x74, 0x61, 0x74, 0x12, 0x41, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x74, 0x5f, 0x74, 0x79,
	0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x45, 0x48, 0x65, 0x72, 0x6f,
	0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x14, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72,
	0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x4e, 0x6f, 0x6e, 0x65, 0x52, 0x08,
	0x73, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x69, 0x6e, 0x74,
	0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x76,
	0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x6c, 0x6f, 0x61,
	0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x81, 0x01, 0x0a, 0x1c, 0x43, 0x4d, 0x73, 0x67, 0x43,
	0x6f, 0x6d, 0x62, 0x61, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x72, 0x50, 0x6c, 0x61,
	0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63,
	0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x12, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x61,
	0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x14, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x62, 0x69,
	0x6c, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x52, 0x10, 0x68, 0x65, 0x72, 0x6f, 0x41, 0x62,
	0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x22, 0x76, 0x0a, 0x17, 0x43, 0x4d,
	0x73, 0x67, 0x43, 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x72,
	0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64,
	0x12, 0x40, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73,
	0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d,
	0x62, 0x61, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65,
	0x72, 0x53, 0x74, 0x61, 0x74, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61,
	0x74, 0x73, 0x22, 0x76, 0x0a, 0x16, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d,
	0x73, 0x67, 0x5f, 0x42, 0x65, 0x61, 0x73, 0x74, 0x43, 0x68, 0x61, 0x74, 0x12, 0x12, 0x0a, 0x04,
	0x74, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d,
	0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73,
	0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61,
	0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x82, 0x01, 0x0a, 0x24, 0x43,
	0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x75, 0x73, 0x74,
	0x6f, 0x6d, 0x48, 0x75, 0x64, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x43, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74,
	0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x5f, 0x66, 0x69, 0x6c,
	0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, 0x79,
	0x6f, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64,
	0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22,
	0x80, 0x01, 0x0a, 0x24, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67,
	0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x75, 0x64, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e,
	0x74, 0x5f, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x6c, 0x65, 0x6d,
	0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x6c,
	0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x6f, 0x64, 0x69, 0x66,
	0x79, 0x5f, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x0d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x56, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x12,
	0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61,
	0x74, 0x61, 0x22, 0x46, 0x0a, 0x25, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d,
	0x73, 0x67, 0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x75, 0x64, 0x45, 0x6c, 0x65, 0x6d,
	0x65, 0x6e, 0x74, 0x5f, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x65,
	0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x09, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x57, 0x0a, 0x22, 0x43, 0x44,
	0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x6f, 0x6d, 0x70, 0x65,
	0x6e, 0x64, 0x69, 0x75, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72,
	0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a,
	0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65,
	0x76, 0x65, 0x6c, 0x22, 0x72, 0x0a, 0x1c, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72,
	0x4d, 0x73, 0x67, 0x5f, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x75, 0x6d, 0x53, 0x74,
	0x61, 0x74, 0x65, 0x12, 0x52, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x75,
	0x6d, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x23, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x43,
	0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x75, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6c,
	0x61, 0x79, 0x65, 0x72, 0x52, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x75, 0x6d,
	0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x22, 0xc1, 0x02, 0x0a, 0x1e, 0x43, 0x44, 0x4f, 0x54,
	0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x62,
	0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09,
	0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x61, 0x73,
	0x74, 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x0e, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x49, 0x6e,
	0x64, 0x65, 0x78, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x65,
	0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72,
	0x54, 0x65, 0x61, 0x6d, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f,
	0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e,
	0x65, 0x6c, 0x45, 0x6e, 0x64, 0x12, 0x23, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x43, 0x4d, 0x73, 0x67, 0x56, 0x65, 0x63, 0x74,
	0x6f, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x72,
	0x61, 0x63, 0x6b, 0x5f, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18,
	0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x43, 0x61, 0x73, 0x74,
	0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69,
	0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d,
	0x65, 0x12, 0x28, 0x0a, 0x10, 0x76, 0x69, 0x63, 0x74, 0x69, 0x6d, 0x5f, 0x65, 0x6e, 0x74, 0x5f,
	0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x76, 0x69, 0x63,
	0x74, 0x69, 0x6d, 0x45, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x70, 0x0a, 0x1c, 0x43,
	0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x72, 0x6f, 0x6a,
	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x08, 0x65,
	0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e,
	0x45, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74,
	0x3a, 0x0e, 0x65, 0x50, 0x45, 0x5f, 0x46, 0x69, 0x72, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x6f, 0x64,
	0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x61,
	0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x22, 0x5c, 0x0a,
	0x14, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x58, 0x50,
	0x41, 0x6c, 0x65, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f,
	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72,
	0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x74,
	0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x61, 0x72,
	0x67, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xb1, 0x01, 0x0a, 0x1c,
	0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x54, 0x61, 0x6c,
	0x65, 0x6e, 0x74, 0x54, 0x72, 0x65, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09,
	0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x61, 0x72,
	0x67, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x6e, 0x64,
	0x65, 0x78, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49,
	0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x22,
	0x22, 0x0a, 0x20, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f,
	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x51, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72,
	0x65, 0x73, 0x73, 0x22, 0x88, 0x02, 0x0a, 0x18, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65,
	0x72, 0x4d, 0x73, 0x67, 0x5f, 0x51, 0x75, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
	0x02, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x19, 0x0a,
	0x08, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52,
	0x07, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6c,
	0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b,
	0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70,
	0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70,
	0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x6f, 0x61, 0x6c, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x67, 0x6f, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x71,
	0x75, 0x65, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72,
	0x79, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x61, 0x69, 0x6c, 0x5f, 0x67, 0x61, 0x6d, 0x65, 0x74, 0x69,
	0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x66, 0x61, 0x69, 0x6c, 0x47, 0x61,
	0x6d, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x61,
	0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52,
	0x0d, 0x69, 0x74, 0x65, 0x6d, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x64, 0x22, 0x66,
	0x0a, 0x1c, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53,
	0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x48, 0x65, 0x72, 0x6f, 0x50, 0x69, 0x63, 0x6b, 0x12, 0x1b,
	0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x02, 0x28,
	0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x68,
	0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65,
	0x72, 0x6f, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x61, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x03, 0x62, 0x61, 0x6e, 0x22, 0x58, 0x0a, 0x1c, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55,
	0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x48, 0x65,
	0x72, 0x6f, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72,
	0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65,
	0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x72, 0x6f, 0x6c, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x65, 0x72, 0x6f, 0x52, 0x6f, 0x6c, 0x65,
	0x22, 0xe6, 0x01, 0x0a, 0x1f, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73,
	0x67, 0x5f, 0x4b, 0x69, 0x6c, 0x6c, 0x63, 0x61, 0x6d, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x54,
	0x61, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69,
	0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49,
	0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x61, 0x6b, 0x65,
	0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x54,
	0x61, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x74, 0x79, 0x70,
	0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x69, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70,
	0x65, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74,
	0x79, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x69, 0x74, 0x65, 0x6d,
	0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x65, 0x72,
	0x6f, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x65,
	0x72, 0x6f, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65,
	0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x61,
	0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0x51, 0x0a, 0x1e, 0x43, 0x44, 0x4f,
	0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74,
	0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x47, 0x6f, 0x6c, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x70,
	0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x05, 0x52, 0x08,
	0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x73, 0x74,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x22, 0xab, 0x01, 0x0a,
	0x1b, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x52, 0x6f,
	0x6c, 0x6c, 0x44, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1b, 0x0a, 0x09,
	0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x61,
	0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52,
	0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08,
	0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07,
	0x72, 0x6f, 0x6c, 0x6c, 0x4d, 0x69, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x6f, 0x6c, 0x6c, 0x5f,
	0x6d, 0x61, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x6f, 0x6c, 0x6c, 0x4d,
	0x61, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x75, 0x0a, 0x1b, 0x43, 0x44,
	0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x46, 0x6c, 0x69, 0x70, 0x43,
	0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61,
	0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c,
	0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65,
	0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x68,
	0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73,
	0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c,
	0x74, 0x22, 0x46, 0x0a, 0x27, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65,
	0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x74, 0x65,
	0x6d, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1b, 0x0a, 0x09,
	0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x22, 0x65, 0x0a, 0x23, 0x43, 0x44, 0x4f,
	0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x54, 0x65,
	0x61, 0x6d, 0x43, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64,
	0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04,
	0x74, 0x65, 0x61, 0x6d, 0x12, 0x2a, 0x0a, 0x11, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x5f,
	0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x0f, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64,
	0x22, 0x6e, 0x0a, 0x1e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67,
	0x5f, 0x43, 0x68, 0x61, 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f,
	0x77, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49,
	0x64, 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x72, 0x65,
	0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x63,
	0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67,
	0x22, 0xb8, 0x01, 0x0a, 0x1e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73,
	0x67, 0x5f, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65, 0x6c, 0x69, 0x63, 0x50, 0x72, 0x6f, 0x67, 0x72,
	0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x72, 0x65, 0x6c, 0x69,
	0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x68, 0x65,
	0x72, 0x6f, 0x52, 0x65, 0x6c, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76,
	0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x07, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65,
	0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65,
	0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f,
	0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x76,
	0x61, 0x6c, 0x75, 0x65, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x22, 0x9a, 0x01, 0x0a, 0x27,
	0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x41, 0x62, 0x69,
	0x6c, 0x69, 0x74, 0x79, 0x44, 0x72, 0x61, 0x66, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65,
	0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79,
	0x65, 0x72, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65,
	0x64, 0x5f, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x12, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x41, 0x62, 0x69,
	0x6c, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x63, 0x74, 0x72, 0x6c, 0x5f, 0x69,
	0x73, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x63, 0x74,
	0x72, 0x6c, 0x49, 0x73, 0x44, 0x6f, 0x77, 0x6e, 0x22, 0xc7, 0x01, 0x0a, 0x19, 0x43, 0x44, 0x4f,
	0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65,
	0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72,
	0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65,
	0x72, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x68, 0x65,
	0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x61, 0x72,
	0x67, 0x65, 0x74, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x5f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x12,
	0x23, 0x0a, 0x0d, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x41, 0x6d,
	0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73,
	0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61,
	0x73, 0x74, 0x22, 0xa9, 0x01, 0x0a, 0x19, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72,
	0x4d, 0x73, 0x67, 0x5f, 0x53, 0x61, 0x6c, 0x75, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72,
	0x12, 0x28, 0x0a, 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65,
	0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72,
	0x63, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x61,
	0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x79,
	0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x70, 0x5f, 0x61, 0x6d, 0x6f, 0x75,
	0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x70, 0x41, 0x6d, 0x6f,
	0x75, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x4f,
	0x0a, 0x15, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x54,
	0x69, 0x70, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65,
	0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79,
	0x65, 0x72, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x69, 0x70, 0x5f, 0x74, 0x65, 0x78, 0x74,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x69, 0x70, 0x54, 0x65, 0x78, 0x74, 0x22,
	0x8e, 0x01, 0x0a, 0x1d, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67,
	0x5f, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x55, 0x6e, 0x69,
	0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01,
	0x20, 0x02, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x27,
	0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65,
	0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45,
	0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65,
	0x74, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78,
	0x22, 0x7a, 0x0a, 0x1a, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67,
	0x5f, 0x45, 0x53, 0x41, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x43, 0x6f, 0x6d, 0x62, 0x6f, 0x12, 0x18,
	0x0a, 0x07, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52,
	0x07, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x62,
	0x6f, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63,
	0x6f, 0x6d, 0x62, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x72, 0x63,
	0x61, 0x6e, 0x61, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52,
	0x0b, 0x61, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x83, 0x01, 0x0a,
	0x21, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x45, 0x53,
	0x41, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x43, 0x6f, 0x6d, 0x62, 0x6f, 0x53, 0x75, 0x6d, 0x6d, 0x61,
	0x72, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x0b,
	0x63, 0x6f, 0x6d, 0x62, 0x6f, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x62, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a,
	0x0d, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x41, 0x6d, 0x6f, 0x75,
	0x6e, 0x74, 0x22, 0xaf, 0x01, 0x0a, 0x1a, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72,
	0x4d, 0x73, 0x67, 0x5f, 0x4f, 0x4d, 0x41, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x43, 0x6f, 0x6d, 0x62,
	0x6f, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x07, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x6d,
	0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74,
	0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x72, 0x63, 0x61, 0x6e, 0x61,
	0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x72,
	0x63, 0x61, 0x6e, 0x61, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x6d, 0x75, 0x6c,
	0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x0d, 0x52, 0x0f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x43, 0x68,
	0x61, 0x6e, 0x63, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73,
	0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x48, 0x69, 0x67, 0x68, 0x46, 0x69, 0x76, 0x65, 0x43, 0x6f,
	0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65,
	0x72, 0x5f, 0x69, 0x64, 0x5f, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x6c,
	0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x31, 0x12, 0x1e, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65,
	0x72, 0x5f, 0x69, 0x64, 0x5f, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x6c,
	0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x32, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x70, 0x65, 0x63, 0x69,
	0x61, 0x6c, 0x5f, 0x68, 0x69, 0x67, 0x68, 0x5f, 0x66, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x0f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x48, 0x69, 0x67, 0x68, 0x46,
	0x69, 0x76, 0x65, 0x22, 0x3f, 0x0a, 0x20, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72,
	0x4d, 0x73, 0x67, 0x5f, 0x48, 0x69, 0x67, 0x68, 0x46, 0x69, 0x76, 0x65, 0x4c, 0x65, 0x66, 0x74,
	0x48, 0x61, 0x6e, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65,
	0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79,
	0x65, 0x72, 0x49, 0x64, 0x22, 0x8e, 0x01, 0x0a, 0x1a, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73,
	0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x53, 0x68, 0x6f, 0x76, 0x65, 0x6c, 0x55, 0x6e, 0x65, 0x61,
	0x72, 0x74, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64,
	0x12, 0x19, 0x0a, 0x08, 0x61, 0x6c, 0x6c, 0x5f, 0x63, 0x68, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x07, 0x61, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6c,
	0x6f, 0x63, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
	0x6c, 0x6f, 0x63, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61,
	0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x71, 0x75, 0x61,
	0x6e, 0x74, 0x69, 0x74, 0x79, 0x22, 0xcc, 0x02, 0x0a, 0x19, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55,
	0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x45, 0x76,
	0x65, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6c,
	0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73,
	0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a,
	0x10, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69,
	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50,
	0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x6f, 0x69, 0x6e, 0x74,
	0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x70,
	0x6f, 0x69, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x76,
	0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x76,
	0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x4b, 0x0a, 0x0d, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f,
	0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x43,
	0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x41, 0x6c, 0x6c, 0x53,
	0x74, 0x61, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53,
	0x63, 0x6f, 0x72, 0x65, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72,
	0x65, 0x73, 0x1a, 0x50, 0x0a, 0x0b, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72,
	0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x24,
	0x0a, 0x0e, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x73, 0x61, 0x6e, 0x73, 0x5f, 0x6b, 0x64, 0x61,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x61, 0x6e,
	0x73, 0x4b, 0x64, 0x61, 0x22, 0x51, 0x0a, 0x1f, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65,
	0x72, 0x4d, 0x73, 0x67, 0x5f, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72,
	0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x75, 0x6e, 0x69, 0x74, 0x5f,
	0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01,
	0x20, 0x03, 0x28, 0x0d, 0x52, 0x11, 0x75, 0x6e, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53,
	0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xac, 0x02, 0x0a, 0x1b, 0x43, 0x44, 0x4f, 0x54,
	0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x68,
	0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x6c, 0x6c,
	0x65, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d, 0x52,
	0x0d, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2c,
	0x0a, 0x12, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72,
	0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x10, 0x63, 0x68, 0x61, 0x6c,
	0x6c, 0x65, 0x6e, 0x67, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08,
	0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x07,
	0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61,
	0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x6e,
	0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x63, 0x68, 0x61, 0x6c,
	0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x5f, 0x30, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x56, 0x61, 0x72, 0x30,
	0x12, 0x26, 0x0a, 0x0f, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x76, 0x61,
	0x72, 0x5f, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x6c, 0x6c,
	0x65, 0x6e, 0x67, 0x65, 0x56, 0x61, 0x72, 0x31, 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x68, 0x61, 0x6c,
	0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x4d,
	0x61, 0x78, 0x52, 0x61, 0x6e, 0x6b, 0x22, 0xa9, 0x01, 0x0a, 0x1d, 0x43, 0x44, 0x4f, 0x54, 0x41,
	0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x65, 0x75,
	0x74, 0x72, 0x61, 0x6c, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79,
	0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61,
	0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x61, 0x62,
	0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d,
	0x69, 0x74, 0x65, 0x6d, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x1b, 0x0a,
	0x09, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x74, 0x69, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d,
	0x52, 0x08, 0x69, 0x74, 0x65, 0x6d, 0x54, 0x69, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x69,
	0x65, 0x72, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x0d, 0x52, 0x0d, 0x74, 0x69, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x75,
	0x6e, 0x74, 0x22, 0x62, 0x0a, 0x1c, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d,
	0x73, 0x67, 0x5f, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72,
	0x65, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x65, 0x6e,
	0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6f, 0x75,
	0x74, 0x70, 0x6f, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x17, 0x0a,
	0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06,
	0x74, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x22, 0x55, 0x0a, 0x1d, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55,
	0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x73, 0x74, 0x47, 0x72,
	0x61, 0x6e, 0x74, 0x65, 0x64, 0x58, 0x50, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x6d, 0x5f,
	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x64,
	0x12, 0x1b, 0x0a, 0x09, 0x78, 0x70, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0d, 0x52, 0x08, 0x78, 0x70, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x42, 0x0a,
	0x1d, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x4d, 0x6f,
	0x76, 0x65, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x54, 0x6f, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x21,
	0x0a, 0x0c, 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x75, 0x6e, 0x69, 0x74, 0x45, 0x68, 0x61, 0x6e, 0x64, 0x6c,
	0x65, 0x22, 0xba, 0x01, 0x0a, 0x1e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d,
	0x73, 0x67, 0x5f, 0x50, 0x61, 0x75, 0x73, 0x65, 0x4d, 0x69, 0x6e, 0x69, 0x67, 0x61, 0x6d, 0x65,
	0x44, 0x61, 0x74, 0x61, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x69, 0x74,
	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55,
	0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x50, 0x61, 0x75, 0x73, 0x65, 0x4d, 0x69, 0x6e, 0x69,
	0x67, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x42, 0x69, 0x74,
	0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x42, 0x69, 0x74, 0x73, 0x1a, 0x52, 0x0a, 0x07, 0x44, 0x61,
	0x74, 0x61, 0x42, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x64,
	0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12,
	0x1d, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x45, 0x78, 0x74, 0x72, 0x61, 0x22, 0xdc,
	0x02, 0x0a, 0x27, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f,
	0x56, 0x65, 0x72, 0x73, 0x75, 0x73, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x5f, 0x50, 0x6c, 0x61, 0x79,
	0x65, 0x72, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c,
	0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70,
	0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x5d, 0x0a, 0x08, 0x62, 0x65, 0x68, 0x61, 0x76,
	0x69, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x45, 0x44, 0x4f, 0x54,
	0x41, 0x56, 0x65, 0x72, 0x73, 0x75, 0x73, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x50, 0x6c, 0x61, 0x79,
	0x65, 0x72, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x3a, 0x20, 0x56, 0x53, 0x5f, 0x50,
	0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x42, 0x45, 0x48, 0x41, 0x56, 0x49, 0x4f, 0x52, 0x5f, 0x50,
	0x4c, 0x41, 0x59, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x49, 0x54, 0x59, 0x52, 0x08, 0x62, 0x65,
	0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12, 0x3e, 0x0a, 0x0d, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x61,
	0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
	0x56, 0x65, 0x72, 0x73, 0x75, 0x73, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x5f, 0x50, 0x6c, 0x61, 0x79,
	0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x41, 0x63,
	0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x35, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x77,
	0x68, 0x65, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x56, 0x65, 0x72,
	0x73, 0x75, 0x73, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x5f, 0x43, 0x68, 0x61, 0x74, 0x57, 0x68, 0x65,
	0x65, 0x6c, 0x52, 0x09, 0x63, 0x68, 0x61, 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x12, 0x3e, 0x0a,
	0x0d, 0x70, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x75, 0x73, 0x53, 0x63, 0x65,
	0x6e, 0x65, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x61, 0x74, 0x65, 0x52,
	0x0c, 0x70, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x61, 0x74, 0x65, 0x22, 0xa5, 0x01,
	0x0a, 0x1e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x51,
	0x6f, 0x50, 0x5f, 0x41, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79,
	0x12, 0x18, 0x0a, 0x07, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x07, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x72,
	0x63, 0x61, 0x6e, 0x61, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d,
	0x52, 0x0b, 0x61, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1f, 0x0a,
	0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x48, 0x69, 0x74, 0x12, 0x25,
	0x0a, 0x0e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x5f, 0x6b, 0x69, 0x6c, 0x6c, 0x65, 0x64,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x4b,
	0x69, 0x6c, 0x6c, 0x65, 0x64, 0x22, 0x60, 0x0a, 0x1e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73,
	0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x48, 0x6f, 0x74, 0x50, 0x6f, 0x74, 0x61, 0x74, 0x6f, 0x5f,
	0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65,
	0x72, 0x5f, 0x69, 0x64, 0x5f, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x6c,
	0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x31, 0x12, 0x1e, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65,
	0x72, 0x5f, 0x69, 0x64, 0x5f, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x6c,
	0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x32, 0x22, 0x3e, 0x0a, 0x1f, 0x43, 0x44, 0x4f, 0x54, 0x41,
	0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x48, 0x6f, 0x74, 0x50, 0x6f, 0x74, 0x61, 0x74,
	0x6f, 0x5f, 0x45, 0x78, 0x70, 0x6c, 0x6f, 0x64, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6c,
	0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70,
	0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x22, 0x77, 0x0a, 0x1f, 0x43, 0x44, 0x4f, 0x54, 0x41,
	0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x57, 0x4b, 0x5f, 0x41, 0x72, 0x63, 0x61, 0x6e,
	0x61, 0x5f, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x68,
	0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x68, 0x61,
	0x6e, 0x64, 0x6c, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x5f, 0x6c,
	0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x72, 0x63, 0x61,
	0x6e, 0x61, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x5f,
	0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64,
	0x22, 0x93, 0x05, 0x0a, 0x24, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73,
	0x67, 0x5f, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65,
	0x5f, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x5d, 0x0a, 0x0f, 0x70, 0x6c, 0x61,
	0x79, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x34, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73,
	0x67, 0x5f, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65,
	0x5f, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72,
	0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x0e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72,
	0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c,
	0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c,
	0x64, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65,
	0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x13, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x49, 0x6e, 0x73,
	0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x63, 0x68, 0x61, 0x6c, 0x6c,
	0x65, 0x6e, 0x67, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x50,
	0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x75, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x6c,
	0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x34, 0x2e, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f,
	0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x50,
	0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x45, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e,
	0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x18, 0x6b, 0x5f, 0x45, 0x43, 0x68, 0x61, 0x6c, 0x6c,
	0x65, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64,
	0x52, 0x0d, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12,
	0x3d, 0x0a, 0x1b, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x70, 0x72, 0x6f,
	0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x18, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x50,
	0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1a,
	0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x08, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x1a, 0x49, 0x0a, 0x0e, 0x50, 0x6c,
	0x61, 0x79, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x09,
	0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x08, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f,
	0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x72, 0x6f,
	0x67, 0x72, 0x65, 0x73, 0x73, 0x22, 0x6f, 0x0a, 0x0e, 0x45, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65,
	0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x6b, 0x5f, 0x45, 0x43, 0x68,
	0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x49, 0x6e, 0x76, 0x61,
	0x6c, 0x69, 0x64, 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, 0x6b, 0x5f, 0x45, 0x43, 0x68, 0x61, 0x6c,
	0x6c, 0x65, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x6f, 0x6f, 0x70, 0x65, 0x72,
	0x61, 0x74, 0x69, 0x76, 0x65, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x6b, 0x5f, 0x45, 0x43, 0x68,
	0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x6f, 0x6e, 0x74,
	0x72, 0x61, 0x63, 0x74, 0x10, 0x02, 0x22, 0x8c, 0x02, 0x0a, 0x1d, 0x43, 0x44, 0x4f, 0x54, 0x41,
	0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x57, 0x52, 0x41, 0x72, 0x63, 0x61, 0x6e, 0x61,
	0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x68, 0x61, 0x6e,
	0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x68, 0x61, 0x6e, 0x64,
	0x6c, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x68, 0x61,
	0x6e, 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x74, 0x61, 0x72, 0x67,
	0x65, 0x74, 0x45, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x72, 0x72,
	0x6f, 0x77, 0x73, 0x5f, 0x6c, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d,
	0x52, 0x0c, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x73, 0x4c, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x21,
	0x0a, 0x0c, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x65, 0x61, 0x6c, 0x74, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x65, 0x61, 0x6c,
	0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x68, 0x70, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x70, 0x12, 0x22,
	0x0a, 0x0d, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x68, 0x70, 0x18,
	0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4d, 0x61, 0x78,
	0x48, 0x70, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x5f, 0x6c, 0x65, 0x76,
	0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x72, 0x63, 0x61, 0x6e, 0x61,
	0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0xa5, 0x02, 0x0a, 0x1c, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55,
	0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x57, 0x52, 0x41, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x53,
	0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65,
	0x12, 0x25, 0x0a, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x68, 0x61, 0x6e, 0x64,
	0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74,
	0x45, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x72, 0x72, 0x6f, 0x77,
	0x73, 0x5f, 0x6c, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c,
	0x61, 0x72, 0x72, 0x6f, 0x77, 0x73, 0x4c, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c,
	0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x65, 0x61, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x0b, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x65, 0x61, 0x6c, 0x74, 0x12,
	0x1b, 0x0a, 0x09, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x68, 0x70, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x08, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x70, 0x12, 0x22, 0x0a, 0x0d,
	0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x68, 0x70, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x0d, 0x52, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4d, 0x61, 0x78, 0x48, 0x70,
	0x12, 0x21, 0x0a, 0x0c, 0x61, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c,
	0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x4c, 0x65,
	0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x08,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0xbf, 0x01,
	0x0a, 0x1f, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x45,
	0x6d, 0x70, 0x74, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x6c, 0x6f, 0x74, 0x41, 0x6c, 0x65, 0x72,
	0x74, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6c, 0x61, 0x79,
	0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x74,
	0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x6c, 0x61,
	0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x69, 0x6e,
	0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x73, 0x6c, 0x6f, 0x74, 0x49,
	0x6e, 0x64, 0x65, 0x78, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e,
	0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f,
	0x63, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22,
	0xf8, 0x01, 0x0a, 0x1c, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67,
	0x5f, 0x41, 0x67, 0x68, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x41, 0x6c, 0x65, 0x72, 0x74,
	0x12, 0x28, 0x0a, 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65,
	0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72,
	0x63, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x61,
	0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x79,
	0x65, 0x72, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x65,
	0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74,
	0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1d, 0x0a,
	0x0a, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x09, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b,
	0x68, 0x61, 0x73, 0x5f, 0x73, 0x63, 0x65, 0x70, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x0a, 0x68, 0x61, 0x73, 0x53, 0x63, 0x65, 0x70, 0x74, 0x65, 0x72, 0x12, 0x1b, 0x0a,
	0x09, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x08, 0x68, 0x61, 0x73, 0x53, 0x68, 0x61, 0x72, 0x64, 0x22, 0x83, 0x01, 0x0a, 0x19, 0x43,
	0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x4d, 0x75, 0x74, 0x65,
	0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x31, 0x0a, 0x15, 0x74, 0x65, 0x78, 0x74,
	0x5f, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64,
	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x12, 0x74, 0x65, 0x78, 0x74, 0x4d, 0x75, 0x74,
	0x65, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x33, 0x0a, 0x16, 0x76,
	0x6f, 0x69, 0x63, 0x65, 0x5f, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65,
	0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x13, 0x76, 0x6f, 0x69,
	0x63, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x73,
	0x22, 0xd8, 0x04, 0x0a, 0x1a, 0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73,
	0x67, 0x5f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x54, 0x69, 0x70, 0x12,
	0x15, 0x0a, 0x06, 0x74, 0x69, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x05, 0x74, 0x69, 0x70, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x14, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65,
	0x6e, 0x63, 0x65, 0x64, 0x5f, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02,
	0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64,
	0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x66,
	0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x18, 0x03, 0x20,
	0x03, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x55,
	0x6e, 0x69, 0x74, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x61, 0x6e, 0x6f, 0x72, 0x61, 0x6d, 0x61,
	0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f,
	0x70, 0x61, 0x6e, 0x6f, 0x72, 0x61, 0x6d, 0x61, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x12,
	0x29, 0x0a, 0x10, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x66, 0x6f, 0x72, 0x63, 0x65,
	0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x61,
	0x72, 0x69, 0x61, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x76, 0x61, 0x72,
	0x69, 0x61, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61,
	0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61,
	0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x18,
	0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x32,
	0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18,
	0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x50, 0x61, 0x72, 0x61,
	0x6d, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d,
	0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x50, 0x61,
	0x72, 0x61, 0x6d, 0x32, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x70,
	0x61, 0x72, 0x61, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69,
	0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x72, 0x69, 0x6e,
	0x67, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,
	0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x12, 0x2a, 0x0a, 0x11,
	0x74, 0x69, 0x70, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64,
	0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, 0x69, 0x70, 0x54, 0x65, 0x78, 0x74,
	0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x74, 0x69, 0x70, 0x5f,
	0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72,
	0x69, 0x64, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x74, 0x69, 0x70, 0x41, 0x6e,
	0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65,
	0x12, 0x29, 0x0a, 0x10, 0x70, 0x61, 0x6e, 0x6f, 0x72, 0x61, 0x6d, 0x61, 0x5f, 0x73, 0x6e, 0x69,
	0x70, 0x70, 0x65, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x6e, 0x6f,
	0x72, 0x61, 0x6d, 0x61, 0x53, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x18,
	0x43, 0x44, 0x4f, 0x54, 0x41, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x5f, 0x43, 0x68, 0x61,
	0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x6f, 0x75, 0x72,
	0x63, 0x65, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72,
	0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x79,
	0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65,
	0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
	0x5f, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x73,
	0x73, 0x61, 0x67, 0x65, 0x54, 0x65, 0x78, 0x74, 0x2a, 0xe5, 0x22, 0x0a, 0x11, 0x45, 0x44, 0x6f,
	0x74, 0x61, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1f,
	0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x41, 0x64, 0x64, 0x55, 0x6e, 0x69,
	0x74, 0x54, 0x6f, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0xd0, 0x03, 0x12,
	0x18, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x41, 0x49, 0x44, 0x65, 0x62,
	0x75, 0x67, 0x4c, 0x69, 0x6e, 0x65, 0x10, 0xd1, 0x03, 0x12, 0x16, 0x0a, 0x11, 0x44, 0x4f, 0x54,
	0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x68, 0x61, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0xd2,
	0x03, 0x12, 0x20, 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x6f, 0x6d,
	0x62, 0x61, 0x74, 0x48, 0x65, 0x72, 0x6f, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73,
	0x10, 0xd3, 0x03, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43,
	0x6f, 0x6d, 0x62, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x44, 0x61, 0x74, 0x61, 0x10, 0xd4, 0x03, 0x12,
	0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x6f, 0x6d, 0x62, 0x61,
	0x74, 0x4c, 0x6f, 0x67, 0x42, 0x75, 0x6c, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x10, 0xd6, 0x03, 0x12,
	0x23, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74,
	0x65, 0x4c, 0x69, 0x6e, 0x65, 0x61, 0x72, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6c,
	0x65, 0x10, 0xd7, 0x03, 0x12, 0x24, 0x0a, 0x1f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f,
	0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x4c, 0x69, 0x6e, 0x65, 0x61, 0x72, 0x50, 0x72, 0x6f,
	0x6a, 0x65, 0x63, 0x74, 0x69, 0x6c, 0x65, 0x10, 0xd8, 0x03, 0x12, 0x25, 0x0a, 0x20, 0x44, 0x4f,
	0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x44, 0x6f, 0x64, 0x67, 0x65, 0x54, 0x72, 0x61, 0x63, 0x6b,
	0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x10, 0xd9,
	0x03, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x47, 0x6c, 0x6f,
	0x62, 0x61, 0x6c, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x10, 0xda, 0x03,
	0x12, 0x21, 0x0a, 0x1c, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x47, 0x6c, 0x6f, 0x62,
	0x61, 0x6c, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x10, 0xdb, 0x03, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x49,
	0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x10, 0xdc, 0x03,
	0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4c, 0x6f, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x50, 0x69, 0x6e, 0x67, 0x10, 0xdd, 0x03, 0x12, 0x14, 0x0a, 0x0f, 0x44,
	0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4d, 0x61, 0x70, 0x4c, 0x69, 0x6e, 0x65, 0x10, 0xde,
	0x03, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4d, 0x69, 0x6e,
	0x69, 0x4b, 0x69, 0x6c, 0x6c, 0x43, 0x61, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0xdf, 0x03, 0x12,
	0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4d, 0x69, 0x6e, 0x69, 0x6d,
	0x61, 0x70, 0x44, 0x65, 0x62, 0x75, 0x67, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x10, 0xe0, 0x03, 0x12,
	0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4d, 0x69, 0x6e, 0x69, 0x6d,
	0x61, 0x70, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0xe1, 0x03, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f,
	0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4e, 0x65, 0x76, 0x65, 0x72, 0x6d, 0x6f, 0x72, 0x65, 0x52,
	0x65, 0x71, 0x75, 0x69, 0x65, 0x6d, 0x10, 0xe2, 0x03, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54,
	0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x65, 0x61, 0x64, 0x45, 0x76, 0x65,
	0x6e, 0x74, 0x10, 0xe3, 0x03, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d,
	0x5f, 0x53, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x41, 0x75, 0x74, 0x6f, 0x62, 0x75, 0x79, 0x49,
	0x74, 0x65, 0x6d, 0x10, 0xe4, 0x03, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55,
	0x4d, 0x5f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x43, 0x6f, 0x6f, 0x6c, 0x64, 0x6f, 0x77, 0x6e,
	0x10, 0xe5, 0x03, 0x12, 0x21, 0x0a, 0x1c, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53,
	0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6c,
	0x69, 0x63, 0x6b, 0x10, 0xe6, 0x03, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55,
	0x4d, 0x5f, 0x54, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x54, 0x69, 0x70, 0x49, 0x6e, 0x66,
	0x6f, 0x10, 0xe7, 0x03, 0x12, 0x16, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f,
	0x55, 0x6e, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0xe8, 0x03, 0x12, 0x1c, 0x0a, 0x17,
	0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65,
	0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x10, 0xe9, 0x03, 0x12, 0x14, 0x0a, 0x0f, 0x44, 0x4f,
	0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x42, 0x6f, 0x74, 0x43, 0x68, 0x61, 0x74, 0x10, 0xea, 0x03,
	0x12, 0x15, 0x0a, 0x10, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x48, 0x75, 0x64, 0x45,
	0x72, 0x72, 0x6f, 0x72, 0x10, 0xeb, 0x03, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f,
	0x55, 0x4d, 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x64,
	0x10, 0xec, 0x03, 0x12, 0x11, 0x0a, 0x0c, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x50,
	0x69, 0x6e, 0x67, 0x10, 0xed, 0x03, 0x12, 0x16, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55,
	0x4d, 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xee, 0x03, 0x12, 0x22,
	0x0a, 0x1d, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63,
	0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x61, 0x6b, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74, 0x10,
	0xef, 0x03, 0x12, 0x17, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x77,
	0x61, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x10, 0xf0, 0x03, 0x12, 0x16, 0x0a, 0x11, 0x44,
	0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x4c, 0x69, 0x6e, 0x65,
	0x10, 0xf1, 0x03, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x54,
	0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x72, 0x6f, 0x70, 0x10, 0xf2, 0x03,
	0x12, 0x16, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x49, 0x74, 0x65, 0x6d,
	0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xf3, 0x03, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41,
	0x5f, 0x55, 0x4d, 0x5f, 0x48, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x65, 0x6e, 0x44, 0x72, 0x6f,
	0x70, 0x73, 0x10, 0xf4, 0x03, 0x12, 0x16, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d,
	0x5f, 0x43, 0x68, 0x61, 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x10, 0xf5, 0x03, 0x12, 0x1d, 0x0a,
	0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65,
	0x64, 0x58, 0x6d, 0x61, 0x73, 0x47, 0x69, 0x66, 0x74, 0x10, 0xf6, 0x03, 0x12, 0x20, 0x0a, 0x1b,
	0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x68,
	0x61, 0x72, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x10, 0xf7, 0x03, 0x12, 0x1f,
	0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x54, 0x75, 0x74, 0x6f, 0x72, 0x69,
	0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x45, 0x78, 0x70, 0x10, 0xf8, 0x03, 0x12,
	0x20, 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x54, 0x75, 0x74, 0x6f, 0x72,
	0x69, 0x61, 0x6c, 0x50, 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x61, 0x70, 0x10, 0xf9,
	0x03, 0x12, 0x22, 0x0a, 0x1d, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x47, 0x61, 0x6d,
	0x65, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67,
	0x65, 0x64, 0x10, 0xfa, 0x03, 0x12, 0x17, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d,
	0x5f, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x75, 0x72, 0x76, 0x65, 0x79, 0x10, 0xfb, 0x03, 0x12, 0x19,
	0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x54, 0x75, 0x74, 0x6f, 0x72, 0x69,
	0x61, 0x6c, 0x46, 0x61, 0x64, 0x65, 0x10, 0xfc, 0x03, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54,
	0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x41, 0x64, 0x64, 0x51, 0x75, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x67,
	0x45, 0x6e, 0x74, 0x72, 0x79, 0x10, 0xfd, 0x03, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41,
	0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x50, 0x6f, 0x70, 0x75,
	0x70, 0x10, 0xfe, 0x03, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f,
	0x54, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x10, 0xff,
	0x03, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x65, 0x6e,
	0x64, 0x52, 0x6f, 0x73, 0x68, 0x61, 0x6e, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x10, 0x80, 0x04, 0x12,
	0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x65, 0x6e, 0x64, 0x47,
	0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x54, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x70, 0x10, 0x81, 0x04,
	0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x65, 0x6e, 0x64,
	0x46, 0x69, 0x6e, 0x61, 0x6c, 0x47, 0x6f, 0x6c, 0x64, 0x10, 0x82, 0x04, 0x12, 0x16, 0x0a, 0x11,
	0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x73,
	0x67, 0x10, 0x83, 0x04, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f,
	0x43, 0x6f, 0x61, 0x63, 0x68, 0x48, 0x55, 0x44, 0x50, 0x69, 0x6e, 0x67, 0x10, 0x84, 0x04, 0x12,
	0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x6c, 0x69, 0x65, 0x6e,
	0x74, 0x4c, 0x6f, 0x61, 0x64, 0x47, 0x72, 0x69, 0x64, 0x4e, 0x61, 0x76, 0x10, 0x85, 0x04, 0x12,
	0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x54, 0x45, 0x5f, 0x50, 0x72,
	0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6c, 0x65, 0x10, 0x86, 0x04, 0x12, 0x1d, 0x0a, 0x18, 0x44,
	0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x54, 0x45, 0x5f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63,
	0x74, 0x69, 0x6c, 0x65, 0x4c, 0x6f, 0x63, 0x10, 0x87, 0x04, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f,
	0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x54, 0x45, 0x5f, 0x44, 0x6f, 0x74, 0x61, 0x42, 0x6c, 0x6f,
	0x6f, 0x64, 0x49, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x10, 0x88, 0x04, 0x12, 0x1d, 0x0a, 0x18, 0x44,
	0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x54, 0x45, 0x5f, 0x55, 0x6e, 0x69, 0x74, 0x41, 0x6e,
	0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x89, 0x04, 0x12, 0x20, 0x0a, 0x1b, 0x44, 0x4f,
	0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x54, 0x45, 0x5f, 0x55, 0x6e, 0x69, 0x74, 0x41, 0x6e, 0x69,
	0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x10, 0x8a, 0x04, 0x12, 0x18, 0x0a, 0x13,
	0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x50,
	0x69, 0x6e, 0x67, 0x10, 0x8b, 0x04, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55,
	0x4d, 0x5f, 0x53, 0x68, 0x6f, 0x77, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x50, 0x6f, 0x70,
	0x75, 0x70, 0x10, 0x8c, 0x04, 0x12, 0x16, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d,
	0x5f, 0x56, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x10, 0x8d, 0x04, 0x12, 0x17, 0x0a,
	0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x56, 0x6f, 0x74, 0x65, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x10, 0x8e, 0x04, 0x12, 0x14, 0x0a, 0x0f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55,
	0x4d, 0x5f, 0x56, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x10, 0x8f, 0x04, 0x12, 0x19, 0x0a, 0x14,
	0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x53,
	0x74, 0x61, 0x74, 0x65, 0x10, 0x90, 0x04, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f,
	0x55, 0x4d, 0x5f, 0x57, 0x69, 0x6c, 0x6c, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x41,
	0x6c, 0x65, 0x72, 0x74, 0x10, 0x91, 0x04, 0x12, 0x24, 0x0a, 0x1f, 0x44, 0x4f, 0x54, 0x41, 0x5f,
	0x55, 0x4d, 0x5f, 0x54, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x4d, 0x69, 0x6e, 0x69, 0x6d,
	0x61, 0x70, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x92, 0x04, 0x12, 0x16, 0x0a,
	0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d,
	0x4d, 0x52, 0x10, 0x93, 0x04, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d,
	0x5f, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x74, 0x65, 0x61, 0x6c, 0x10, 0x94, 0x04,
	0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x6f, 0x75, 0x72,
	0x69, 0x65, 0x72, 0x4b, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0x95,
	0x04, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x45, 0x6e, 0x65,
	0x6d, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0x96, 0x04, 0x12, 0x1e,
	0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4d,
	0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x10, 0x97, 0x04, 0x12, 0x16,
	0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4d, 0x69, 0x6e, 0x69, 0x54, 0x61,
	0x75, 0x6e, 0x74, 0x10, 0x98, 0x04, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55,
	0x4d, 0x5f, 0x42, 0x75, 0x79, 0x42, 0x61, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x41, 0x6c,
	0x65, 0x72, 0x74, 0x10, 0x99, 0x04, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55,
	0x4d, 0x5f, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x42, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x10, 0x9a,
	0x04, 0x12, 0x20, 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x75, 0x73,
	0x74, 0x6f, 0x6d, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
	0x10, 0x9b, 0x04, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x51,
	0x75, 0x69, 0x63, 0x6b, 0x42, 0x75, 0x79, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0x9c, 0x04, 0x12,
	0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x73,
	0x48, 0x65, 0x72, 0x6f, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x10, 0x9d, 0x04, 0x12, 0x1d,
	0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x10, 0x9e, 0x04, 0x12, 0x1a, 0x0a,
	0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65,
	0x72, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0x9f, 0x04, 0x12, 0x18, 0x0a, 0x13, 0x44, 0x4f, 0x54,
	0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x48, 0x50, 0x4d, 0x61, 0x6e, 0x61, 0x41, 0x6c, 0x65, 0x72, 0x74,
	0x10, 0xa0, 0x04, 0x12, 0x17, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x47,
	0x6c, 0x79, 0x70, 0x68, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xa1, 0x04, 0x12, 0x16, 0x0a, 0x11,
	0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x42, 0x65, 0x61, 0x73, 0x74, 0x43, 0x68, 0x61,
	0x74, 0x10, 0xa2, 0x04, 0x12, 0x26, 0x0a, 0x21, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f,
	0x53, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x55,
	0x6e, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x10, 0xa3, 0x04, 0x12, 0x24, 0x0a, 0x1f,
	0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x75,
	0x64, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x10,
	0xa4, 0x04, 0x12, 0x24, 0x0a, 0x1f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x75,
	0x73, 0x74, 0x6f, 0x6d, 0x48, 0x75, 0x64, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x4d,
	0x6f, 0x64, 0x69, 0x66, 0x79, 0x10, 0xa5, 0x04, 0x12, 0x25, 0x0a, 0x20, 0x44, 0x4f, 0x54, 0x41,
	0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x75, 0x64, 0x45, 0x6c, 0x65,
	0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x10, 0xa6, 0x04, 0x12,
	0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x6f, 0x6d, 0x70, 0x65,
	0x6e, 0x64, 0x69, 0x75, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x10, 0xa7, 0x04, 0x12, 0x1e, 0x0a,
	0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x10, 0xa8, 0x04, 0x12, 0x1c, 0x0a,
	0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0xa9, 0x04, 0x12, 0x1e, 0x0a, 0x19, 0x44,
	0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x6f, 0x6d, 0x62, 0x61, 0x74, 0x4c, 0x6f, 0x67,
	0x44, 0x61, 0x74, 0x61, 0x48, 0x4c, 0x54, 0x56, 0x10, 0xaa, 0x04, 0x12, 0x14, 0x0a, 0x0f, 0x44,
	0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x58, 0x50, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xab,
	0x04, 0x12, 0x20, 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x51, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73,
	0x10, 0xac, 0x04, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4d,
	0x61, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x10, 0xad, 0x04, 0x12,
	0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68,
	0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x10, 0xae, 0x04, 0x12, 0x18, 0x0a, 0x13, 0x44, 0x4f,
	0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x51, 0x75, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x10, 0xaf, 0x04, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f,
	0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x48, 0x65, 0x72, 0x6f, 0x50, 0x69, 0x63, 0x6b, 0x10,
	0xb0, 0x04, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x75,
	0x67, 0x67, 0x65, 0x73, 0x74, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x6f, 0x6c, 0x65, 0x10, 0xb1, 0x04,
	0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4b, 0x69, 0x6c, 0x6c,
	0x63, 0x61, 0x6d, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x61, 0x6b, 0x65, 0x6e, 0x10, 0xb2,
	0x04, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x65, 0x6c,
	0x65, 0x63, 0x74, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x47, 0x6f, 0x6c, 0x64, 0x10, 0xb3,
	0x04, 0x12, 0x1b, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x52, 0x6f, 0x6c,
	0x6c, 0x44, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x10, 0xb4, 0x04, 0x12, 0x1b,
	0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x46, 0x6c, 0x69, 0x70, 0x43, 0x6f,
	0x69, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x10, 0xb5, 0x04, 0x12, 0x23, 0x0a, 0x1e, 0x44,
	0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x74,
	0x65, 0x6d, 0x53, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x10, 0xb6, 0x04,
	0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x54, 0x65, 0x61, 0x6d,
	0x43, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x10, 0xb7,
	0x04, 0x12, 0x25, 0x0a, 0x20, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x65, 0x6e,
	0x64, 0x52, 0x6f, 0x73, 0x68, 0x61, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72,
	0x50, 0x68, 0x61, 0x73, 0x65, 0x10, 0xb8, 0x04, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41,
	0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x68, 0x61, 0x74, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x43, 0x6f, 0x6f,
	0x6c, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0xb9, 0x04, 0x12, 0x21, 0x0a, 0x1c, 0x44, 0x4f, 0x54, 0x41,
	0x5f, 0x55, 0x4d, 0x5f, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x41, 0x6c, 0x6c, 0x53, 0x74,
	0x61, 0x74, 0x50, 0x6f, 0x70, 0x75, 0x70, 0x73, 0x10, 0xba, 0x04, 0x12, 0x21, 0x0a, 0x1c, 0x44,
	0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x54, 0x45, 0x5f, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f,
	0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6c, 0x65, 0x10, 0xbb, 0x04, 0x12, 0x1e,
	0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x65,
	0x6c, 0x69, 0x63, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x10, 0xbc, 0x04, 0x12, 0x27,
	0x0a, 0x22, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74,
	0x79, 0x44, 0x72, 0x61, 0x66, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x41, 0x62, 0x69,
	0x6c, 0x69, 0x74, 0x79, 0x10, 0xbd, 0x04, 0x12, 0x15, 0x0a, 0x10, 0x44, 0x4f, 0x54, 0x41, 0x5f,
	0x55, 0x4d, 0x5f, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x6f, 0x6c, 0x64, 0x10, 0xbe, 0x04, 0x12, 0x19,
	0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65,
	0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x10, 0xbf, 0x04, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54,
	0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x61, 0x6c, 0x75, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65,
	0x72, 0x10, 0xc0, 0x04, 0x12, 0x15, 0x0a, 0x10, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f,
	0x54, 0x69, 0x70, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xc1, 0x04, 0x12, 0x1d, 0x0a, 0x18, 0x44,
	0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x51, 0x75,
	0x65, 0x72, 0x79, 0x55, 0x6e, 0x69, 0x74, 0x10, 0xc2, 0x04, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f,
	0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x54, 0x65, 0x6c, 0x65, 0x70,
	0x6f, 0x72, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xc3, 0x04, 0x12, 0x23, 0x0a, 0x1e, 0x44,
	0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4d, 0x61, 0x72, 0x73, 0x41, 0x72, 0x65, 0x6e, 0x61,
	0x4f, 0x66, 0x42, 0x6c, 0x6f, 0x6f, 0x64, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x10, 0xc4, 0x04,
	0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x45, 0x53, 0x41, 0x72,
	0x63, 0x61, 0x6e, 0x61, 0x43, 0x6f, 0x6d, 0x62, 0x6f, 0x10, 0xc5, 0x04, 0x12, 0x21, 0x0a, 0x1c,
	0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x45, 0x53, 0x41, 0x72, 0x63, 0x61, 0x6e, 0x61,
	0x43, 0x6f, 0x6d, 0x62, 0x6f, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x10, 0xc6, 0x04, 0x12,
	0x20, 0x0a, 0x1b, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x48, 0x69, 0x67, 0x68, 0x46,
	0x69, 0x76, 0x65, 0x4c, 0x65, 0x66, 0x74, 0x48, 0x61, 0x6e, 0x67, 0x69, 0x6e, 0x67, 0x10, 0xc7,
	0x04, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x48, 0x69, 0x67,
	0x68, 0x46, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x10, 0xc8,
	0x04, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x53, 0x68, 0x6f,
	0x76, 0x65, 0x6c, 0x55, 0x6e, 0x65, 0x61, 0x72, 0x74, 0x68, 0x10, 0xc9, 0x04, 0x12, 0x1d, 0x0a,
	0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x45, 0x4d, 0x5f, 0x49, 0x6e, 0x76, 0x6f, 0x6b, 0x65, 0x72,
	0x53, 0x70, 0x65, 0x6c, 0x6c, 0x43, 0x61, 0x73, 0x74, 0x10, 0xca, 0x04, 0x12, 0x17, 0x0a, 0x12,
	0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x52, 0x61, 0x64, 0x61, 0x72, 0x41, 0x6c, 0x65,
	0x72, 0x74, 0x10, 0xcb, 0x04, 0x12, 0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d,
	0x5f, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0xcc, 0x04,
	0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x54, 0x61, 0x6c, 0x65,
	0x6e, 0x74, 0x54, 0x72, 0x65, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xcd, 0x04, 0x12, 0x1f,
	0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x51, 0x75, 0x65, 0x75, 0x65, 0x64,
	0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x10, 0xce, 0x04, 0x12,
	0x1b, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x44, 0x65, 0x62, 0x75, 0x67,
	0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x10, 0xcf, 0x04, 0x12, 0x1a, 0x0a, 0x15,
	0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4f, 0x4d, 0x41, 0x72, 0x63, 0x61, 0x6e, 0x61,
	0x43, 0x6f, 0x6d, 0x62, 0x6f, 0x10, 0xd0, 0x04, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41,
	0x5f, 0x55, 0x4d, 0x5f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x65, 0x75, 0x74, 0x72, 0x61, 0x6c,
	0x49, 0x74, 0x65, 0x6d, 0x10, 0xd1, 0x04, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f,
	0x55, 0x4d, 0x5f, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72,
	0x65, 0x64, 0x10, 0xd2, 0x04, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d,
	0x5f, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x73, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x58,
	0x50, 0x10, 0xd3, 0x04, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f,
	0x4d, 0x6f, 0x76, 0x65, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x54, 0x6f, 0x55, 0x6e, 0x69, 0x74,
	0x10, 0xd4, 0x04, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x50,
	0x61, 0x75, 0x73, 0x65, 0x4d, 0x69, 0x6e, 0x69, 0x67, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61,
	0x10, 0xd5, 0x04, 0x12, 0x27, 0x0a, 0x22, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x56,
	0x65, 0x72, 0x73, 0x75, 0x73, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65,
	0x72, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x10, 0xd6, 0x04, 0x12, 0x1e, 0x0a, 0x19,
	0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x51, 0x6f, 0x50, 0x5f, 0x41, 0x72, 0x63, 0x61,
	0x6e, 0x61, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x10, 0xd8, 0x04, 0x12, 0x1e, 0x0a, 0x19,
	0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x48, 0x6f, 0x74, 0x50, 0x6f, 0x74, 0x61, 0x74,
	0x6f, 0x5f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x10, 0xd9, 0x04, 0x12, 0x1f, 0x0a, 0x1a,
	0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x48, 0x6f, 0x74, 0x50, 0x6f, 0x74, 0x61, 0x74,
	0x6f, 0x5f, 0x45, 0x78, 0x70, 0x6c, 0x6f, 0x64, 0x65, 0x64, 0x10, 0xda, 0x04, 0x12, 0x1f, 0x0a,
	0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x57, 0x4b, 0x5f, 0x41, 0x72, 0x63, 0x61,
	0x6e, 0x61, 0x5f, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x10, 0xdb, 0x04, 0x12, 0x24,
	0x0a, 0x1f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43,
	0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73,
	0x73, 0x10, 0xdc, 0x04, 0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f,
	0x57, 0x52, 0x41, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73,
	0x10, 0xdd, 0x04, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x57,
	0x52, 0x41, 0x72, 0x63, 0x61, 0x6e, 0x61, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x10, 0xde,
	0x04, 0x12, 0x1f, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x45, 0x6d, 0x70,
	0x74, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x6c, 0x6f, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10,
	0xdf, 0x04, 0x12, 0x1c, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x41, 0x67,
	0x68, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x10, 0xe0, 0x04,
	0x12, 0x1d, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x50, 0x69, 0x6e, 0x67,
	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0xe1, 0x04, 0x12,
	0x19, 0x0a, 0x14, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x4d, 0x75, 0x74, 0x65, 0x64,
	0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x10, 0xe2, 0x04, 0x12, 0x1a, 0x0a, 0x15, 0x44, 0x4f,
	0x54, 0x41, 0x5f, 0x55, 0x4d, 0x5f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c,
	0x54, 0x69, 0x70, 0x10, 0xe3, 0x04, 0x12, 0x18, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55,
	0x4d, 0x5f, 0x43, 0x68, 0x61, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x10, 0xe4, 0x04,
	0x2a, 0x90, 0x1e, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d,
	0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x21, 0x0a, 0x14, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d,
	0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0xff,
	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x48, 0x41,
	0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x48, 0x45, 0x52, 0x4f, 0x5f, 0x4b,
	0x49, 0x4c, 0x4c, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45,
	0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x48, 0x45, 0x52, 0x4f, 0x5f, 0x44, 0x45, 0x4e, 0x59, 0x10,
	0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47,
	0x45, 0x5f, 0x42, 0x41, 0x52, 0x52, 0x41, 0x43, 0x4b, 0x53, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x10,
	0x02, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47,
	0x45, 0x5f, 0x54, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x10, 0x03, 0x12, 0x1b,
	0x0a, 0x17, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x54,
	0x4f, 0x57, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x4e, 0x59, 0x10, 0x04, 0x12, 0x1b, 0x0a, 0x17, 0x43,
	0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x46, 0x49, 0x52, 0x53,
	0x54, 0x42, 0x4c, 0x4f, 0x4f, 0x44, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x48, 0x41, 0x54,
	0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4b, 0x5f,
	0x4b, 0x49, 0x4c, 0x4c, 0x10, 0x06, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d,
	0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x42, 0x55, 0x59, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x07,
	0x12, 0x16, 0x0a, 0x12, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45,
	0x5f, 0x41, 0x45, 0x47, 0x49, 0x53, 0x10, 0x08, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x48, 0x41, 0x54,
	0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x4f, 0x53, 0x48, 0x41, 0x4e, 0x5f,
	0x4b, 0x49, 0x4c, 0x4c, 0x10, 0x09, 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d,
	0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x52, 0x49, 0x45, 0x52, 0x5f, 0x4c,
	0x4f, 0x53, 0x54, 0x10, 0x0a, 0x12, 0x22, 0x0a, 0x1e, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45,
	0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x52, 0x49, 0x45, 0x52, 0x5f, 0x52, 0x45,
	0x53, 0x50, 0x41, 0x57, 0x4e, 0x45, 0x44, 0x10, 0x0b, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x48, 0x41,
	0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x47, 0x4c, 0x59, 0x50, 0x48, 0x5f,
	0x55, 0x53, 0x45, 0x44, 0x10, 0x0c, 0x12, 0x1e, 0x0a, 0x1a, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d,
	0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x55, 0x52, 0x43,
	0x48, 0x41, 0x53, 0x45, 0x10, 0x0d, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d,
	0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x10, 0x0e,
	0x12, 0x1b, 0x0a, 0x17, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45,
	0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x10, 0x0f, 0x12, 0x2e, 0x0a,
	0x2a, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x44, 0x49,
	0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x57, 0x41, 0x49, 0x54, 0x5f, 0x46, 0x4f,
	0x52, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x10, 0x10, 0x12, 0x2a, 0x0a,
	0x26, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x44, 0x49,
	0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x52, 0x45,
	0x4d, 0x41, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x11, 0x12, 0x31, 0x0a, 0x2d, 0x43, 0x48, 0x41,
	0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e,
	0x4e, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x41, 0x49, 0x4e,
	0x49, 0x4e, 0x47, 0x5f, 0x50, 0x4c, 0x55, 0x52, 0x41, 0x4c, 0x10, 0x12, 0x12, 0x1a, 0x0a, 0x16,
	0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x45, 0x43,
	0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x10, 0x13, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x48, 0x41, 0x54,
	0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f,
	0x4c, 0x45, 0x46, 0x54, 0x10, 0x14, 0x12, 0x1e, 0x0a, 0x1a, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d,
	0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x41, 0x46, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x4c,
	0x45, 0x41, 0x56, 0x45, 0x10, 0x15, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d,
	0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x45, 0x5f, 0x50, 0x49, 0x43, 0x4b,
	0x55, 0x50, 0x10, 0x16, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53,
	0x53, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x45, 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4c, 0x45,
	0x10, 0x17, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41,
	0x47, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x45, 0x5f, 0x44, 0x45, 0x4e, 0x59, 0x10, 0x72, 0x12, 0x19,
	0x0a, 0x15, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x49,
	0x4e, 0x54, 0x48, 0x45, 0x42, 0x41, 0x47, 0x10, 0x18, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x48, 0x41,
	0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x45, 0x43, 0x52, 0x45, 0x54,
	0x53, 0x48, 0x4f, 0x50, 0x10, 0x19, 0x12, 0x23, 0x0a, 0x1f, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d,
	0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x41, 0x55, 0x54, 0x4f,
	0x50, 0x55, 0x52, 0x43, 0x48, 0x41, 0x53, 0x45, 0x44, 0x10, 0x1a, 0x12, 0x1f, 0x0a, 0x1b, 0x43,
	0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x49, 0x54, 0x45, 0x4d,
	0x53, 0x5f, 0x43, 0x4f, 0x4d, 0x42, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x1b, 0x12, 0x1d, 0x0a, 0x19,
	0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x55, 0x50,
	0x45, 0x52, 0x5f, 0x43, 0x52, 0x45, 0x45, 0x50, 0x53, 0x10, 0x1c, 0x12, 0x25, 0x0a, 0x21, 0x43,
	0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x43, 0x41, 0x4e, 0x54,
	0x5f, 0x55, 0x53, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x54, 0x45, 0x4d,
	0x10, 0x1d, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41,
	0x47, 0x45, 0x5f, 0x43, 0x41, 0x4e, 0x54, 0x50, 0x41, 0x55, 0x53, 0x45, 0x10, 0x1f, 0x12, 0x1d,
	0x0a, 0x19, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x4e,
	0x4f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x53, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x20, 0x12, 0x1d, 0x0a,
	0x19, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x43, 0x41,
	0x4e, 0x54, 0x50, 0x41, 0x55, 0x53, 0x45, 0x59, 0x45, 0x54, 0x10, 0x21, 0x12, 0x17, 0x0a, 0x13,
	0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x50, 0x41, 0x55,
	0x53, 0x45, 0x44, 0x10, 0x22, 0x12, 0x22, 0x0a, 0x1e, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45,
	0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x55, 0x4e, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x43, 0x4f,
	0x55, 0x4e, 0x54, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x23, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x48, 0x41,
	0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x55, 0x4e, 0x50, 0x41, 0x55, 0x53,
	0x45, 0x44, 0x10, 0x24, 0x12, 0x1e, 0x0a, 0x1a, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53,
	0x53, 0x41, 0x47, 0x45, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x55, 0x4e, 0x50, 0x41, 0x55, 0x53,
	0x45, 0x44, 0x10, 0x25, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53,
	0x53, 0x41, 0x47, 0x45, 0x5f, 0x59, 0x4f, 0x55, 0x50, 0x41, 0x55, 0x53, 0x45, 0x44, 0x10, 0x26,
	0x12, 0x20, 0x0a, 0x1c, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45,
	0x5f, 0x43, 0x41, 0x4e, 0x54, 0x55, 0x4e, 0x50, 0x41, 0x55, 0x53, 0x45, 0x54, 0x45, 0x41, 0x4d,
	0x10, 0x27, 0x12, 0x22, 0x0a, 0x1e, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41,
	0x47, 0x45, 0x5f, 0x56, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x5f, 0x42, 0x41,
	0x4e, 0x4e, 0x45, 0x44, 0x10, 0x29, 0x12, 0x2e, 0x0a, 0x2a, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d,
	0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x50, 0x45, 0x43, 0x54, 0x41, 0x54, 0x4f, 0x52,
	0x53, 0x5f, 0x57, 0x41, 0x54, 0x43, 0x48, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x48, 0x49, 0x53, 0x5f,
	0x47, 0x41, 0x4d, 0x45, 0x10, 0x2a, 0x12, 0x20, 0x0a, 0x1c, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d,
	0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x45,
	0x4d, 0x49, 0x4e, 0x44, 0x45, 0x52, 0x10, 0x2b, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x48, 0x41, 0x54,
	0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x45, 0x43, 0x4f, 0x4e, 0x5f, 0x49, 0x54,
	0x45, 0x4d, 0x10, 0x2c, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53,
	0x53, 0x41, 0x47, 0x45, 0x5f, 0x54, 0x41, 0x55, 0x4e, 0x54, 0x10, 0x2d, 0x12, 0x17, 0x0a, 0x13,
	0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x41, 0x4e,
	0x44, 0x4f, 0x4d, 0x10, 0x2e, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45,
	0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x44, 0x5f, 0x54, 0x55, 0x52, 0x4e, 0x10, 0x2f, 0x12,
	0x20, 0x0a, 0x1c, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f,
	0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x42, 0x4f, 0x4e, 0x55, 0x53, 0x10,
	0x31, 0x12, 0x21, 0x0a, 0x1d, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47,
	0x45, 0x5f, 0x4e, 0x4f, 0x5f, 0x42, 0x41, 0x54, 0x54, 0x4c, 0x45, 0x5f, 0x50, 0x4f, 0x49, 0x4e,
	0x54, 0x53, 0x10, 0x32, 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53,
	0x53, 0x41, 0x47, 0x45, 0x5f, 0x44, 0x45, 0x4e, 0x49, 0x45, 0x44, 0x5f, 0x41, 0x45, 0x47, 0x49,
	0x53, 0x10, 0x33, 0x12, 0x1e, 0x0a, 0x1a, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53,
	0x41, 0x47, 0x45, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x41,
	0x4c, 0x10, 0x34, 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53,
	0x41, 0x47, 0x45, 0x5f, 0x41, 0x45, 0x47, 0x49, 0x53, 0x5f, 0x53, 0x54, 0x4f, 0x4c, 0x45, 0x4e,
	0x10, 0x35, 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41,
	0x47, 0x45, 0x5f, 0x52, 0x4f, 0x53, 0x48, 0x41, 0x4e, 0x5f, 0x43, 0x41, 0x4e, 0x44, 0x59, 0x10,
	0x36, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47,
	0x45, 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x47, 0x49, 0x46, 0x54, 0x45, 0x44, 0x10, 0x37, 0x12,
	0x27, 0x0a, 0x23, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f,
	0x48, 0x45, 0x52, 0x4f, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x47,
	0x52, 0x45, 0x45, 0x56, 0x49, 0x4c, 0x10, 0x38, 0x12, 0x28, 0x0a, 0x24, 0x43, 0x48, 0x41, 0x54,
	0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x48, 0x4f, 0x4c, 0x44, 0x4f, 0x55, 0x54,
	0x5f, 0x54, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x45, 0x44,
	0x10, 0x39, 0x12, 0x27, 0x0a, 0x23, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41,
	0x47, 0x45, 0x5f, 0x48, 0x4f, 0x4c, 0x44, 0x4f, 0x55, 0x54, 0x5f, 0x57, 0x41, 0x4c, 0x4c, 0x5f,
	0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x45, 0x44, 0x10, 0x3a, 0x12, 0x26, 0x0a, 0x22, 0x43,
	0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x48, 0x4f, 0x4c, 0x44,
	0x4f, 0x55, 0x54, 0x5f, 0x57, 0x41, 0x4c, 0x4c, 0x5f, 0x46, 0x49, 0x4e, 0x49, 0x53, 0x48, 0x45,
	0x44, 0x10, 0x3b, 0x12, 0x29, 0x0a, 0x25, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53,
	0x41, 0x47, 0x45, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f,
	0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, 0x44, 0x5f, 0x48, 0x45, 0x52, 0x4f, 0x10, 0x3e, 0x12, 0x31,
	0x0a, 0x2d, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x41,
	0x42, 0x41, 0x4e, 0x44, 0x4f, 0x4e, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, 0x44, 0x5f, 0x48,
	0x45, 0x52, 0x4f, 0x5f, 0x45, 0x58, 0x50, 0x4c, 0x41, 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10,
	0x3f, 0x12, 0x28, 0x0a, 0x24, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47,
	0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x4c, 0x49, 0x4d,
	0x49, 0x54, 0x45, 0x44, 0x5f, 0x48, 0x45, 0x52, 0x4f, 0x10, 0x40, 0x12, 0x33, 0x0a, 0x2f, 0x43,
	0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x4c, 0x4f, 0x57, 0x5f,
	0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54,
	0x45, 0x44, 0x5f, 0x45, 0x58, 0x50, 0x4c, 0x41, 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x41,
	0x12, 0x2c, 0x0a, 0x28, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45,
	0x5f, 0x52, 0x45, 0x43, 0x52, 0x55, 0x49, 0x54, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x52, 0x4f,
	0x50, 0x5f, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x42, 0x4f, 0x4e, 0x55, 0x53, 0x10, 0x42, 0x12, 0x31,
	0x0a, 0x2d, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x46,
	0x52, 0x4f, 0x53, 0x54, 0x49, 0x56, 0x55, 0x53, 0x5f, 0x53, 0x48, 0x49, 0x4e, 0x49, 0x4e, 0x47,
	0x5f, 0x42, 0x4f, 0x4f, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10,
	0x43, 0x12, 0x20, 0x0a, 0x1c, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47,
	0x45, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f, 0x41, 0x46,
	0x4b, 0x10, 0x49, 0x12, 0x32, 0x0a, 0x2e, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53,
	0x41, 0x47, 0x45, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x5f,
	0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x4f,
	0x5f, 0x4c, 0x4f, 0x4e, 0x47, 0x10, 0x4a, 0x12, 0x21, 0x0a, 0x1d, 0x43, 0x48, 0x41, 0x54, 0x5f,
	0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x41,
	0x42, 0x41, 0x4e, 0x44, 0x4f, 0x4e, 0x45, 0x44, 0x10, 0x4b, 0x12, 0x25, 0x0a, 0x21, 0x43, 0x48,
	0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45,
	0x52, 0x5f, 0x41, 0x42, 0x41, 0x4e, 0x44, 0x4f, 0x4e, 0x45, 0x44, 0x5f, 0x41, 0x46, 0x4b, 0x10,
	0x4c, 0x12, 0x37, 0x0a, 0x33, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47,
	0x45, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x41, 0x42, 0x41, 0x4e, 0x44, 0x4f, 0x4e,
	0x45, 0x44, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x5f,
	0x54, 0x4f, 0x4f, 0x5f, 0x4c, 0x4f, 0x4e, 0x47, 0x10, 0x4d, 0x12, 0x23, 0x0a, 0x1f, 0x43, 0x48,
	0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x57, 0x49, 0x4c, 0x4c, 0x5f,
	0x4e, 0x4f, 0x54, 0x5f, 0x42, 0x45, 0x5f, 0x53, 0x43, 0x4f, 0x52, 0x45, 0x44, 0x10, 0x4e, 0x12,
	0x2a, 0x0a, 0x26, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f,
	0x57, 0x49, 0x4c, 0x4c, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x42, 0x45, 0x5f, 0x53, 0x43, 0x4f, 0x52,
	0x45, 0x44, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x45, 0x44, 0x10, 0x4f, 0x12, 0x2b, 0x0a, 0x27, 0x43,
	0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x57, 0x49, 0x4c, 0x4c,
	0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x42, 0x45, 0x5f, 0x53, 0x43, 0x4f, 0x52, 0x45, 0x44, 0x5f, 0x4e,
	0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x10, 0x50, 0x12, 0x32, 0x0a, 0x2e, 0x43, 0x48, 0x41, 0x54,
	0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x57, 0x49, 0x4c, 0x4c, 0x5f, 0x4e, 0x4f,
	0x54, 0x5f, 0x42, 0x45, 0x5f, 0x53, 0x43, 0x4f, 0x52, 0x45, 0x44, 0x5f, 0x4e, 0x45, 0x54, 0x57,
	0x4f, 0x52, 0x4b, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x45, 0x44, 0x10, 0x51, 0x12, 0x29, 0x0a, 0x25,
	0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x43, 0x41, 0x4e,
	0x5f, 0x51, 0x55, 0x49, 0x54, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x4f, 0x55, 0x54, 0x5f, 0x41, 0x42,
	0x41, 0x4e, 0x44, 0x4f, 0x4e, 0x10, 0x52, 0x12, 0x3a, 0x0a, 0x36, 0x43, 0x48, 0x41, 0x54, 0x5f,
	0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x45, 0x44, 0x5f, 0x47,
	0x41, 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x49, 0x4c, 0x4c, 0x5f, 0x53, 0x43, 0x4f, 0x52, 0x45, 0x44,
	0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x52, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x5f, 0x4c, 0x4f, 0x53,
	0x53, 0x10, 0x53, 0x12, 0x38, 0x0a, 0x34, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53,
	0x41, 0x47, 0x45, 0x5f, 0x41, 0x42, 0x41, 0x4e, 0x44, 0x4f, 0x4e, 0x5f, 0x52, 0x41, 0x4e, 0x4b,
	0x45, 0x44, 0x5f, 0x42, 0x45, 0x46, 0x4f, 0x52, 0x45, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x5f,
	0x42, 0x4c, 0x4f, 0x4f, 0x44, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x59, 0x10, 0x54, 0x12, 0x21, 0x0a,
	0x1d, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x43, 0x4f,
	0x4d, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x55, 0x4d, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x10, 0x55,
	0x12, 0x2a, 0x0a, 0x26, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45,
	0x5f, 0x56, 0x49, 0x43, 0x54, 0x4f, 0x52, 0x59, 0x5f, 0x50, 0x52, 0x45, 0x44, 0x49, 0x43, 0x54,
	0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4b, 0x10, 0x56, 0x12, 0x22, 0x0a, 0x1e,
	0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x41, 0x53, 0x53,
	0x41, 0x53, 0x53, 0x49, 0x4e, 0x5f, 0x41, 0x4e, 0x4e, 0x4f, 0x55, 0x4e, 0x43, 0x45, 0x10, 0x57,
	0x12, 0x21, 0x0a, 0x1d, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45,
	0x5f, 0x41, 0x53, 0x53, 0x41, 0x53, 0x53, 0x49, 0x4e, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53,
	0x53, 0x10, 0x58, 0x12, 0x20, 0x0a, 0x1c, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53,
	0x41, 0x47, 0x45, 0x5f, 0x41, 0x53, 0x53, 0x41, 0x53, 0x53, 0x49, 0x4e, 0x5f, 0x44, 0x45, 0x4e,
	0x49, 0x45, 0x44, 0x10, 0x59, 0x12, 0x37, 0x0a, 0x33, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45,
	0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x56, 0x49, 0x43, 0x54, 0x4f, 0x52, 0x59, 0x5f, 0x50, 0x52,
	0x45, 0x44, 0x49, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x5f,
	0x55, 0x53, 0x45, 0x52, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x52, 0x4d, 0x10, 0x5a, 0x12, 0x1c,
	0x0a, 0x18, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x45,
	0x46, 0x46, 0x49, 0x47, 0x59, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x10, 0x5b, 0x12, 0x2b, 0x0a, 0x27,
	0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x56, 0x4f, 0x49,
	0x43, 0x45, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x5f, 0x42, 0x41, 0x4e, 0x4e, 0x45, 0x44, 0x5f, 0x4f,
	0x56, 0x45, 0x52, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x5c, 0x12, 0x22, 0x0a, 0x1e, 0x43, 0x48, 0x41,
	0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x59, 0x45, 0x41, 0x52, 0x5f, 0x42,
	0x45, 0x41, 0x53, 0x54, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x5d, 0x12, 0x20, 0x0a,
	0x1c, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x50, 0x41,
	0x55, 0x53, 0x45, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x5e, 0x12,
	0x1e, 0x0a, 0x1a, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f,
	0x43, 0x4f, 0x49, 0x4e, 0x53, 0x5f, 0x57, 0x41, 0x47, 0x45, 0x52, 0x45, 0x44, 0x10, 0x5f, 0x12,
	0x23, 0x0a, 0x1f, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f,
	0x48, 0x45, 0x52, 0x4f, 0x5f, 0x4e, 0x4f, 0x4d, 0x49, 0x4e, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x42,
	0x41, 0x4e, 0x10, 0x60, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53,
	0x53, 0x41, 0x47, 0x45, 0x5f, 0x48, 0x45, 0x52, 0x4f, 0x5f, 0x42, 0x41, 0x4e, 0x4e, 0x45, 0x44,
	0x10, 0x61, 0x12, 0x1f, 0x0a, 0x1b, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41,
	0x47, 0x45, 0x5f, 0x48, 0x45, 0x52, 0x4f, 0x5f, 0x42, 0x41, 0x4e, 0x5f, 0x43, 0x4f, 0x55, 0x4e,
	0x54, 0x10, 0x62, 0x12, 0x1e, 0x0a, 0x1a, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53,
	0x41, 0x47, 0x45, 0x5f, 0x52, 0x49, 0x56, 0x45, 0x52, 0x5f, 0x50, 0x41, 0x49, 0x4e, 0x54, 0x45,
	0x44, 0x10, 0x63, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53,
	0x41, 0x47, 0x45, 0x5f, 0x53, 0x43, 0x41, 0x4e, 0x5f, 0x55, 0x53, 0x45, 0x44, 0x10, 0x64, 0x12,
	0x1e, 0x0a, 0x1a, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f,
	0x53, 0x48, 0x52, 0x49, 0x4e, 0x45, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x65, 0x12,
	0x22, 0x0a, 0x1e, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f,
	0x57, 0x41, 0x47, 0x45, 0x52, 0x5f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x5f, 0x53, 0x50, 0x45, 0x4e,
	0x54, 0x10, 0x66, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53,
	0x41, 0x47, 0x45, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x5f, 0x57, 0x41, 0x47, 0x45, 0x52, 0x10, 0x67,
	0x12, 0x24, 0x0a, 0x20, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45,
	0x5f, 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x4d, 0x49,
	0x4e, 0x44, 0x45, 0x52, 0x10, 0x68, 0x12, 0x25, 0x0a, 0x21, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d,
	0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x4f, 0x42, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f,
	0x57, 0x41, 0x52, 0x44, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x69, 0x12, 0x23, 0x0a,
	0x1f, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x45,
	0x4e, 0x54, 0x52, 0x59, 0x5f, 0x57, 0x41, 0x52, 0x44, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x45, 0x44,
	0x10, 0x6a, 0x12, 0x2d, 0x0a, 0x29, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41,
	0x47, 0x45, 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x4c, 0x41, 0x43, 0x45, 0x44, 0x5f, 0x49,
	0x4e, 0x5f, 0x4e, 0x45, 0x55, 0x54, 0x52, 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x53, 0x48, 0x10,
	0x6b, 0x12, 0x24, 0x0a, 0x20, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47,
	0x45, 0x5f, 0x48, 0x45, 0x52, 0x4f, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x49, 0x4e,
	0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x6c, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x48, 0x41, 0x54, 0x5f,
	0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x42, 0x4f, 0x55, 0x4e, 0x54, 0x59, 0x10, 0x6d,
	0x12, 0x24, 0x0a, 0x20, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45,
	0x5f, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x44, 0x52, 0x41, 0x46, 0x54, 0x5f, 0x53,
	0x54, 0x41, 0x52, 0x54, 0x10, 0x6e, 0x12, 0x21, 0x0a, 0x1d, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d,
	0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x48, 0x45, 0x52, 0x4f, 0x5f, 0x46, 0x4f, 0x55, 0x4e,
	0x44, 0x5f, 0x43, 0x41, 0x4e, 0x44, 0x59, 0x10, 0x6f, 0x12, 0x27, 0x0a, 0x23, 0x43, 0x48, 0x41,
	0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54,
	0x59, 0x5f, 0x44, 0x52, 0x41, 0x46, 0x54, 0x5f, 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x45, 0x44,
	0x10, 0x70, 0x12, 0x28, 0x0a, 0x24, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41,
	0x47, 0x45, 0x5f, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4f, 0x41, 0x43, 0x48,
	0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x71, 0x12, 0x25, 0x0a, 0x21,
	0x43, 0x48, 0x41, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x43, 0x41, 0x4e,
	0x54, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x54, 0x4f, 0x4f, 0x5f, 0x45, 0x41, 0x52, 0x4c,
	0x59, 0x10, 0x73, 0x2a, 0xb2, 0x01, 0x0a, 0x1d, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4e, 0x4f, 0x5f,
	0x42, 0x41, 0x54, 0x54, 0x4c, 0x45, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x53, 0x5f, 0x52, 0x45,
	0x41, 0x53, 0x4f, 0x4e, 0x53, 0x12, 0x25, 0x0a, 0x21, 0x4e, 0x4f, 0x5f, 0x42, 0x41, 0x54, 0x54,
	0x4c, 0x45, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x53, 0x5f, 0x57, 0x52, 0x4f, 0x4e, 0x47, 0x5f,
	0x4c, 0x4f, 0x42, 0x42, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e,
	0x4e, 0x4f, 0x5f, 0x42, 0x41, 0x54, 0x54, 0x4c, 0x45, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x53,
	0x5f, 0x50, 0x52, 0x41, 0x43, 0x54, 0x49, 0x43, 0x45, 0x5f, 0x42, 0x4f, 0x54, 0x53, 0x10, 0x02,
	0x12, 0x23, 0x0a, 0x1f, 0x4e, 0x4f, 0x5f, 0x42, 0x41, 0x54, 0x54, 0x4c, 0x45, 0x5f, 0x50, 0x4f,
	0x49, 0x4e, 0x54, 0x53, 0x5f, 0x43, 0x48, 0x45, 0x41, 0x54, 0x53, 0x5f, 0x45, 0x4e, 0x41, 0x42,
	0x4c, 0x45, 0x44, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x4e, 0x4f, 0x5f, 0x42, 0x41, 0x54, 0x54,
	0x4c, 0x45, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x53, 0x5f, 0x4c, 0x4f, 0x57, 0x5f, 0x50, 0x52,
	0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x10, 0x04, 0x2a, 0xcf, 0x01, 0x0a, 0x17, 0x44, 0x4f, 0x54,
	0x41, 0x5f, 0x43, 0x48, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x49,
	0x4f, 0x4e, 0x41, 0x4c, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x43, 0x4f, 0x4f,
	0x50, 0x5f, 0x42, 0x41, 0x54, 0x54, 0x4c, 0x45, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x53, 0x5f,
	0x52, 0x55, 0x4c, 0x45, 0x53, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x49, 0x4e, 0x46, 0x4f, 0x5f,
	0x46, 0x52, 0x4f, 0x53, 0x54, 0x49, 0x56, 0x55, 0x53, 0x5f, 0x41, 0x42, 0x41, 0x4e, 0x44, 0x4f,
	0x4e, 0x5f, 0x52, 0x45, 0x4d, 0x49, 0x4e, 0x44, 0x45, 0x52, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14,
	0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x52, 0x41, 0x4e, 0x4b, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x4d, 0x49,
	0x4e, 0x44, 0x45, 0x52, 0x10, 0x03, 0x12, 0x2b, 0x0a, 0x27, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x43,
	0x4f, 0x4f, 0x50, 0x5f, 0x4c, 0x4f, 0x57, 0x5f, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59,
	0x5f, 0x50, 0x41, 0x53, 0x53, 0x49, 0x56, 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x49, 0x4e, 0x44, 0x45,
	0x52, 0x10, 0x04, 0x12, 0x25, 0x0a, 0x21, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x43, 0x55, 0x53, 0x54,
	0x4f, 0x4d, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x50, 0x45, 0x4e, 0x41, 0x4c, 0x54, 0x59, 0x5f,
	0x52, 0x45, 0x4d, 0x49, 0x4e, 0x44, 0x45, 0x52, 0x10, 0x05, 0x2a, 0xbc, 0x03, 0x0a, 0x16, 0x44,
	0x4f, 0x54, 0x41, 0x5f, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47,
	0x5f, 0x54, 0x59, 0x50, 0x45, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59,
	0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x01, 0x12, 0x15, 0x0a,
	0x11, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x41,
	0x4e, 0x41, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f,
	0x50, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x4f, 0x4f, 0x4c, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x03, 0x12,
	0x16, 0x0a, 0x12, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f,
	0x45, 0x4e, 0x45, 0x4d, 0x59, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x42, 0x49, 0x4c, 0x49,
	0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x55, 0x4e, 0x4c, 0x45, 0x41, 0x52, 0x4e, 0x45,
	0x44, 0x10, 0x05, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50,
	0x49, 0x4e, 0x47, 0x5f, 0x49, 0x4e, 0x42, 0x41, 0x43, 0x4b, 0x50, 0x41, 0x43, 0x4b, 0x10, 0x06,
	0x12, 0x18, 0x0a, 0x14, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47,
	0x5f, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x53, 0x48, 0x10, 0x07, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x42,
	0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x4f, 0x4e, 0x43, 0x4f, 0x55,
	0x52, 0x49, 0x45, 0x52, 0x10, 0x08, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54,
	0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x4c, 0x4c, 0x59, 0x10, 0x09, 0x12, 0x1c, 0x0a,
	0x18, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x4c, 0x45,
	0x41, 0x52, 0x4e, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x0a, 0x12, 0x1b, 0x0a, 0x17, 0x41,
	0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x57, 0x49, 0x4c, 0x4c,
	0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, 0x10, 0x0b, 0x12, 0x1d, 0x0a, 0x19, 0x41, 0x42, 0x49, 0x4c,
	0x49, 0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x55, 0x54, 0x55, 0x52, 0x45, 0x5f,
	0x4c, 0x45, 0x41, 0x52, 0x4e, 0x10, 0x0c, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x42, 0x49, 0x4c, 0x49,
	0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x4e, 0x45, 0x55, 0x54, 0x52, 0x41, 0x4c, 0x5f,
	0x4f, 0x46, 0x46, 0x45, 0x52, 0x10, 0x0d, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x42, 0x49, 0x4c, 0x49,
	0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x4e, 0x45, 0x55, 0x54, 0x52, 0x41, 0x4c, 0x5f,
	0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, 0x0e, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x42, 0x49,
	0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x4e, 0x45, 0x55, 0x54, 0x52, 0x41,
	0x4c, 0x5f, 0x45, 0x51, 0x55, 0x49, 0x50, 0x10, 0x0f, 0x2a, 0x8c, 0x02, 0x0a, 0x17, 0x44, 0x4f,
	0x54, 0x41, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f,
	0x45, 0x56, 0x45, 0x4e, 0x54, 0x12, 0x26, 0x0a, 0x22, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x52, 0x45,
	0x50, 0x4c, 0x41, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54,
	0x5f, 0x47, 0x41, 0x4d, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x01, 0x12, 0x29, 0x0a,
	0x25, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, 0x5f, 0x53, 0x54, 0x41,
	0x54, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x49, 0x4e,
	0x47, 0x5f, 0x48, 0x4f, 0x52, 0x4e, 0x10, 0x02, 0x12, 0x27, 0x0a, 0x23, 0x44, 0x4f, 0x54, 0x41,
	0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x56,
	0x45, 0x4e, 0x54, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x4f, 0x44, 0x10,
	0x03, 0x12, 0x24, 0x0a, 0x20, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59,
	0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x48, 0x4f,
	0x57, 0x43, 0x41, 0x53, 0x45, 0x10, 0x04, 0x12, 0x25, 0x0a, 0x21, 0x44, 0x4f, 0x54, 0x41, 0x5f,
	0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x56, 0x45,
	0x4e, 0x54, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x10, 0x05, 0x12, 0x28,
	0x0a, 0x24, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, 0x5f, 0x53, 0x54,
	0x41, 0x54, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x57, 0x41, 0x49, 0x54, 0x5f, 0x46,
	0x4f, 0x52, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x06, 0x2a, 0xe5, 0x01, 0x0a, 0x13, 0x45, 0x44, 0x6f,
	0x74, 0x61, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73,
	0x12, 0x14, 0x0a, 0x10, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x53, 0x50,
	0x45, 0x45, 0x43, 0x48, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55,
	0x4e, 0x49, 0x54, 0x5f, 0x53, 0x50, 0x45, 0x45, 0x43, 0x48, 0x5f, 0x4d, 0x55, 0x54, 0x45, 0x10,
	0x01, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x41,
	0x44, 0x44, 0x5f, 0x47, 0x45, 0x53, 0x54, 0x55, 0x52, 0x45, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18,
	0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45,
	0x5f, 0x47, 0x45, 0x53, 0x54, 0x55, 0x52, 0x45, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x44, 0x4f,
	0x54, 0x41, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x41,
	0x4c, 0x4c, 0x5f, 0x47, 0x45, 0x53, 0x54, 0x55, 0x52, 0x45, 0x53, 0x10, 0x04, 0x12, 0x1a, 0x0a,
	0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x46, 0x41, 0x44, 0x45, 0x5f,
	0x47, 0x45, 0x53, 0x54, 0x55, 0x52, 0x45, 0x10, 0x06, 0x12, 0x25, 0x0a, 0x21, 0x44, 0x4f, 0x54,
	0x41, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x53, 0x50, 0x45, 0x45, 0x43, 0x48, 0x5f, 0x43, 0x4c,
	0x49, 0x45, 0x4e, 0x54, 0x53, 0x49, 0x44, 0x45, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x53, 0x10, 0x07,
	0x2a, 0x8d, 0x06, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45,
	0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x56, 0x45, 0x52,
	0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x47, 0x4f, 0x4c, 0x44, 0x10,
	0x00, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c,
	0x45, 0x52, 0x54, 0x5f, 0x44, 0x45, 0x4e, 0x59, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x56,
	0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x43, 0x52, 0x49,
	0x54, 0x49, 0x43, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x4f, 0x56, 0x45, 0x52, 0x48,
	0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x58, 0x50, 0x10, 0x03, 0x12, 0x25,
	0x0a, 0x21, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54,
	0x5f, 0x42, 0x4f, 0x4e, 0x55, 0x53, 0x5f, 0x53, 0x50, 0x45, 0x4c, 0x4c, 0x5f, 0x44, 0x41, 0x4d,
	0x41, 0x47, 0x45, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41,
	0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x4d, 0x49, 0x53, 0x53, 0x10, 0x05, 0x12, 0x19,
	0x0a, 0x15, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54,
	0x5f, 0x44, 0x41, 0x4d, 0x41, 0x47, 0x45, 0x10, 0x06, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x56, 0x45,
	0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x45, 0x56, 0x41, 0x44,
	0x45, 0x10, 0x07, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f,
	0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x08, 0x12, 0x26, 0x0a,
	0x22, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f,
	0x42, 0x4f, 0x4e, 0x55, 0x53, 0x5f, 0x50, 0x4f, 0x49, 0x53, 0x4f, 0x4e, 0x5f, 0x44, 0x41, 0x4d,
	0x41, 0x47, 0x45, 0x10, 0x09, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41,
	0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x48, 0x45, 0x41, 0x4c, 0x10, 0x0a, 0x12, 0x1b,
	0x0a, 0x17, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54,
	0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x5f, 0x41, 0x44, 0x44, 0x10, 0x0b, 0x12, 0x1c, 0x0a, 0x18, 0x4f,
	0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x4d, 0x41,
	0x4e, 0x41, 0x5f, 0x4c, 0x4f, 0x53, 0x53, 0x10, 0x0c, 0x12, 0x21, 0x0a, 0x1d, 0x4f, 0x56, 0x45,
	0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x4c, 0x41, 0x53, 0x54,
	0x5f, 0x48, 0x49, 0x54, 0x5f, 0x45, 0x41, 0x52, 0x4c, 0x59, 0x10, 0x0d, 0x12, 0x21, 0x0a, 0x1d,
	0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x4c,
	0x41, 0x53, 0x54, 0x5f, 0x48, 0x49, 0x54, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x10, 0x0e, 0x12,
	0x20, 0x0a, 0x1c, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52,
	0x54, 0x5f, 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x48, 0x49, 0x54, 0x5f, 0x4d, 0x49, 0x53, 0x53, 0x10,
	0x0f, 0x12, 0x20, 0x0a, 0x1c, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c,
	0x45, 0x52, 0x54, 0x5f, 0x4d, 0x41, 0x47, 0x49, 0x43, 0x41, 0x4c, 0x5f, 0x42, 0x4c, 0x4f, 0x43,
	0x4b, 0x10, 0x10, 0x12, 0x22, 0x0a, 0x1e, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f,
	0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x44,
	0x41, 0x4d, 0x41, 0x47, 0x45, 0x10, 0x11, 0x12, 0x22, 0x0a, 0x1e, 0x4f, 0x56, 0x45, 0x52, 0x48,
	0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49,
	0x4e, 0x47, 0x5f, 0x44, 0x41, 0x4d, 0x41, 0x47, 0x45, 0x10, 0x12, 0x12, 0x21, 0x0a, 0x1d, 0x4f,
	0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x44, 0x49,
	0x53, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x49, 0x53, 0x54, 0x10, 0x13, 0x12, 0x18,
	0x0a, 0x14, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54,
	0x5f, 0x44, 0x45, 0x41, 0x54, 0x48, 0x10, 0x14, 0x12, 0x1a, 0x0a, 0x16, 0x4f, 0x56, 0x45, 0x52,
	0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b,
	0x45, 0x44, 0x10, 0x15, 0x12, 0x20, 0x0a, 0x1c, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44,
	0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x52, 0x45, 0x43, 0x45,
	0x49, 0x56, 0x45, 0x44, 0x10, 0x16, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45,
	0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x44, 0x10, 0x17,
	0x12, 0x1e, 0x0a, 0x1a, 0x4f, 0x56, 0x45, 0x52, 0x48, 0x45, 0x41, 0x44, 0x5f, 0x41, 0x4c, 0x45,
	0x52, 0x54, 0x5f, 0x44, 0x45, 0x41, 0x44, 0x4c, 0x59, 0x5f, 0x42, 0x4c, 0x4f, 0x57, 0x10, 0x18,
	0x2a, 0x6b, 0x0a, 0x11, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x52, 0x4f, 0x53, 0x48, 0x41, 0x4e, 0x5f,
	0x50, 0x48, 0x41, 0x53, 0x45, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x5f, 0x53, 0x52, 0x53, 0x50, 0x5f,
	0x52, 0x4f, 0x53, 0x48, 0x41, 0x4e, 0x5f, 0x41, 0x4c, 0x49, 0x56, 0x45, 0x10, 0x00, 0x12, 0x1c,
	0x0a, 0x18, 0x6b, 0x5f, 0x53, 0x52, 0x53, 0x50, 0x5f, 0x52, 0x4f, 0x53, 0x48, 0x41, 0x4e, 0x5f,
	0x42, 0x41, 0x53, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x52, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b,
	0x6b, 0x5f, 0x53, 0x52, 0x53, 0x50, 0x5f, 0x52, 0x4f, 0x53, 0x48, 0x41, 0x4e, 0x5f, 0x56, 0x49,
	0x53, 0x49, 0x42, 0x4c, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x52, 0x10, 0x02, 0x2a, 0x81, 0x04,
	0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f,
	0x43, 0x41, 0x54, 0x45, 0x47, 0x4f, 0x52, 0x59, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x4f, 0x54, 0x41,
	0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00,
	0x12, 0x1d, 0x0a, 0x19, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f,
	0x4e, 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x5f, 0x4c, 0x41, 0x4e, 0x45, 0x10, 0x01, 0x12,
	0x1a, 0x0a, 0x16, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e,
	0x5f, 0x4d, 0x49, 0x44, 0x5f, 0x4c, 0x41, 0x4e, 0x45, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x44,
	0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x4f, 0x50,
	0x5f, 0x4c, 0x41, 0x4e, 0x45, 0x10, 0x03, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x4f, 0x54, 0x41, 0x5f,
	0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x41, 0x44, 0x49, 0x41, 0x4e, 0x54,
	0x5f, 0x4a, 0x55, 0x4e, 0x47, 0x4c, 0x45, 0x10, 0x04, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x4f, 0x54,
	0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x5f,
	0x4a, 0x55, 0x4e, 0x47, 0x4c, 0x45, 0x10, 0x05, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41,
	0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x41, 0x44, 0x49, 0x41, 0x4e,
	0x54, 0x5f, 0x41, 0x4e, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x53, 0x10, 0x06, 0x12, 0x1f, 0x0a, 0x1b,
	0x44, 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x49,
	0x52, 0x45, 0x5f, 0x41, 0x4e, 0x43, 0x49, 0x45, 0x4e, 0x54, 0x53, 0x10, 0x07, 0x12, 0x25, 0x0a,
	0x21, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52,
	0x41, 0x44, 0x49, 0x41, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x43, 0x52, 0x45, 0x54, 0x5f, 0x53, 0x48,
	0x4f, 0x50, 0x10, 0x08, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53,
	0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x5f, 0x53, 0x45, 0x43, 0x52, 0x45,
	0x54, 0x5f, 0x53, 0x48, 0x4f, 0x50, 0x10, 0x09, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41,
	0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x49, 0x56, 0x45, 0x52, 0x10,
	0x0a, 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49,
	0x4f, 0x4e, 0x5f, 0x52, 0x4f, 0x53, 0x48, 0x41, 0x4e, 0x5f, 0x50, 0x49, 0x54, 0x10, 0x0b, 0x12,
	0x1e, 0x0a, 0x1a, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e,
	0x5f, 0x52, 0x41, 0x44, 0x49, 0x41, 0x4e, 0x54, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, 0x0c, 0x12,
	0x1b, 0x0a, 0x17, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e,
	0x5f, 0x44, 0x49, 0x52, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, 0x0d, 0x12, 0x1a, 0x0a, 0x16,
	0x44, 0x4f, 0x54, 0x41, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x4f,
	0x55, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x10, 0x0e, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x4f, 0x54, 0x41,
	0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x10,
	0x0f, 0x2a, 0xe6, 0x01, 0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x41, 0x42, 0x49, 0x4c, 0x49,
	0x54, 0x59, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x12, 0x1c,
	0x0a, 0x18, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x54,
	0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18,
	0x44, 0x4f, 0x54, 0x41, 0x5f, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x41, 0x52,
	0x47, 0x45, 0x54, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x44, 0x4f,
	0x54, 0x41, 0x5f, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45,
	0x54, 0x5f, 0x41, 0x4c, 0x4c, 0x59, 0x5f, 0x48, 0x45, 0x52, 0x4f, 0x10, 0x02, 0x12, 0x22, 0x0a,
	0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x41,
	0x52, 0x47, 0x45, 0x54, 0x5f, 0x41, 0x4c, 0x4c, 0x59, 0x5f, 0x43, 0x52, 0x45, 0x45, 0x50, 0x10,
	0x03, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54,
	0x59, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x45, 0x4e, 0x45, 0x4d, 0x59, 0x5f, 0x48,
	0x45, 0x52, 0x4f, 0x10, 0x04, 0x12, 0x23, 0x0a, 0x1f, 0x44, 0x4f, 0x54, 0x41, 0x5f, 0x41, 0x42,
	0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x45, 0x4e, 0x45,
	0x4d, 0x59, 0x5f, 0x43, 0x52, 0x45, 0x45, 0x50, 0x10, 0x05, 0x2a, 0x98, 0x08, 0x0a, 0x0d, 0x45,
	0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14,
	0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f,
	0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1e, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72,
	0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x41, 0x78, 0x65, 0x54, 0x6f, 0x74,
	0x61, 0x6c, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x10, 0xd0, 0x0f, 0x12, 0x27, 0x0a, 0x22, 0x6b,
	0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x42,
	0x61, 0x74, 0x74, 0x6c, 0x65, 0x48, 0x75, 0x6e, 0x67, 0x65, 0x72, 0x44, 0x61, 0x6d, 0x61, 0x67,
	0x65, 0x10, 0xd1, 0x0f, 0x12, 0x27, 0x0a, 0x22, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53,
	0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48,
	0x65, 0x6c, 0x69, 0x78, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x10, 0xd2, 0x0f, 0x12, 0x27, 0x0a,
	0x22, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65,
	0x5f, 0x43, 0x75, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x61, 0x64, 0x65, 0x44, 0x61, 0x6d,
	0x61, 0x67, 0x65, 0x10, 0xd3, 0x0f, 0x12, 0x2c, 0x0a, 0x27, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72,
	0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x42, 0x65, 0x72, 0x73, 0x65, 0x72,
	0x6b, 0x65, 0x72, 0x73, 0x43, 0x61, 0x6c, 0x6c, 0x43, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e,
	0x74, 0x10, 0xd4, 0x0f, 0x12, 0x33, 0x0a, 0x2e, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53,
	0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x42, 0x65, 0x72, 0x73, 0x65, 0x72, 0x6b, 0x65,
	0x72, 0x73, 0x43, 0x61, 0x6c, 0x6c, 0x48, 0x65, 0x72, 0x6f, 0x65, 0x73, 0x48, 0x69, 0x74, 0x41,
	0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x10, 0xd5, 0x0f, 0x12, 0x30, 0x0a, 0x2b, 0x6b, 0x5f, 0x45,
	0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x42, 0x65, 0x72,
	0x73, 0x65, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x43, 0x61, 0x6c, 0x6c, 0x4f, 0x74, 0x68, 0x65, 0x72,
	0x55, 0x6e, 0x69, 0x74, 0x73, 0x48, 0x69, 0x74, 0x10, 0xd6, 0x0f, 0x12, 0x33, 0x0a, 0x2e, 0x6b,
	0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x42,
	0x65, 0x72, 0x73, 0x65, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x43, 0x61, 0x6c, 0x6c, 0x48, 0x65, 0x72,
	0x6f, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x73, 0x54, 0x61, 0x6b, 0x65, 0x6e, 0x10, 0xd7, 0x0f,
	0x12, 0x34, 0x0a, 0x2f, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54,
	0x79, 0x70, 0x65, 0x5f, 0x42, 0x65, 0x72, 0x73, 0x65, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x43, 0x61,
	0x6c, 0x6c, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x73, 0x54, 0x61,
	0x6b, 0x65, 0x6e, 0x10, 0xd8, 0x0f, 0x12, 0x2a, 0x0a, 0x25, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72,
	0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65,
	0x48, 0x75, 0x6e, 0x67, 0x65, 0x72, 0x43, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10,
	0xd9, 0x0f, 0x12, 0x32, 0x0a, 0x2d, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61,
	0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x48, 0x75, 0x6e, 0x67,
	0x65, 0x72, 0x50, 0x6f, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x44, 0x75, 0x72, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x10, 0xda, 0x0f, 0x12, 0x30, 0x0a, 0x2b, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72,
	0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65,
	0x48, 0x75, 0x6e, 0x67, 0x65, 0x72, 0x41, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x44, 0x75, 0x72,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0xdb, 0x0f, 0x12, 0x2a, 0x0a, 0x25, 0x6b, 0x5f, 0x45, 0x48,
	0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x6f, 0x75, 0x6e,
	0x74, 0x65, 0x72, 0x48, 0x65, 0x6c, 0x69, 0x78, 0x50, 0x72, 0x6f, 0x63, 0x43, 0x6f, 0x75, 0x6e,
	0x74, 0x10, 0xdc, 0x0f, 0x12, 0x2e, 0x0a, 0x29, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53,
	0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48,
	0x65, 0x6c, 0x69, 0x78, 0x48, 0x65, 0x72, 0x6f, 0x50, 0x72, 0x6f, 0x63, 0x43, 0x6f, 0x75, 0x6e,
	0x74, 0x10, 0xdd, 0x0f, 0x12, 0x31, 0x0a, 0x2c, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53,
	0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48,
	0x65, 0x6c, 0x69, 0x78, 0x48, 0x65, 0x72, 0x6f, 0x65, 0x73, 0x48, 0x69, 0x74, 0x41, 0x76, 0x65,
	0x72, 0x61, 0x67, 0x65, 0x10, 0xde, 0x0f, 0x12, 0x33, 0x0a, 0x2e, 0x6b, 0x5f, 0x45, 0x48, 0x65,
	0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x6f, 0x75, 0x6e, 0x74,
	0x65, 0x72, 0x48, 0x65, 0x6c, 0x69, 0x78, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x55, 0x6e, 0x69, 0x74,
	0x73, 0x48, 0x69, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xdf, 0x0f, 0x12, 0x2a, 0x0a, 0x25,
	0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f,
	0x43, 0x75, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x61, 0x64, 0x65, 0x43, 0x61, 0x73, 0x74,
	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xe0, 0x0f, 0x12, 0x2a, 0x0a, 0x25, 0x6b, 0x5f, 0x45, 0x48,
	0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x75, 0x6c, 0x6c,
	0x69, 0x6e, 0x67, 0x42, 0x6c, 0x61, 0x64, 0x65, 0x4b, 0x69, 0x6c, 0x6c, 0x43, 0x6f, 0x75, 0x6e,
	0x74, 0x10, 0xe1, 0x0f, 0x12, 0x34, 0x0a, 0x2f, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53,
	0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x75, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x42,
	0x6c, 0x61, 0x64, 0x65, 0x41, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x6c, 0x74,
	0x68, 0x43, 0x75, 0x6c, 0x6c, 0x65, 0x64, 0x10, 0xe2, 0x0f, 0x12, 0x37, 0x0a, 0x32, 0x6b, 0x5f,
	0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x75,
	0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x61, 0x64, 0x65, 0x41, 0x76, 0x65, 0x72, 0x61, 0x67,
	0x65, 0x44, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65,
	0x10, 0xe3, 0x0f, 0x12, 0x30, 0x0a, 0x2b, 0x6b, 0x5f, 0x45, 0x48, 0x65, 0x72, 0x6f, 0x53, 0x74,
	0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x5f, 0x43, 0x75, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x42, 0x6c,
	0x61, 0x64, 0x65, 0x48, 0x65, 0x72, 0x6f, 0x42, 0x75, 0x66, 0x66, 0x41, 0x76, 0x65, 0x72, 0x61,
	0x67, 0x65, 0x10, 0xe4, 0x0f, 0x2a, 0xe4, 0x04, 0x0a, 0x17, 0x45, 0x50, 0x6c, 0x61, 0x79, 0x65,
	0x72, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x53, 0x74, 0x61, 0x74,
	0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x4e, 0x6f, 0x6e, 0x65, 0x10,
	0x00, 0x12, 0x1a, 0x0a, 0x16, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x44, 0x65, 0x6e, 0x69, 0x65,
	0x64, 0x43, 0x68, 0x61, 0x74, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x10, 0x01, 0x12, 0x17, 0x0a,
	0x13, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x44, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x50, 0x61, 0x72,
	0x74, 0x6e, 0x65, 0x72, 0x10, 0x02, 0x12, 0x26, 0x0a, 0x22, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f,
	0x44, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x48, 0x4c, 0x54, 0x56, 0x54, 0x61, 0x6c, 0x6b, 0x65, 0x72,
	0x4e, 0x6f, 0x74, 0x53, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x03, 0x12, 0x24,
	0x0a, 0x20, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x44, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x48, 0x4c,
	0x54, 0x56, 0x4e, 0x6f, 0x54, 0x61, 0x6c, 0x6b, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72,
	0x49, 0x44, 0x10, 0x04, 0x12, 0x28, 0x0a, 0x24, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x44, 0x65,
	0x6e, 0x69, 0x65, 0x64, 0x48, 0x4c, 0x54, 0x56, 0x54, 0x61, 0x6c, 0x6b, 0x65, 0x72, 0x4e, 0x6f,
	0x74, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x10, 0x05, 0x12, 0x1d,
	0x0a, 0x19, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x44, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x54, 0x65,
	0x61, 0x6d, 0x53, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x06, 0x12, 0x17, 0x0a,
	0x13, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x44, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x53, 0x74, 0x75,
	0x64, 0x65, 0x6e, 0x74, 0x10, 0x08, 0x12, 0x1c, 0x0a, 0x18, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f,
	0x44, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x61,
	0x63, 0x68, 0x10, 0x09, 0x12, 0x10, 0x0a, 0x0c, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x44, 0x65,
	0x6e, 0x69, 0x65, 0x64, 0x10, 0x40, 0x12, 0x26, 0x0a, 0x22, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f,
	0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x48, 0x4c, 0x54, 0x56, 0x54, 0x61, 0x6c, 0x6b, 0x65, 0x72, 0x49,
	0x73, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x10, 0x41, 0x12, 0x1c,
	0x0a, 0x18, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x42,
	0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x10, 0x42, 0x12, 0x16, 0x0a, 0x12,
	0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x41, 0x6c, 0x6c, 0x43, 0x68,
	0x61, 0x74, 0x10, 0x43, 0x12, 0x1d, 0x0a, 0x19, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x41, 0x6c,
	0x6c, 0x6f, 0x77, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x43, 0x6f, 0x61, 0x63,
	0x68, 0x10, 0x44, 0x12, 0x1c, 0x0a, 0x18, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x41, 0x6c, 0x6c,
	0x6f, 0x77, 0x46, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x10,
	0x45, 0x12, 0x1c, 0x0a, 0x18, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x41, 0x6c, 0x6c, 0x6f, 0x77,
	0x54, 0x61, 0x6c, 0x6b, 0x65, 0x72, 0x49, 0x73, 0x43, 0x6f, 0x61, 0x63, 0x68, 0x10, 0x46, 0x12,
	0x1c, 0x0a, 0x18, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x6f,
	0x61, 0x63, 0x68, 0x48, 0x65, 0x61, 0x72, 0x54, 0x65, 0x61, 0x6d, 0x10, 0x47, 0x12, 0x17, 0x0a,
	0x13, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x53, 0x61, 0x6d, 0x65,
	0x54, 0x65, 0x61, 0x6d, 0x10, 0x48, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f,
	0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x53, 0x68, 0x6f, 0x77, 0x63, 0x61, 0x73, 0x65, 0x10, 0x49, 0x12,
	0x1b, 0x0a, 0x17, 0x6b, 0x50, 0x56, 0x4c, 0x53, 0x5f, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x50, 0x72,
	0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x61, 0x63, 0x68, 0x10, 0x4a, 0x2a, 0x42, 0x0a, 0x10,
	0x45, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74,
	0x12, 0x12, 0x0a, 0x0e, 0x65, 0x50, 0x45, 0x5f, 0x46, 0x69, 0x72, 0x73, 0x74, 0x42, 0x6c, 0x6f,
	0x6f, 0x64, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x65, 0x50, 0x45, 0x5f, 0x4b, 0x69, 0x6c, 0x6c,
	0x73, 0x74, 0x72, 0x65, 0x61, 0x6b, 0x5f, 0x67, 0x6f, 0x64, 0x6c, 0x69, 0x6b, 0x65, 0x10, 0x01,
	0x42, 0x0d, 0x48, 0x01, 0x5a, 0x06, 0x2e, 0x2f, 0x64, 0x65, 0x6d, 0x6f, 0x80, 0x01, 0x00,
}

var (
	file_dota_usermessages_proto_rawDescOnce sync.Once
	file_dota_usermessages_proto_rawDescData = file_dota_usermessages_proto_rawDesc
)

func file_dota_usermessages_proto_rawDescGZIP() []byte {
	file_dota_usermessages_proto_rawDescOnce.Do(func() {
		file_dota_usermessages_proto_rawDescData = protoimpl.X.CompressGZIP(file_dota_usermessages_proto_rawDescData)
	})
	return file_dota_usermessages_proto_rawDescData
}

var file_dota_usermessages_proto_enumTypes = make([]protoimpl.EnumInfo, 17)
var file_dota_usermessages_proto_msgTypes = make([]protoimpl.MessageInfo, 171)
var file_dota_usermessages_proto_goTypes = []interface{}{
	(EDotaUserMessages)(0),                                                    // 0: EDotaUserMessages
	(DOTA_CHAT_MESSAGE)(0),                                                    // 1: DOTA_CHAT_MESSAGE
	(DOTA_NO_BATTLE_POINTS_REASONS)(0),                                        // 2: DOTA_NO_BATTLE_POINTS_REASONS
	(DOTA_CHAT_INFORMATIONAL)(0),                                              // 3: DOTA_CHAT_INFORMATIONAL
	(DOTA_ABILITY_PING_TYPE)(0),                                               // 4: DOTA_ABILITY_PING_TYPE
	(DOTA_REPLAY_STATE_EVENT)(0),                                              // 5: DOTA_REPLAY_STATE_EVENT
	(EDotaEntityMessages)(0),                                                  // 6: EDotaEntityMessages
	(DOTA_OVERHEAD_ALERT)(0),                                                  // 7: DOTA_OVERHEAD_ALERT
	(DOTA_ROSHAN_PHASE)(0),                                                    // 8: DOTA_ROSHAN_PHASE
	(DOTA_POSITION_CATEGORY)(0),                                               // 9: DOTA_POSITION_CATEGORY
	(DOTA_ABILITY_TARGET_TYPE)(0),                                             // 10: DOTA_ABILITY_TARGET_TYPE
	(EHeroStatType)(0),                                                        // 11: EHeroStatType
	(EPlayerVoiceListenState)(0),                                              // 12: EPlayerVoiceListenState
	(EProjectionEvent)(0),                                                     // 13: EProjectionEvent
	(CDOTAUserMsg_PredictionResult_Prediction_EResult)(0),                     // 14: CDOTAUserMsg_PredictionResult.Prediction.EResult
	(CDOTAResponseQuerySerialized_Fact_ValueType)(0),                          // 15: CDOTAResponseQuerySerialized.Fact.ValueType
	(CDOTAUserMsg_GuildChallenge_Progress_EChallengeType)(0),                  // 16: CDOTAUserMsg_GuildChallenge_Progress.EChallengeType
	(*CDOTAUserMsg_AIDebugLine)(nil),                                          // 17: CDOTAUserMsg_AIDebugLine
	(*CDOTAUserMsg_Ping)(nil),                                                 // 18: CDOTAUserMsg_Ping
	(*CDOTAUserMsg_SwapVerify)(nil),                                           // 19: CDOTAUserMsg_SwapVerify
	(*CDOTAUserMsg_ChatEvent)(nil),                                            // 20: CDOTAUserMsg_ChatEvent
	(*CDOTAUserMsg_BotChat)(nil),                                              // 21: CDOTAUserMsg_BotChat
	(*CDOTAUserMsg_CombatHeroPositions)(nil),                                  // 22: CDOTAUserMsg_CombatHeroPositions
	(*CDOTAUserMsg_CombatLogBulkData)(nil),                                    // 23: CDOTAUserMsg_CombatLogBulkData
	(*CDOTAUserMsg_ProjectileParticleCPData)(nil),                             // 24: CDOTAUserMsg_ProjectileParticleCPData
	(*CDOTAUserMsg_MiniKillCamInfo)(nil),                                      // 25: CDOTAUserMsg_MiniKillCamInfo
	(*CDOTAUserMsg_GlobalLightColor)(nil),                                     // 26: CDOTAUserMsg_GlobalLightColor
	(*CDOTAUserMsg_GlobalLightDirection)(nil),                                 // 27: CDOTAUserMsg_GlobalLightDirection
	(*CDOTAUserMsg_LocationPing)(nil),                                         // 28: CDOTAUserMsg_LocationPing
	(*CDOTAUserMsg_PingConfirmation)(nil),                                     // 29: CDOTAUserMsg_PingConfirmation
	(*CDOTAUserMsg_ItemAlert)(nil),                                            // 30: CDOTAUserMsg_ItemAlert
	(*CDOTAUserMsg_EnemyItemAlert)(nil),                                       // 31: CDOTAUserMsg_EnemyItemAlert
	(*CDOTAUserMsg_ModifierAlert)(nil),                                        // 32: CDOTAUserMsg_ModifierAlert
	(*CDOTAUserMsg_HPManaAlert)(nil),                                          // 33: CDOTAUserMsg_HPManaAlert
	(*CDOTAUserMsg_GlyphAlert)(nil),                                           // 34: CDOTAUserMsg_GlyphAlert
	(*CDOTAUserMsg_RadarAlert)(nil),                                           // 35: CDOTAUserMsg_RadarAlert
	(*CDOTAUserMsg_WillPurchaseAlert)(nil),                                    // 36: CDOTAUserMsg_WillPurchaseAlert
	(*CDOTAUserMsg_EmptyTeleportAlert)(nil),                                   // 37: CDOTAUserMsg_EmptyTeleportAlert
	(*CDOTAUserMsg_MarsArenaOfBloodAttack)(nil),                               // 38: CDOTAUserMsg_MarsArenaOfBloodAttack
	(*CDOTAEntityMsg_InvokerSpellCast)(nil),                                   // 39: CDOTAEntityMsg_InvokerSpellCast
	(*CDOTAUserMsg_BuyBackStateAlert)(nil),                                    // 40: CDOTAUserMsg_BuyBackStateAlert
	(*CDOTAUserMsg_QuickBuyAlert)(nil),                                        // 41: CDOTAUserMsg_QuickBuyAlert
	(*CDOTAUserMsg_CourierKilledAlert)(nil),                                   // 42: CDOTAUserMsg_CourierKilledAlert
	(*CDOTAUserMsg_MinimapEvent)(nil),                                         // 43: CDOTAUserMsg_MinimapEvent
	(*CDOTAUserMsg_MapLine)(nil),                                              // 44: CDOTAUserMsg_MapLine
	(*CDOTAUserMsg_MinimapDebugPoint)(nil),                                    // 45: CDOTAUserMsg_MinimapDebugPoint
	(*CDOTAUserMsg_CreateLinearProjectile)(nil),                               // 46: CDOTAUserMsg_CreateLinearProjectile
	(*CDOTAUserMsg_DestroyLinearProjectile)(nil),                              // 47: CDOTAUserMsg_DestroyLinearProjectile
	(*CDOTAUserMsg_DodgeTrackingProjectiles)(nil),                             // 48: CDOTAUserMsg_DodgeTrackingProjectiles
	(*CDOTAUserMsg_SpectatorPlayerClick)(nil),                                 // 49: CDOTAUserMsg_SpectatorPlayerClick
	(*CDOTAUserMsg_SpectatorPlayerUnitOrders)(nil),                            // 50: CDOTAUserMsg_SpectatorPlayerUnitOrders
	(*CDOTAUserMsg_NevermoreRequiem)(nil),                                     // 51: CDOTAUserMsg_NevermoreRequiem
	(*CDOTAUserMsg_InvalidCommand)(nil),                                       // 52: CDOTAUserMsg_InvalidCommand
	(*CDOTAUserMsg_HudError)(nil),                                             // 53: CDOTAUserMsg_HudError
	(*CDOTAUserMsg_SharedCooldown)(nil),                                       // 54: CDOTAUserMsg_SharedCooldown
	(*CDOTAUserMsg_SetNextAutobuyItem)(nil),                                   // 55: CDOTAUserMsg_SetNextAutobuyItem
	(*CDOTAUserMsg_HalloweenDrops)(nil),                                       // 56: CDOTAUserMsg_HalloweenDrops
	(*CDOTAUserMsg_PredictionResult)(nil),                                     // 57: CDOTAUserMsg_PredictionResult
	(*CDOTAResponseQuerySerialized)(nil),                                      // 58: CDOTAResponseQuerySerialized
	(*CDOTASpeechMatchOnClient)(nil),                                          // 59: CDOTASpeechMatchOnClient
	(*CDOTAUserMsg_UnitEvent)(nil),                                            // 60: CDOTAUserMsg_UnitEvent
	(*CDOTAUserMsg_ItemPurchased)(nil),                                        // 61: CDOTAUserMsg_ItemPurchased
	(*CDOTAUserMsg_ItemSold)(nil),                                             // 62: CDOTAUserMsg_ItemSold
	(*CDOTAUserMsg_ItemFound)(nil),                                            // 63: CDOTAUserMsg_ItemFound
	(*CDOTAUserMsg_OverheadEvent)(nil),                                        // 64: CDOTAUserMsg_OverheadEvent
	(*CDOTAUserMsg_TutorialTipInfo)(nil),                                      // 65: CDOTAUserMsg_TutorialTipInfo
	(*CDOTAUserMsg_TutorialFinish)(nil),                                       // 66: CDOTAUserMsg_TutorialFinish
	(*CDOTAUserMsg_TutorialMinimapPosition)(nil),                              // 67: CDOTAUserMsg_TutorialMinimapPosition
	(*CDOTAUserMsg_SendGenericToolTip)(nil),                                   // 68: CDOTAUserMsg_SendGenericToolTip
	(*CDOTAUserMsg_WorldLine)(nil),                                            // 69: CDOTAUserMsg_WorldLine
	(*CDOTAUserMsg_ChatWheel)(nil),                                            // 70: CDOTAUserMsg_ChatWheel
	(*CDOTAUserMsg_ReceivedXmasGift)(nil),                                     // 71: CDOTAUserMsg_ReceivedXmasGift
	(*CDOTAUserMsg_ShowSurvey)(nil),                                           // 72: CDOTAUserMsg_ShowSurvey
	(*CDOTAUserMsg_UpdateSharedContent)(nil),                                  // 73: CDOTAUserMsg_UpdateSharedContent
	(*CDOTAUserMsg_TutorialRequestExp)(nil),                                   // 74: CDOTAUserMsg_TutorialRequestExp
	(*CDOTAUserMsg_TutorialFade)(nil),                                         // 75: CDOTAUserMsg_TutorialFade
	(*CDOTAUserMsg_TutorialPingMinimap)(nil),                                  // 76: CDOTAUserMsg_TutorialPingMinimap
	(*CDOTAUserMsg_GamerulesStateChanged)(nil),                                // 77: CDOTAUserMsg_GamerulesStateChanged
	(*CDOTAUserMsg_AddQuestLogEntry)(nil),                                     // 78: CDOTAUserMsg_AddQuestLogEntry
	(*CDOTAUserMsg_SendStatPopup)(nil),                                        // 79: CDOTAUserMsg_SendStatPopup
	(*CDOTAUserMsg_DismissAllStatPopups)(nil),                                 // 80: CDOTAUserMsg_DismissAllStatPopups
	(*CDOTAUserMsg_SendRoshanSpectatorPhase)(nil),                             // 81: CDOTAUserMsg_SendRoshanSpectatorPhase
	(*CDOTAUserMsg_SendRoshanPopup)(nil),                                      // 82: CDOTAUserMsg_SendRoshanPopup
	(*CDOTAUserMsg_SendFinalGold)(nil),                                        // 83: CDOTAUserMsg_SendFinalGold
	(*CDOTAUserMsg_CustomMsg)(nil),                                            // 84: CDOTAUserMsg_CustomMsg
	(*CDOTAUserMsg_CoachHUDPing)(nil),                                         // 85: CDOTAUserMsg_CoachHUDPing
	(*CDOTAUserMsg_ClientLoadGridNav)(nil),                                    // 86: CDOTAUserMsg_ClientLoadGridNav
	(*CDOTAUserMsg_TE_Projectile)(nil),                                        // 87: CDOTAUserMsg_TE_Projectile
	(*CDOTAUserMsg_TE_ProjectileLoc)(nil),                                     // 88: CDOTAUserMsg_TE_ProjectileLoc
	(*CDOTAUserMsg_TE_DestroyProjectile)(nil),                                 // 89: CDOTAUserMsg_TE_DestroyProjectile
	(*CDOTAUserMsg_TE_DotaBloodImpact)(nil),                                   // 90: CDOTAUserMsg_TE_DotaBloodImpact
	(*CDOTAUserMsg_AbilityPing)(nil),                                          // 91: CDOTAUserMsg_AbilityPing
	(*CDOTAUserMsg_TE_UnitAnimation)(nil),                                     // 92: CDOTAUserMsg_TE_UnitAnimation
	(*CDOTAUserMsg_TE_UnitAnimationEnd)(nil),                                  // 93: CDOTAUserMsg_TE_UnitAnimationEnd
	(*CDOTAUserMsg_ShowGenericPopup)(nil),                                     // 94: CDOTAUserMsg_ShowGenericPopup
	(*CDOTAUserMsg_VoteStart)(nil),                                            // 95: CDOTAUserMsg_VoteStart
	(*CDOTAUserMsg_VoteUpdate)(nil),                                           // 96: CDOTAUserMsg_VoteUpdate
	(*CDOTAUserMsg_VoteEnd)(nil),                                              // 97: CDOTAUserMsg_VoteEnd
	(*CDOTAUserMsg_BoosterStatePlayer)(nil),                                   // 98: CDOTAUserMsg_BoosterStatePlayer
	(*CDOTAUserMsg_BoosterState)(nil),                                         // 99: CDOTAUserMsg_BoosterState
	(*CDOTAUserMsg_PlayerMMR)(nil),                                            // 100: CDOTAUserMsg_PlayerMMR
	(*CDOTAUserMsg_AbilitySteal)(nil),                                         // 101: CDOTAUserMsg_AbilitySteal
	(*CDOTAUserMsg_StatsHeroLookup)(nil),                                      // 102: CDOTAUserMsg_StatsHeroLookup
	(*CDOTAUserMsg_StatsHeroPositionInfo)(nil),                                // 103: CDOTAUserMsg_StatsHeroPositionInfo
	(*CDOTAUserMsg_StatsHeroMinuteDetails)(nil),                               // 104: CDOTAUserMsg_StatsHeroMinuteDetails
	(*CDOTAUserMsg_StatsTeamMinuteDetails)(nil),                               // 105: CDOTAUserMsg_StatsTeamMinuteDetails
	(*CDOTAUserMsg_StatsPlayerKillShare)(nil),                                 // 106: CDOTAUserMsg_StatsPlayerKillShare
	(*CDOTAUserMsg_StatsKillDetails)(nil),                                     // 107: CDOTAUserMsg_StatsKillDetails
	(*CDOTAUserMsg_StatsMatchDetails)(nil),                                    // 108: CDOTAUserMsg_StatsMatchDetails
	(*CDOTAUserMsg_MiniTaunt)(nil),                                            // 109: CDOTAUserMsg_MiniTaunt
	(*CDOTAUserMsg_SpeechBubble)(nil),                                         // 110: CDOTAUserMsg_SpeechBubble
	(*CDOTAUserMsg_CustomHeaderMessage)(nil),                                  // 111: CDOTAUserMsg_CustomHeaderMessage
	(*CMsgHeroAbilityStat)(nil),                                               // 112: CMsgHeroAbilityStat
	(*CMsgCombatAnalyzerPlayerStat)(nil),                                      // 113: CMsgCombatAnalyzerPlayerStat
	(*CMsgCombatAnalyzerStats)(nil),                                           // 114: CMsgCombatAnalyzerStats
	(*CDOTAUserMsg_BeastChat)(nil),                                            // 115: CDOTAUserMsg_BeastChat
	(*CDOTAUserMsg_CustomHudElement_Create)(nil),                              // 116: CDOTAUserMsg_CustomHudElement_Create
	(*CDOTAUserMsg_CustomHudElement_Modify)(nil),                              // 117: CDOTAUserMsg_CustomHudElement_Modify
	(*CDOTAUserMsg_CustomHudElement_Destroy)(nil),                             // 118: CDOTAUserMsg_CustomHudElement_Destroy
	(*CDOTAUserMsg_CompendiumStatePlayer)(nil),                                // 119: CDOTAUserMsg_CompendiumStatePlayer
	(*CDOTAUserMsg_CompendiumState)(nil),                                      // 120: CDOTAUserMsg_CompendiumState
	(*CDOTAUserMsg_ProjectionAbility)(nil),                                    // 121: CDOTAUserMsg_ProjectionAbility
	(*CDOTAUserMsg_ProjectionEvent)(nil),                                      // 122: CDOTAUserMsg_ProjectionEvent
	(*CDOTAUserMsg_XPAlert)(nil),                                              // 123: CDOTAUserMsg_XPAlert
	(*CDOTAUserMsg_TalentTreeAlert)(nil),                                      // 124: CDOTAUserMsg_TalentTreeAlert
	(*CDOTAUserMsg_UpdateQuestProgress)(nil),                                  // 125: CDOTAUserMsg_UpdateQuestProgress
	(*CDOTAUserMsg_QuestStatus)(nil),                                          // 126: CDOTAUserMsg_QuestStatus
	(*CDOTAUserMsg_SuggestHeroPick)(nil),                                      // 127: CDOTAUserMsg_SuggestHeroPick
	(*CDOTAUserMsg_SuggestHeroRole)(nil),                                      // 128: CDOTAUserMsg_SuggestHeroRole
	(*CDOTAUserMsg_KillcamDamageTaken)(nil),                                   // 129: CDOTAUserMsg_KillcamDamageTaken
	(*CDOTAUserMsg_SelectPenaltyGold)(nil),                                    // 130: CDOTAUserMsg_SelectPenaltyGold
	(*CDOTAUserMsg_RollDiceResult)(nil),                                       // 131: CDOTAUserMsg_RollDiceResult
	(*CDOTAUserMsg_FlipCoinResult)(nil),                                       // 132: CDOTAUserMsg_FlipCoinResult
	(*CDOTAUserMessage_RequestItemSuggestions)(nil),                           // 133: CDOTAUserMessage_RequestItemSuggestions
	(*CDOTAUserMessage_TeamCaptainChanged)(nil),                               // 134: CDOTAUserMessage_TeamCaptainChanged
	(*CDOTAUserMsg_ChatWheelCooldown)(nil),                                    // 135: CDOTAUserMsg_ChatWheelCooldown
	(*CDOTAUserMsg_HeroRelicProgress)(nil),                                    // 136: CDOTAUserMsg_HeroRelicProgress
	(*CDOTAUserMsg_AbilityDraftRequestAbility)(nil),                           // 137: CDOTAUserMsg_AbilityDraftRequestAbility
	(*CDOTAUserMsg_DamageReport)(nil),                                         // 138: CDOTAUserMsg_DamageReport
	(*CDOTAUserMsg_SalutePlayer)(nil),                                         // 139: CDOTAUserMsg_SalutePlayer
	(*CDOTAUserMsg_TipAlert)(nil),                                             // 140: CDOTAUserMsg_TipAlert
	(*CDOTAUserMsg_ReplaceQueryUnit)(nil),                                     // 141: CDOTAUserMsg_ReplaceQueryUnit
	(*CDOTAUserMsg_ESArcanaCombo)(nil),                                        // 142: CDOTAUserMsg_ESArcanaCombo
	(*CDOTAUserMsg_ESArcanaComboSummary)(nil),                                 // 143: CDOTAUserMsg_ESArcanaComboSummary
	(*CDOTAUserMsg_OMArcanaCombo)(nil),                                        // 144: CDOTAUserMsg_OMArcanaCombo
	(*CDOTAUserMsg_HighFiveCompleted)(nil),                                    // 145: CDOTAUserMsg_HighFiveCompleted
	(*CDOTAUserMsg_HighFiveLeftHanging)(nil),                                  // 146: CDOTAUserMsg_HighFiveLeftHanging
	(*CDOTAUserMsg_ShovelUnearth)(nil),                                        // 147: CDOTAUserMsg_ShovelUnearth
	(*CDOTAUserMsg_AllStarEvent)(nil),                                         // 148: CDOTAUserMsg_AllStarEvent
	(*CDOTAUserMsg_QueuedOrderRemoved)(nil),                                   // 149: CDOTAUserMsg_QueuedOrderRemoved
	(*CDOTAUserMsg_DebugChallenge)(nil),                                       // 150: CDOTAUserMsg_DebugChallenge
	(*CDOTAUserMsg_FoundNeutralItem)(nil),                                     // 151: CDOTAUserMsg_FoundNeutralItem
	(*CDOTAUserMsg_OutpostCaptured)(nil),                                      // 152: CDOTAUserMsg_OutpostCaptured
	(*CDOTAUserMsg_OutpostGrantedXP)(nil),                                     // 153: CDOTAUserMsg_OutpostGrantedXP
	(*CDOTAUserMsg_MoveCameraToUnit)(nil),                                     // 154: CDOTAUserMsg_MoveCameraToUnit
	(*CDOTAUserMsg_PauseMinigameData)(nil),                                    // 155: CDOTAUserMsg_PauseMinigameData
	(*CDOTAUserMsg_VersusScene_PlayerBehavior)(nil),                           // 156: CDOTAUserMsg_VersusScene_PlayerBehavior
	(*CDOTAUserMsg_QoP_ArcanaSummary)(nil),                                    // 157: CDOTAUserMsg_QoP_ArcanaSummary
	(*CDOTAUserMsg_HotPotato_Created)(nil),                                    // 158: CDOTAUserMsg_HotPotato_Created
	(*CDOTAUserMsg_HotPotato_Exploded)(nil),                                   // 159: CDOTAUserMsg_HotPotato_Exploded
	(*CDOTAUserMsg_WK_Arcana_Progress)(nil),                                   // 160: CDOTAUserMsg_WK_Arcana_Progress
	(*CDOTAUserMsg_GuildChallenge_Progress)(nil),                              // 161: CDOTAUserMsg_GuildChallenge_Progress
	(*CDOTAUserMsg_WRArcanaProgress)(nil),                                     // 162: CDOTAUserMsg_WRArcanaProgress
	(*CDOTAUserMsg_WRArcanaSummary)(nil),                                      // 163: CDOTAUserMsg_WRArcanaSummary
	(*CDOTAUserMsg_EmptyItemSlotAlert)(nil),                                   // 164: CDOTAUserMsg_EmptyItemSlotAlert
	(*CDOTAUserMsg_AghsStatusAlert)(nil),                                      // 165: CDOTAUserMsg_AghsStatusAlert
	(*CDOTAUserMsg_MutedPlayers)(nil),                                         // 166: CDOTAUserMsg_MutedPlayers
	(*CDOTAUserMsg_ContextualTip)(nil),                                        // 167: CDOTAUserMsg_ContextualTip
	(*CDOTAUserMsg_ChatMessage)(nil),                                          // 168: CDOTAUserMsg_ChatMessage
	(*CDOTAUserMsg_MiniKillCamInfo_Attacker)(nil),                             // 169: CDOTAUserMsg_MiniKillCamInfo.Attacker
	(*CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability)(nil),                     // 170: CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability
	(*CDOTAUserMsg_CourierKilledAlert_LostItem)(nil),                          // 171: CDOTAUserMsg_CourierKilledAlert.LostItem
	(*CDOTAUserMsg_PredictionResult_Prediction)(nil),                          // 172: CDOTAUserMsg_PredictionResult.Prediction
	(*CDOTAResponseQuerySerialized_Fact)(nil),                                 // 173: CDOTAResponseQuerySerialized.Fact
	(*CDOTAUserMsg_UnitEvent_Interval)(nil),                                   // 174: CDOTAUserMsg_UnitEvent.Interval
	(*CDOTAUserMsg_UnitEvent_Speech)(nil),                                     // 175: CDOTAUserMsg_UnitEvent.Speech
	(*CDOTAUserMsg_UnitEvent_SpeechMute)(nil),                                 // 176: CDOTAUserMsg_UnitEvent.SpeechMute
	(*CDOTAUserMsg_UnitEvent_AddGesture)(nil),                                 // 177: CDOTAUserMsg_UnitEvent.AddGesture
	(*CDOTAUserMsg_UnitEvent_RemoveGesture)(nil),                              // 178: CDOTAUserMsg_UnitEvent.RemoveGesture
	(*CDOTAUserMsg_UnitEvent_BloodImpact)(nil),                                // 179: CDOTAUserMsg_UnitEvent.BloodImpact
	(*CDOTAUserMsg_UnitEvent_FadeGesture)(nil),                                // 180: CDOTAUserMsg_UnitEvent.FadeGesture
	(*CDOTAUserMsg_StatsHeroPositionInfo_PositionPair)(nil),                   // 181: CDOTAUserMsg_StatsHeroPositionInfo.PositionPair
	(*CDOTAUserMsg_StatsTeamMinuteDetails_LocationPerformance)(nil),           // 182: CDOTAUserMsg_StatsTeamMinuteDetails.LocationPerformance
	(*CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightTeamDetails)(nil), // 183: CDOTAUserMsg_StatsMatchDetails.CDOTAUserMsg_StatsFightTeamDetails
	(*CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightDetails)(nil),     // 184: CDOTAUserMsg_StatsMatchDetails.CDOTAUserMsg_StatsFightDetails
	(*CDOTAUserMsg_AllStarEvent_PlayerScore)(nil),                             // 185: CDOTAUserMsg_AllStarEvent.PlayerScore
	(*CDOTAUserMsg_PauseMinigameData_DataBit)(nil),                            // 186: CDOTAUserMsg_PauseMinigameData.DataBit
	(*CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress)(nil),               // 187: CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress
	(*CMsgVector2D)(nil),                                                      // 188: CMsgVector2D
	(*CMsgDOTACombatLogEntry)(nil),                                            // 189: CMsgDOTACombatLogEntry
	(*CMsgVector)(nil),                                                        // 190: CMsgVector
	(*CDOTAMsg_LocationPing)(nil),                                             // 191: CDOTAMsg_LocationPing
	(*CDOTAMsg_ItemAlert)(nil),                                                // 192: CDOTAMsg_ItemAlert
	(*CEntityMsg)(nil),                                                        // 193: CEntityMsg
	(*CDOTAMsg_MapLine)(nil),                                                  // 194: CDOTAMsg_MapLine
	(*CDOTAMsg_WorldLine)(nil),                                                // 195: CDOTAMsg_WorldLine
	(*CDOTAMsg_SendStatPopup)(nil),                                            // 196: CDOTAMsg_SendStatPopup
	(*CDOTAMsg_DismissAllStatPopups)(nil),                                     // 197: CDOTAMsg_DismissAllStatPopups
	(*CDOTAMsg_CoachHUDPing)(nil),                                             // 198: CDOTAMsg_CoachHUDPing
	(EDOTAVersusScenePlayerBehavior)(0),                                       // 199: EDOTAVersusScenePlayerBehavior
	(*VersusScene_PlayActivity)(nil),                                          // 200: VersusScene_PlayActivity
	(*VersusScene_ChatWheel)(nil),                                             // 201: VersusScene_ChatWheel
	(*VersusScene_PlaybackRate)(nil),                                          // 202: VersusScene_PlaybackRate
}
var file_dota_usermessages_proto_depIdxs = []int32{
	1,   // 0: CDOTAUserMsg_ChatEvent.type:type_name -> DOTA_CHAT_MESSAGE
	188, // 1: CDOTAUserMsg_CombatHeroPositions.world_pos:type_name -> CMsgVector2D
	189, // 2: CDOTAUserMsg_CombatLogBulkData.combat_entries:type_name -> CMsgDOTACombatLogEntry
	190, // 3: CDOTAUserMsg_ProjectileParticleCPData.vector:type_name -> CMsgVector
	169, // 4: CDOTAUserMsg_MiniKillCamInfo.attackers:type_name -> CDOTAUserMsg_MiniKillCamInfo.Attacker
	190, // 5: CDOTAUserMsg_GlobalLightDirection.direction:type_name -> CMsgVector
	191, // 6: CDOTAUserMsg_LocationPing.location_ping:type_name -> CDOTAMsg_LocationPing
	190, // 7: CDOTAUserMsg_PingConfirmation.location:type_name -> CMsgVector
	192, // 8: CDOTAUserMsg_ItemAlert.item_alert:type_name -> CDOTAMsg_ItemAlert
	193, // 9: CDOTAEntityMsg_InvokerSpellCast.entity_msg:type_name -> CEntityMsg
	171, // 10: CDOTAUserMsg_CourierKilledAlert.lost_items:type_name -> CDOTAUserMsg_CourierKilledAlert.LostItem
	194, // 11: CDOTAUserMsg_MapLine.mapline:type_name -> CDOTAMsg_MapLine
	190, // 12: CDOTAUserMsg_MinimapDebugPoint.location:type_name -> CMsgVector
	190, // 13: CDOTAUserMsg_CreateLinearProjectile.origin:type_name -> CMsgVector
	188, // 14: CDOTAUserMsg_CreateLinearProjectile.velocity:type_name -> CMsgVector2D
	188, // 15: CDOTAUserMsg_CreateLinearProjectile.acceleration:type_name -> CMsgVector2D
	24,  // 16: CDOTAUserMsg_CreateLinearProjectile.particle_cp_data:type_name -> CDOTAUserMsg_ProjectileParticleCPData
	190, // 17: CDOTAUserMsg_SpectatorPlayerUnitOrders.position:type_name -> CMsgVector
	190, // 18: CDOTAUserMsg_NevermoreRequiem.origin:type_name -> CMsgVector
	172, // 19: CDOTAUserMsg_PredictionResult.predictions:type_name -> CDOTAUserMsg_PredictionResult.Prediction
	173, // 20: CDOTAResponseQuerySerialized.facts:type_name -> CDOTAResponseQuerySerialized.Fact
	58,  // 21: CDOTASpeechMatchOnClient.responsequery:type_name -> CDOTAResponseQuerySerialized
	6,   // 22: CDOTAUserMsg_UnitEvent.msg_type:type_name -> EDotaEntityMessages
	175, // 23: CDOTAUserMsg_UnitEvent.speech:type_name -> CDOTAUserMsg_UnitEvent.Speech
	176, // 24: CDOTAUserMsg_UnitEvent.speech_mute:type_name -> CDOTAUserMsg_UnitEvent.SpeechMute
	177, // 25: CDOTAUserMsg_UnitEvent.add_gesture:type_name -> CDOTAUserMsg_UnitEvent.AddGesture
	178, // 26: CDOTAUserMsg_UnitEvent.remove_gesture:type_name -> CDOTAUserMsg_UnitEvent.RemoveGesture
	179, // 27: CDOTAUserMsg_UnitEvent.blood_impact:type_name -> CDOTAUserMsg_UnitEvent.BloodImpact
	180, // 28: CDOTAUserMsg_UnitEvent.fade_gesture:type_name -> CDOTAUserMsg_UnitEvent.FadeGesture
	59,  // 29: CDOTAUserMsg_UnitEvent.speech_match_on_client:type_name -> CDOTASpeechMatchOnClient
	7,   // 30: CDOTAUserMsg_OverheadEvent.message_type:type_name -> DOTA_OVERHEAD_ALERT
	195, // 31: CDOTAUserMsg_WorldLine.worldline:type_name -> CDOTAMsg_WorldLine
	196, // 32: CDOTAUserMsg_SendStatPopup.statpopup:type_name -> CDOTAMsg_SendStatPopup
	197, // 33: CDOTAUserMsg_DismissAllStatPopups.dismissallmsg:type_name -> CDOTAMsg_DismissAllStatPopups
	8,   // 34: CDOTAUserMsg_SendRoshanSpectatorPhase.phase:type_name -> DOTA_ROSHAN_PHASE
	198, // 35: CDOTAUserMsg_CoachHUDPing.hud_ping:type_name -> CDOTAMsg_CoachHUDPing
	190, // 36: CDOTAUserMsg_TE_Projectile.target_loc:type_name -> CMsgVector
	24,  // 37: CDOTAUserMsg_TE_Projectile.particle_cp_data:type_name -> CDOTAUserMsg_ProjectileParticleCPData
	190, // 38: CDOTAUserMsg_TE_ProjectileLoc.source_loc:type_name -> CMsgVector
	190, // 39: CDOTAUserMsg_TE_ProjectileLoc.target_loc:type_name -> CMsgVector
	24,  // 40: CDOTAUserMsg_TE_ProjectileLoc.particle_cp_data:type_name -> CDOTAUserMsg_ProjectileParticleCPData
	4,   // 41: CDOTAUserMsg_AbilityPing.type:type_name -> DOTA_ABILITY_PING_TYPE
	98,  // 42: CDOTAUserMsg_BoosterState.boosted_players:type_name -> CDOTAUserMsg_BoosterStatePlayer
	181, // 43: CDOTAUserMsg_StatsHeroPositionInfo.position_details:type_name -> CDOTAUserMsg_StatsHeroPositionInfo.PositionPair
	103, // 44: CDOTAUserMsg_StatsHeroMinuteDetails.position_info:type_name -> CDOTAUserMsg_StatsHeroPositionInfo
	104, // 45: CDOTAUserMsg_StatsTeamMinuteDetails.player_stats:type_name -> CDOTAUserMsg_StatsHeroMinuteDetails
	182, // 46: CDOTAUserMsg_StatsTeamMinuteDetails.lane_performance:type_name -> CDOTAUserMsg_StatsTeamMinuteDetails.LocationPerformance
	106, // 47: CDOTAUserMsg_StatsKillDetails.kill_shares:type_name -> CDOTAUserMsg_StatsPlayerKillShare
	102, // 48: CDOTAUserMsg_StatsMatchDetails.hero_lookup:type_name -> CDOTAUserMsg_StatsHeroLookup
	105, // 49: CDOTAUserMsg_StatsMatchDetails.radiant_stats:type_name -> CDOTAUserMsg_StatsTeamMinuteDetails
	105, // 50: CDOTAUserMsg_StatsMatchDetails.dire_stats:type_name -> CDOTAUserMsg_StatsTeamMinuteDetails
	107, // 51: CDOTAUserMsg_StatsMatchDetails.radiant_kills:type_name -> CDOTAUserMsg_StatsKillDetails
	107, // 52: CDOTAUserMsg_StatsMatchDetails.dire_kills:type_name -> CDOTAUserMsg_StatsKillDetails
	184, // 53: CDOTAUserMsg_StatsMatchDetails.fight_details:type_name -> CDOTAUserMsg_StatsMatchDetails.CDOTAUserMsg_StatsFightDetails
	11,  // 54: CMsgHeroAbilityStat.stat_type:type_name -> EHeroStatType
	112, // 55: CMsgCombatAnalyzerPlayerStat.hero_ability_stats:type_name -> CMsgHeroAbilityStat
	113, // 56: CMsgCombatAnalyzerStats.player_stats:type_name -> CMsgCombatAnalyzerPlayerStat
	119, // 57: CDOTAUserMsg_CompendiumState.compendium_players:type_name -> CDOTAUserMsg_CompendiumStatePlayer
	190, // 58: CDOTAUserMsg_ProjectionAbility.origin:type_name -> CMsgVector
	13,  // 59: CDOTAUserMsg_ProjectionEvent.event_id:type_name -> EProjectionEvent
	185, // 60: CDOTAUserMsg_AllStarEvent.player_scores:type_name -> CDOTAUserMsg_AllStarEvent.PlayerScore
	186, // 61: CDOTAUserMsg_PauseMinigameData.data_bits:type_name -> CDOTAUserMsg_PauseMinigameData.DataBit
	199, // 62: CDOTAUserMsg_VersusScene_PlayerBehavior.behavior:type_name -> EDOTAVersusScenePlayerBehavior
	200, // 63: CDOTAUserMsg_VersusScene_PlayerBehavior.play_activity:type_name -> VersusScene_PlayActivity
	201, // 64: CDOTAUserMsg_VersusScene_PlayerBehavior.chat_wheel:type_name -> VersusScene_ChatWheel
	202, // 65: CDOTAUserMsg_VersusScene_PlayerBehavior.playback_rate:type_name -> VersusScene_PlaybackRate
	187, // 66: CDOTAUserMsg_GuildChallenge_Progress.player_progress:type_name -> CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress
	16,  // 67: CDOTAUserMsg_GuildChallenge_Progress.challenge_type:type_name -> CDOTAUserMsg_GuildChallenge_Progress.EChallengeType
	170, // 68: CDOTAUserMsg_MiniKillCamInfo.Attacker.abilities:type_name -> CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability
	14,  // 69: CDOTAUserMsg_PredictionResult.Prediction.result:type_name -> CDOTAUserMsg_PredictionResult.Prediction.EResult
	15,  // 70: CDOTAResponseQuerySerialized.Fact.valtype:type_name -> CDOTAResponseQuerySerialized.Fact.ValueType
	174, // 71: CDOTAUserMsg_UnitEvent.Speech.predelay:type_name -> CDOTAUserMsg_UnitEvent.Interval
	9,   // 72: CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.position_category:type_name -> DOTA_POSITION_CATEGORY
	183, // 73: CDOTAUserMsg_StatsMatchDetails.CDOTAUserMsg_StatsFightDetails.radiant_fight_details:type_name -> CDOTAUserMsg_StatsMatchDetails.CDOTAUserMsg_StatsFightTeamDetails
	183, // 74: CDOTAUserMsg_StatsMatchDetails.CDOTAUserMsg_StatsFightDetails.dire_fight_details:type_name -> CDOTAUserMsg_StatsMatchDetails.CDOTAUserMsg_StatsFightTeamDetails
	75,  // [75:75] is the sub-list for method output_type
	75,  // [75:75] is the sub-list for method input_type
	75,  // [75:75] is the sub-list for extension type_name
	75,  // [75:75] is the sub-list for extension extendee
	0,   // [0:75] is the sub-list for field type_name
}

func init() { file_dota_usermessages_proto_init() }
func file_dota_usermessages_proto_init() {
	if File_dota_usermessages_proto != nil {
		return
	}
	file_networkbasetypes_proto_init()
	file_dota_shared_enums_proto_init()
	file_dota_commonmessages_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_dota_usermessages_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_AIDebugLine); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_Ping); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_SwapVerify); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_ChatEvent); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_BotChat); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_CombatHeroPositions); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_CombatLogBulkData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_ProjectileParticleCPData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_MiniKillCamInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_GlobalLightColor); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_GlobalLightDirection); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_LocationPing); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_PingConfirmation); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_ItemAlert); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_EnemyItemAlert); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_ModifierAlert); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_HPManaAlert); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_GlyphAlert); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_RadarAlert); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_WillPurchaseAlert); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_EmptyTeleportAlert); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_MarsArenaOfBloodAttack); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAEntityMsg_InvokerSpellCast); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_BuyBackStateAlert); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_QuickBuyAlert); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_CourierKilledAlert); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_MinimapEvent); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_MapLine); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_MinimapDebugPoint); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_CreateLinearProjectile); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_DestroyLinearProjectile); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_DodgeTrackingProjectiles); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_SpectatorPlayerClick); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_SpectatorPlayerUnitOrders); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_NevermoreRequiem); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_InvalidCommand); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_HudError); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_SharedCooldown); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_SetNextAutobuyItem); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_HalloweenDrops); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_PredictionResult); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAResponseQuerySerialized); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTASpeechMatchOnClient); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_UnitEvent); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_ItemPurchased); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_ItemSold); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_ItemFound); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_OverheadEvent); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_TutorialTipInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_TutorialFinish); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_TutorialMinimapPosition); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_SendGenericToolTip); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_WorldLine); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_ChatWheel); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_ReceivedXmasGift); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_ShowSurvey); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_UpdateSharedContent); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_TutorialRequestExp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_TutorialFade); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_TutorialPingMinimap); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_GamerulesStateChanged); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_AddQuestLogEntry); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_SendStatPopup); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_DismissAllStatPopups); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_SendRoshanSpectatorPhase); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_SendRoshanPopup); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_SendFinalGold); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_CustomMsg); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_CoachHUDPing); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_ClientLoadGridNav); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_TE_Projectile); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_TE_ProjectileLoc); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_TE_DestroyProjectile); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_TE_DotaBloodImpact); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_AbilityPing); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_TE_UnitAnimation); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_TE_UnitAnimationEnd); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_ShowGenericPopup); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_VoteStart); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_VoteUpdate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_VoteEnd); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_BoosterStatePlayer); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_BoosterState); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_PlayerMMR); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_AbilitySteal); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_StatsHeroLookup); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_StatsHeroPositionInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_StatsHeroMinuteDetails); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_StatsTeamMinuteDetails); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_StatsPlayerKillShare); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_StatsKillDetails); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_StatsMatchDetails); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_MiniTaunt); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_SpeechBubble); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_CustomHeaderMessage); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CMsgHeroAbilityStat); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CMsgCombatAnalyzerPlayerStat); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CMsgCombatAnalyzerStats); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_BeastChat); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_CustomHudElement_Create); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_CustomHudElement_Modify); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_CustomHudElement_Destroy); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_CompendiumStatePlayer); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_CompendiumState); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_ProjectionAbility); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_ProjectionEvent); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_XPAlert); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_TalentTreeAlert); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_UpdateQuestProgress); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_QuestStatus); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_SuggestHeroPick); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_SuggestHeroRole); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_KillcamDamageTaken); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_SelectPenaltyGold); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_RollDiceResult); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_FlipCoinResult); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMessage_RequestItemSuggestions); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMessage_TeamCaptainChanged); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_ChatWheelCooldown); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_HeroRelicProgress); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_AbilityDraftRequestAbility); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_DamageReport); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_SalutePlayer); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_TipAlert); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_ReplaceQueryUnit); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_ESArcanaCombo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_ESArcanaComboSummary); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_OMArcanaCombo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_HighFiveCompleted); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_HighFiveLeftHanging); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_ShovelUnearth); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_AllStarEvent); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_QueuedOrderRemoved); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_DebugChallenge); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_FoundNeutralItem); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_OutpostCaptured); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_OutpostGrantedXP); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_MoveCameraToUnit); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_PauseMinigameData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_VersusScene_PlayerBehavior); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_QoP_ArcanaSummary); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_HotPotato_Created); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_HotPotato_Exploded); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_WK_Arcana_Progress); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_GuildChallenge_Progress); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_WRArcanaProgress); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_WRArcanaSummary); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_EmptyItemSlotAlert); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_AghsStatusAlert); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_MutedPlayers); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_ContextualTip); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_ChatMessage); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_MiniKillCamInfo_Attacker); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_CourierKilledAlert_LostItem); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_PredictionResult_Prediction); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAResponseQuerySerialized_Fact); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_UnitEvent_Interval); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[158].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_UnitEvent_Speech); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[159].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_UnitEvent_SpeechMute); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[160].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_UnitEvent_AddGesture); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[161].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_UnitEvent_RemoveGesture); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[162].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_UnitEvent_BloodImpact); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[163].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_UnitEvent_FadeGesture); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[164].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_StatsHeroPositionInfo_PositionPair); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[165].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_StatsTeamMinuteDetails_LocationPerformance); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[166].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightTeamDetails); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[167].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_StatsMatchDetails_CDOTAUserMsg_StatsFightDetails); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[168].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_AllStarEvent_PlayerScore); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[169].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_PauseMinigameData_DataBit); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_dota_usermessages_proto_msgTypes[170].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_dota_usermessages_proto_rawDesc,
			NumEnums:      17,
			NumMessages:   171,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_dota_usermessages_proto_goTypes,
		DependencyIndexes: file_dota_usermessages_proto_depIdxs,
		EnumInfos:         file_dota_usermessages_proto_enumTypes,
		MessageInfos:      file_dota_usermessages_proto_msgTypes,
	}.Build()
	File_dota_usermessages_proto = out.File
	file_dota_usermessages_proto_rawDesc = nil
	file_dota_usermessages_proto_goTypes = nil
	file_dota_usermessages_proto_depIdxs = nil
}
