diff --git a/Makefile b/Makefile
index 86c4f63..8b66499 100644
--- a/Makefile
+++ b/Makefile
@@ -67,7 +67,7 @@ upload: dist register
 
 pb_fetch:
 	wget -nv --show-progress -N -P ./protobufs/ -i protobuf_list.txt || exit 0
-	mv protobufs/friends.proto protobufs/steammessages_webui_friends.steamclient.proto
+	mv protobufs/friends_mobile.proto protobufs/steammessages_webui_friends.steamclient.proto
 	sed -i 's/CCommunity_ClanAnnouncementInfo/xCCommunity_ClanAnnouncementInfo/' protobufs/steammessages_webui_friends.steamclient.proto
 	sed -i 's/CMsgClientSecret/xCMsgClientSecret/' protobufs/steammessages_webui_friends.steamclient.proto
 	sed -i '1s/^/option py_generic_services = true\;\n/' protobufs/steammessages_webui_friends.steamclient.proto
diff --git a/protobuf_list.txt b/protobuf_list.txt
index 419592c..03a8f19 100644
--- a/protobuf_list.txt
+++ b/protobuf_list.txt
@@ -32,4 +32,5 @@ https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/s
 https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_unified_test.steamclient.proto
 https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_useraccount.steamclient.proto
 https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/steammessages_video.steamclient.proto
-https://raw.githubusercontent.com/SteamDatabase/Protobufs/master/webui/friends.proto
+https://raw.githubusercontent.com/SteamDatabase/SteamTracking/master/Protobufs/enums.proto
+https://raw.githubusercontent.com/SteamDatabase/Protobufs/master/webui/friends_mobile.proto
diff --git a/protobufs/enums.proto b/protobufs/enums.proto
new file mode 100644
index 0000000..c607357
--- /dev/null
+++ b/protobufs/enums.proto
@@ -0,0 +1,102 @@
+syntax = "proto2";
+import "steammessages_base.proto";
+
+option optimize_for = SPEED;
+option py_generic_services = true;
+option (force_php_generation) = true;
+
+enum EPublishedFileQueryType {
+	k_PublishedFileQueryType_RankedByVote = 0;
+	k_PublishedFileQueryType_RankedByPublicationDate = 1;
+	k_PublishedFileQueryType_AcceptedForGameRankedByAcceptanceDate = 2;
+	k_PublishedFileQueryType_RankedByTrend = 3;
+	k_PublishedFileQueryType_FavoritedByFriendsRankedByPublicationDate = 4;
+	k_PublishedFileQueryType_CreatedByFriendsRankedByPublicationDate = 5;
+	k_PublishedFileQueryType_RankedByNumTimesReported = 6;
+	k_PublishedFileQueryType_CreatedByFollowedUsersRankedByPublicationDate = 7;
+	k_PublishedFileQueryType_NotYetRated = 8;
+	k_PublishedFileQueryType_RankedByTotalUniqueSubscriptions = 9;
+	k_PublishedFileQueryType_RankedByTotalVotesAsc = 10;
+	k_PublishedFileQueryType_RankedByVotesUp = 11;
+	k_PublishedFileQueryType_RankedByTextSearch = 12;
+	k_PublishedFileQueryType_RankedByPlaytimeTrend = 13;
+	k_PublishedFileQueryType_RankedByTotalPlaytime = 14;
+	k_PublishedFileQueryType_RankedByAveragePlaytimeTrend = 15;
+	k_PublishedFileQueryType_RankedByLifetimeAveragePlaytime = 16;
+	k_PublishedFileQueryType_RankedByPlaytimeSessionsTrend = 17;
+	k_PublishedFileQueryType_RankedByLifetimePlaytimeSessions = 18;
+	k_PublishedFileQueryType_RankedByInappropriateContentRating = 19;
+}
+
+enum EPublishedFileInappropriateProvider {
+	k_EPublishedFileInappropriateProvider_Invalid = 0;
+	k_EPublishedFileInappropriateProvider_Google = 1;
+	k_EPublishedFileInappropriateProvider_Amazon = 2;
+}
+
+enum EPublishedFileInappropriateResult {
+	k_EPublishedFileInappropriateResult_NotScanned = 0;
+	k_EPublishedFileInappropriateResult_VeryUnlikely = 1;
+	k_EPublishedFileInappropriateResult_Unlikely = 30;
+	k_EPublishedFileInappropriateResult_Possible = 50;
+	k_EPublishedFileInappropriateResult_Likely = 75;
+	k_EPublishedFileInappropriateResult_VeryLikely = 100;
+}
+
+enum EPersonaStateFlag {
+	k_EPersonaStateFlag_HasRichPresence = 1;
+	k_EPersonaStateFlag_InJoinableGame = 2;
+	k_EPersonaStateFlag_Golden = 4;
+	k_EPersonaStateFlag_RemotePlayTogether = 8;
+	k_EPersonaStateFlag_ClientTypeWeb = 256;
+	k_EPersonaStateFlag_ClientTypeMobile = 512;
+	k_EPersonaStateFlag_ClientTypeTenfoot = 1024;
+	k_EPersonaStateFlag_ClientTypeVR = 2048;
+	k_EPersonaStateFlag_LaunchTypeGamepad = 4096;
+	k_EPersonaStateFlag_LaunchTypeCompatTool = 8192;
+}
+
+enum EContentCheckProvider {
+	k_EContentCheckProvider_Invalid = 0;
+	k_EContentCheckProvider_Google = 1;
+	k_EContentCheckProvider_Amazon = 2;
+	k_EContentCheckProvider_Local = 3;
+}
+
+enum EBanContentCheckResult {
+	k_EBanContentCheckResult_NotScanned = 0;
+	k_EBanContentCheckResult_Reset = 1;
+	k_EBanContentCheckResult_NeedsChecking = 2;
+	k_EBanContentCheckResult_VeryUnlikely = 5;
+	k_EBanContentCheckResult_Unlikely = 30;
+	k_EBanContentCheckResult_Possible = 50;
+	k_EBanContentCheckResult_Likely = 75;
+	k_EBanContentCheckResult_VeryLikely = 100;
+}
+
+enum EProfileCustomizationType {
+	k_EProfileCustomizationTypeInvalid = 0;
+	k_EProfileCustomizationTypeRareAchievementShowcase = 1;
+	k_EProfileCustomizationTypeGameCollector = 2;
+	k_EProfileCustomizationTypeItemShowcase = 3;
+	k_EProfileCustomizationTypeTradeShowcase = 4;
+	k_EProfileCustomizationTypeBadges = 5;
+	k_EProfileCustomizationTypeFavoriteGame = 6;
+	k_EProfileCustomizationTypeScreenshotShowcase = 7;
+	k_EProfileCustomizationTypeCustomText = 8;
+	k_EProfileCustomizationTypeFavoriteGroup = 9;
+	k_EProfileCustomizationTypeRecommendation = 10;
+	k_EProfileCustomizationTypeWorkshopItem = 11;
+	k_EProfileCustomizationTypeMyWorkshop = 12;
+	k_EProfileCustomizationTypeArtworkShowcase = 13;
+	k_EProfileCustomizationTypeVideoShowcase = 14;
+	k_EProfileCustomizationTypeGuides = 15;
+	k_EProfileCustomizationTypeMyGuides = 16;
+	k_EProfileCustomizationTypeAchievements = 17;
+	k_EProfileCustomizationTypeGreenlight = 18;
+	k_EProfileCustomizationTypeMyGreenlight = 19;
+	k_EProfileCustomizationTypeSalien = 20;
+	k_EProfileCustomizationTypeLoyaltyRewardReactions = 21;
+	k_EProfileCustomizationTypeSingleArtworkShowcase = 22;
+	k_EProfileCustomizationTypeAchievementsCompletionist = 23;
+}
diff --git a/protobufs/steammessages_base.proto b/protobufs/steammessages_base.proto
index 2a83209..ac0b9f8 100644
--- a/protobufs/steammessages_base.proto
+++ b/protobufs/steammessages_base.proto
@@ -139,6 +139,7 @@ message CCDDBAppDetailCommon {
 	optional string friendly_name = 10;
 	optional string propagation = 11;
 	optional bool has_adult_content = 12;
+	optional bool is_visible_in_steam_china = 13;
 }
 
 message CMsgAppRights {
@@ -247,6 +248,8 @@ message CClanEventData {
 	optional uint32 rtime32_last_modified = 24;
 	optional fixed64 news_post_gid = 25;
 	optional uint32 rtime_mod_reviewed = 26;
+	optional uint32 featured_app_tagid = 27;
+	repeated uint32 referenced_appids = 28;
 }
 
 message CBilling_Address {
@@ -261,3 +264,14 @@ message CBilling_Address {
 	optional int32 zip_plus4 = 9;
 	optional string phone = 10;
 }
+
+message CPackageReservationStatus {
+	optional uint32 packageid = 1;
+	optional int32 reservation_state = 2;
+	optional int32 queue_position = 3;
+	optional int32 total_queue_size = 4;
+	optional string reservation_country_code = 5;
+	optional bool expired = 6;
+	optional uint32 time_expires = 7;
+	optional uint32 time_reserved = 8;
+}
diff --git a/protobufs/steammessages_broadcast.proto b/protobufs/steammessages_broadcast.proto
index d1e6259..9893f11 100644
--- a/protobufs/steammessages_broadcast.proto
+++ b/protobufs/steammessages_broadcast.proto
@@ -35,6 +35,7 @@ message CBroadcast_BeginBroadcastSession_Request {
 	optional bool thumbnail_upload = 7;
 	optional string client_beta = 8;
 	optional uint32 sysid = 9;
+	optional bool allow_webrtc = 10;
 }
 
 message CBroadcast_BeginBroadcastSession_Response {
@@ -80,7 +81,6 @@ message CBroadcast_WatchBroadcast_Request {
 	optional fixed64 steamid = 1 [(description) = "broadcaster steamID."];
 	optional fixed64 existing_broadcast_id = 2 [(description) = "broadcast session ID (optional, rejoin if specified)."];
 	optional fixed64 viewer_token = 3 [(description) = "viewer token received from last WatchRequest call, from browser storage."];
-	optional uint32 client_ip = 4;
 	optional uint32 client_cell = 5;
 	optional .EBroadcastWatchLocation watch_location = 6 [default = k_EBroadcastWatchLocation_Invalid];
 	optional bool is_webrtc = 7;
@@ -121,6 +121,7 @@ message CBroadcast_WatchBroadcast_Response {
 	optional string webrtc_turn_server = 17;
 	optional bool is_replay = 18;
 	optional int32 duration = 19;
+	optional string cdn_auth_url_parameters = 20;
 }
 
 message CBroadcast_HeartbeatBroadcast_Notification {
diff --git a/protobufs/steammessages_chat.proto b/protobufs/steammessages_chat.proto
index 9df3694..d90edf7 100644
--- a/protobufs/steammessages_chat.proto
+++ b/protobufs/steammessages_chat.proto
@@ -43,6 +43,11 @@ enum EChatRoomServerMessage {
 	k_EChatRoomServerMsg_AppCustom = 11;
 }
 
+enum EChatRoomMessageReactionType {
+	k_EChatRoomMessageReactionType_Invalid = 0;
+	k_EChatRoomMessageReactionType_Emoticon = 1;
+}
+
 enum EChatRoomMemberStateChange {
 	k_EChatRoomMemberStateChange_Invalid = 0;
 	k_EChatRoomMemberStateChange_Joined = 1;
@@ -469,12 +474,20 @@ message ServerMessage {
 
 message CChatRoom_GetMessageHistory_Response {
 	message ChatMessage {
+		message MessageReaction {
+			optional .EChatRoomMessageReactionType reaction_type = 1 [default = k_EChatRoomMessageReactionType_Invalid];
+			optional string reaction = 2;
+			optional uint32 num_reactors = 3;
+			optional bool has_user_reacted = 4;
+		}
+
 		optional uint32 sender = 1;
 		optional uint32 server_timestamp = 2;
 		optional string message = 3;
 		optional uint32 ordinal = 4;
 		optional .ServerMessage server_message = 5;
 		optional bool deleted = 6;
+		repeated .CChatRoom_GetMessageHistory_Response.ChatMessage.MessageReaction reactions = 7;
 	}
 
 	repeated .CChatRoom_GetMessageHistory_Response.ChatMessage messages = 1;
@@ -715,6 +728,34 @@ message CChatRoom_SearchMembers_Response {
 	optional uint32 status_flags = 2;
 }
 
+message CChatRoom_UpdateMessageReaction_Request {
+	optional uint64 chat_group_id = 1;
+	optional uint64 chat_id = 2;
+	optional uint32 server_timestamp = 3;
+	optional uint32 ordinal = 4;
+	optional .EChatRoomMessageReactionType reaction_type = 5 [default = k_EChatRoomMessageReactionType_Invalid];
+	optional string reaction = 6;
+	optional bool is_add = 7;
+}
+
+message CChatRoom_UpdateMessageReaction_Response {
+	optional uint32 num_reactors = 1;
+}
+
+message CChatRoom_GetMessageReactionReactors_Request {
+	optional uint64 chat_group_id = 1;
+	optional uint64 chat_id = 2;
+	optional uint32 server_timestamp = 3;
+	optional uint32 ordinal = 4;
+	optional .EChatRoomMessageReactionType reaction_type = 5 [default = k_EChatRoomMessageReactionType_Invalid];
+	optional string reaction = 6;
+	optional uint32 limit = 7;
+}
+
+message CChatRoom_GetMessageReactionReactors_Response {
+	repeated uint32 reactors = 1;
+}
+
 message CClanChatRooms_GetClanChatRoomInfo_Request {
 	optional fixed64 steamid = 1;
 	optional bool autocreate = 2 [default = true, (description) = "Create a default chat room if none has been created before."];
@@ -826,6 +867,17 @@ message CChatRoomClient_MemberListViewUpdated_Notification {
 	repeated .CMsgClientPersonaState.Friend subscribed_personas = 7;
 }
 
+message CChatRoom_MessageReaction_Notification {
+	optional uint64 chat_group_id = 1;
+	optional uint64 chat_id = 2;
+	optional uint32 server_timestamp = 3;
+	optional uint32 ordinal = 4;
+	optional fixed64 reactor = 5;
+	optional .EChatRoomMessageReactionType reaction_type = 6 [default = k_EChatRoomMessageReactionType_Invalid];
+	optional string reaction = 7;
+	optional bool is_add = 8;
+}
+
 message CChatUsability_ClientUsabilityMetrics_Notification {
 	message Settings {
 		optional bool notifications_show_ingame = 1;
@@ -1137,6 +1189,14 @@ service ChatRoom {
 	rpc SearchMembers (.CChatRoom_SearchMembers_Request) returns (.CChatRoom_SearchMembers_Response) {
 		option (method_description) = "Search chat room members by name.";
 	}
+
+	rpc UpdateMessageReaction (.CChatRoom_UpdateMessageReaction_Request) returns (.CChatRoom_UpdateMessageReaction_Response) {
+		option (method_description) = "Adds/removes a reaction to/from a chat room message";
+	}
+
+	rpc GetMessageReactionReactors (.CChatRoom_GetMessageReactionReactors_Request) returns (.CChatRoom_GetMessageReactionReactors_Response) {
+		option (method_description) = "Fetches a list of reactors for a specified reaction";
+	}
 }
 
 service ClanChatRooms {
@@ -1194,6 +1254,10 @@ service ChatRoomClient {
 	rpc NotifyMemberListViewUpdated (.CChatRoomClient_MemberListViewUpdated_Notification) returns (.NoResponse) {
 		option (method_description) = "The list of members for a chat room with virtualized member list has changed on the server (or client requested)";
 	}
+
+	rpc NotifyMessageReaction (.CChatRoom_MessageReaction_Notification) returns (.NoResponse) {
+		option (method_description) = "New message reaction";
+	}
 }
 
 service ChatUsability {
diff --git a/protobufs/steammessages_clientserver.proto b/protobufs/steammessages_clientserver.proto
index 2280449..9eca1ae 100644
--- a/protobufs/steammessages_clientserver.proto
+++ b/protobufs/steammessages_clientserver.proto
@@ -59,7 +59,7 @@ message CMsgClientP2PConnectionInfo {
 	optional fixed64 steam_id_src = 2;
 	optional uint32 app_id = 3;
 	optional bytes candidate = 4;
-	optional fixed64 connection_id_src = 5;
+	optional fixed64 legacy_connection_id_src = 5;
 	optional bytes rendezvous = 6;
 }
 
@@ -303,16 +303,6 @@ message CMsgClientLBSGetLBEntriesResponse {
 	repeated .CMsgClientLBSGetLBEntriesResponse.Entry entries = 3;
 }
 
-message CMsgClientAppMinutesPlayedData {
-	message AppMinutesPlayedData {
-		optional uint32 app_id = 1;
-		optional int32 forever = 2;
-		optional int32 last_two_weeks = 3;
-	}
-
-	repeated .CMsgClientAppMinutesPlayedData.AppMinutesPlayedData minutes_played = 1;
-}
-
 message CMsgClientIsLimitedAccount {
 	optional bool bis_limited_account = 1;
 	optional bool bis_community_banned = 2;
@@ -939,6 +929,7 @@ message CMsgClientWalletInfoUpdate {
 	optional int32 balance_delayed = 4;
 	optional int64 balance64 = 5 [(php_output_always_number) = true];
 	optional int64 balance64_delayed = 6 [(php_output_always_number) = true];
+	optional int32 realm = 7;
 }
 
 message CMsgClientAppInfoUpdate {
@@ -1034,7 +1025,7 @@ message CMsgClientPICSProductInfoRequest {
 	message AppInfo {
 		optional uint32 appid = 1;
 		optional uint64 access_token = 2;
-		optional bool only_public = 3;
+		optional bool only_public_obsolete = 3;
 	}
 
 	message PackageInfo {
diff --git a/protobufs/steammessages_clientserver_2.proto b/protobufs/steammessages_clientserver_2.proto
index 1b4561f..b26ca97 100644
--- a/protobufs/steammessages_clientserver_2.proto
+++ b/protobufs/steammessages_clientserver_2.proto
@@ -461,12 +461,14 @@ message CMsgClientGetDepotDecryptionKeyResponse {
 message CMsgClientCheckAppBetaPassword {
 	optional uint32 app_id = 1;
 	optional string betapassword = 2;
+	optional int32 language = 3;
 }
 
 message CMsgClientCheckAppBetaPasswordResponse {
 	message BetaPassword {
 		optional string betaname = 1;
 		optional string betapassword = 2;
+		optional string betadescription = 3;
 	}
 
 	optional int32 eresult = 1 [default = 2];
@@ -529,6 +531,7 @@ message CMsgDownloadRateStatistics {
 	optional uint32 cell_id = 1;
 	repeated .CMsgDownloadRateStatistics.StatsInfo stats = 2;
 	optional uint32 throttling_kbps = 3;
+	optional uint32 steam_realm = 4;
 }
 
 message CMsgClientRequestAccountData {
@@ -576,13 +579,16 @@ message CMsgGameServerData {
 		optional fixed64 steam_id = 1;
 	}
 
+	optional uint32 revision = 24;
 	optional fixed64 steam_id_gs = 1;
-	optional uint32 deprecated_ip = 2;
 	optional uint32 query_port = 3;
 	optional uint32 game_port = 4;
-	optional uint32 sourcetv_port = 5;
-	optional string name = 22;
-	optional .CMsgIPAddress game_ip_address = 23;
+	optional uint32 spectator_port = 5;
+	optional string server_name = 22;
+	optional string game_description = 29;
+	optional string spectator_server_name = 27;
+	optional fixed32 fake_ip = 28;
+	optional bytes sdr_login = 26;
 	optional uint32 app_id = 6;
 	optional string gamedir = 7;
 	optional string version = 8;
@@ -596,16 +602,13 @@ message CMsgGameServerData {
 	optional bool dedicated = 16;
 	optional string os = 17;
 	optional string game_data = 18;
-	optional uint32 game_data_version = 19;
 	optional string game_type = 20;
 	optional string map = 21;
 }
 
 message CMsgGameServerRemove {
-	optional fixed64 steam_id = 1;
-	optional uint32 deprecated_ip = 2;
-	optional uint32 query_port = 3;
-	optional .CMsgIPAddress ip = 4;
+	optional fixed64 legacy_steam_id_gs = 1;
+	optional uint32 legacy_query_port = 3;
 }
 
 message CMsgClientGMSServerQuery {
@@ -619,7 +622,7 @@ message CMsgClientGMSServerQuery {
 message CMsgGMSClientServerQueryResponse {
 	message Server {
 		optional uint32 deprecated_server_ip = 1;
-		optional uint32 server_port = 2;
+		optional uint32 query_port = 2;
 		optional uint32 auth_players = 3;
 		optional .CMsgIPAddress server_ip = 4;
 	}
diff --git a/protobufs/steammessages_clientserver_friends.proto b/protobufs/steammessages_clientserver_friends.proto
index c474d27..ecf14f8 100644
--- a/protobufs/steammessages_clientserver_friends.proto
+++ b/protobufs/steammessages_clientserver_friends.proto
@@ -232,6 +232,7 @@ message CMsgClientEmoticonList {
 		optional uint32 time_last_used = 3;
 		optional uint32 use_count = 4;
 		optional uint32 time_received = 5;
+		optional uint32 appid = 6;
 	}
 
 	message Sticker {
@@ -239,6 +240,8 @@ message CMsgClientEmoticonList {
 		optional int32 count = 2;
 		optional uint32 time_received = 3;
 		optional uint32 appid = 4;
+		optional uint32 time_last_used = 5;
+		optional uint32 use_count = 6;
 	}
 
 	message Effect {
diff --git a/protobufs/steammessages_clientserver_login.proto b/protobufs/steammessages_clientserver_login.proto
index 711f8cd..0d9052c 100644
--- a/protobufs/steammessages_clientserver_login.proto
+++ b/protobufs/steammessages_clientserver_login.proto
@@ -77,6 +77,7 @@ message CMsgClientLogon {
 	optional string web_logon_nonce = 103;
 	optional int32 priority_reason = 104;
 	optional .CMsgClientSecret embedded_client_secret = 105;
+	optional bool disable_partner_autogrants = 106;
 }
 
 message CMsgClientLogonResponse {
@@ -92,7 +93,7 @@ message CMsgClientLogonResponse {
 	optional int32 eresult_extended = 10;
 	optional string webapi_authenticate_user_nonce = 11;
 	optional uint32 cell_id_ping_threshold = 12;
-	optional bool use_pics = 13;
+	optional bool deprecated_use_pics = 13;
 	optional string vanity_url = 14;
 	optional .CMsgIPAddress public_ip = 15;
 	optional fixed64 client_supplied_steamid = 20;
@@ -104,6 +105,7 @@ message CMsgClientLogonResponse {
 	optional int32 ogs_data_report_time_window = 26;
 	optional uint64 client_instance_id = 27;
 	optional bool force_client_update_check = 28;
+	optional string agreement_session_url = 29;
 }
 
 message CMsgClientRequestWebAPIAuthenticateUserNonce {
diff --git a/protobufs/steammessages_credentials.proto b/protobufs/steammessages_credentials.proto
index 2b2c80e..77beb42 100644
--- a/protobufs/steammessages_credentials.proto
+++ b/protobufs/steammessages_credentials.proto
@@ -73,15 +73,15 @@ message CCredentials_ValidateEmailAddress_Response {
 
 message CCredentials_SteamGuardPhishingReport_Request {
 	optional string param_string = 1;
-	optional uint32 ipaddress_actual = 2;
+	optional string ipaddress_actual = 2;
 }
 
 message CCredentials_SteamGuardPhishingReport_Response {
-	optional uint32 ipaddress_loginattempt = 1;
+	optional string ipaddress_loginattempt = 1;
 	optional string countryname_loginattempt = 2;
 	optional string statename_loginattempt = 3;
 	optional string cityname_loginattempt = 4;
-	optional uint32 ipaddress_actual = 5;
+	optional string ipaddress_actual = 5;
 	optional string countryname_actual = 6;
 	optional string statename_actual = 7;
 	optional string cityname_actual = 8;
diff --git a/protobufs/steammessages_depotbuilder.proto b/protobufs/steammessages_depotbuilder.proto
index 810bdfd..a86432a 100644
--- a/protobufs/steammessages_depotbuilder.proto
+++ b/protobufs/steammessages_depotbuilder.proto
@@ -8,6 +8,7 @@ message CContentBuilder_InitDepotBuild_Request {
 	optional uint32 depotid = 2;
 	optional uint64 workshop_itemid = 3;
 	optional bool for_local_cs = 4;
+	optional string target_branch = 5;
 }
 
 message CContentBuilder_InitDepotBuild_Response {
@@ -20,6 +21,8 @@ message CContentBuilder_InitDepotBuild_Response {
 	optional uint32 offset_detection_min_clean_chunk = 7;
 	optional uint32 offset_detection_blast_radius_pre = 8;
 	optional uint32 offset_detection_blast_radius_post = 9;
+	optional uint32 offset_detection_max_distance_pre = 10;
+	optional uint32 offset_detection_max_distance_post = 11;
 }
 
 message CContentBuilder_StartDepotUpload_Request {
diff --git a/protobufs/steammessages_friendmessages.proto b/protobufs/steammessages_friendmessages.proto
index 1de1986..75b6684 100644
--- a/protobufs/steammessages_friendmessages.proto
+++ b/protobufs/steammessages_friendmessages.proto
@@ -3,6 +3,11 @@ import "steammessages_unified_base.proto";
 
 option py_generic_services = true;
 
+enum EMessageReactionType {
+	k_EMessageReactionType_Invalid = 0;
+	k_EMessageReactionType_Emoticon = 1;
+}
+
 message CFriendMessages_GetRecentMessages_Request {
 	optional fixed64 steamid1 = 1;
 	optional fixed64 steamid2 = 2;
@@ -17,10 +22,17 @@ message CFriendMessages_GetRecentMessages_Request {
 
 message CFriendMessages_GetRecentMessages_Response {
 	message FriendMessage {
+		message MessageReaction {
+			optional .EMessageReactionType reaction_type = 1 [default = k_EMessageReactionType_Invalid];
+			optional string reaction = 2;
+			repeated uint32 reactors = 3;
+		}
+
 		optional uint32 accountid = 1;
 		optional uint32 timestamp = 2;
 		optional string message = 3;
 		optional uint32 ordinal = 4;
+		repeated .CFriendMessages_GetRecentMessages_Response.FriendMessage.MessageReaction reactions = 5;
 	}
 
 	repeated .CFriendMessages_GetRecentMessages_Response.FriendMessage messages = 1 [(description) = "Array of messages, returned newest to oldest."];
@@ -75,6 +87,19 @@ message CFriendMessages_IsInFriendsUIBeta_Response {
 	optional bool has_used_friendsui = 2;
 }
 
+message CFriendMessages_UpdateMessageReaction_Request {
+	optional fixed64 steamid = 1;
+	optional uint32 server_timestamp = 2;
+	optional uint32 ordinal = 3;
+	optional .EMessageReactionType reaction_type = 4 [default = k_EMessageReactionType_Invalid];
+	optional string reaction = 5;
+	optional bool is_add = 6;
+}
+
+message CFriendMessages_UpdateMessageReaction_Response {
+	repeated uint32 reactors = 1;
+}
+
 message CFriendMessages_IncomingMessage_Notification {
 	optional fixed64 steamid_friend = 1;
 	optional int32 chat_entry_type = 2;
@@ -87,6 +112,16 @@ message CFriendMessages_IncomingMessage_Notification {
 	optional bool low_priority = 9;
 }
 
+message CFriendMessages_MessageReaction_Notification {
+	optional fixed64 steamid_friend = 1;
+	optional uint32 server_timestamp = 2;
+	optional uint32 ordinal = 3;
+	optional fixed64 reactor = 4;
+	optional .EMessageReactionType reaction_type = 5 [default = k_EMessageReactionType_Invalid];
+	optional string reaction = 6;
+	optional bool is_add = 7;
+}
+
 service FriendMessages {
 	option (service_description) = "A service for relaying and logging friend messages (user-to-user chats and offline messaging)";
 
@@ -109,6 +144,10 @@ service FriendMessages {
 	rpc IsInFriendsUIBeta (.CFriendMessages_IsInFriendsUIBeta_Request) returns (.CFriendMessages_IsInFriendsUIBeta_Response) {
 		option (method_description) = "See if a friend is in the friendsui beta.";
 	}
+
+	rpc UpdateMessageReaction (.CFriendMessages_UpdateMessageReaction_Request) returns (.CFriendMessages_UpdateMessageReaction_Response) {
+		option (method_description) = "Adds/removes a reaction to/from a friend message";
+	}
 }
 
 service FriendMessagesClient {
@@ -121,4 +160,8 @@ service FriendMessagesClient {
 	rpc NotifyAckMessageEcho (.CFriendMessages_AckMessage_Notification) returns (.NoResponse) {
 		option (method_description) = "A session acked an unread message, echo to other sessions.";
 	}
+
+	rpc MessageReaction (.CFriendMessages_MessageReaction_Notification) returns (.NoResponse) {
+		option (method_description) = "New message reaction from a friend.";
+	}
 }
diff --git a/protobufs/steammessages_player.proto b/protobufs/steammessages_player.proto
index bd7282d..67d4cef 100644
--- a/protobufs/steammessages_player.proto
+++ b/protobufs/steammessages_player.proto
@@ -1,14 +1,37 @@
 syntax = "proto2";
 import "steammessages_unified_base.proto";
+import "enums.proto";
 
 option py_generic_services = true;
 
+enum EProfileCustomizationStyle {
+	k_EProfileCustomizationStyleDefault = 0;
+	k_EProfileCustomizationStyleSelected = 1;
+	k_EProfileCustomizationStyleRarest = 2;
+	k_EProfileCustomizationStyleMostRecent = 3;
+	k_EProfileCustomizationStyleRandom = 4;
+	k_EProfileCustomizationStyleHighestRated = 5;
+}
+
+enum EAgreementType {
+	k_EAgreementType_Invalid = -1;
+	k_EAgreementType_GlobalSSA = 0;
+	k_EAgreementType_ChinaSSA = 1;
+}
+
 enum ENotificationSetting {
 	k_ENotificationSettingNotifyUseDefault = 0;
 	k_ENotificationSettingAlways = 1;
 	k_ENotificationSettingNever = 2;
 }
 
+enum ETextFilterSetting {
+	k_ETextFilterSettingSteamLabOptedOut = 0;
+	k_ETextFilterSettingEnabled = 1;
+	k_ETextFilterSettingEnabledAllowProfanity = 2;
+	k_ETextFilterSettingDisabled = 3;
+}
+
 message CPlayer_GetMutualFriendsForIncomingInvites_Request {
 }
 
@@ -27,6 +50,7 @@ message CPlayer_GetOwnedGames_Request {
 	optional bool include_played_free_games = 3 [(description) = "Free games are excluded by default.  If this is set, free games the user has played will be returned."];
 	repeated uint32 appids_filter = 4 [(description) = "if set, restricts result set to the passed in apps"];
 	optional bool include_free_sub = 5 [(description) = "Some games are in the free sub, which are excluded by default."];
+	optional bool skip_unvetted_apps = 6 [default = true, (description) = "if set, skip unvetted store apps"];
 }
 
 message CPlayer_GetOwnedGames_Response {
@@ -147,6 +171,8 @@ message ProfileItem {
 	optional uint32 item_class = 9;
 	optional string movie_webm = 10 [(description) = "URL to webm, if any"];
 	optional string movie_mp4 = 11 [(description) = "URL to mp4, if any"];
+	optional string movie_webm_small = 13 [(description) = "URL to small webm, if any"];
+	optional string movie_mp4_small = 14 [(description) = "URL to small mp4, if any"];
 	optional uint32 equipped_flags = 12 [(description) = "Special flags set when equipped (EProfileItemEquippedFlag)"];
 }
 
@@ -252,6 +278,7 @@ message CPlayer_GetEmoticonList_Response {
 		optional uint32 time_last_used = 3;
 		optional uint32 use_count = 4;
 		optional uint32 time_received = 5;
+		optional uint32 appid = 6;
 	}
 
 	repeated .CPlayer_GetEmoticonList_Response.Emoticon emoticons = 1;
@@ -276,6 +303,124 @@ message CPlayer_GetAchievementsProgress_Response {
 	repeated .CPlayer_GetAchievementsProgress_Response.AchievementProgress achievement_progress = 1;
 }
 
+message CPlayer_GetFavoriteBadge_Request {
+	optional uint64 steamid = 1;
+}
+
+message CPlayer_GetFavoriteBadge_Response {
+	optional bool has_favorite_badge = 1;
+	optional uint32 badgeid = 2;
+	optional uint64 communityitemid = 3;
+	optional uint32 item_type = 4;
+	optional uint32 border_color = 5;
+	optional uint32 appid = 6;
+	optional uint32 level = 7;
+}
+
+message CPlayer_SetFavoriteBadge_Request {
+	optional uint64 communityitemid = 1;
+	optional uint32 badgeid = 2;
+}
+
+message CPlayer_SetFavoriteBadge_Response {
+}
+
+message CPlayer_GetProfileCustomization_Request {
+	optional fixed64 steamid = 1;
+	optional bool include_inactive_customizations = 2;
+	optional bool include_purchased_customizations = 3;
+}
+
+message ProfileCustomizationSlot {
+	optional uint32 slot = 1;
+	optional uint32 appid = 2;
+	optional uint64 publishedfileid = 3;
+	optional uint64 item_assetid = 4;
+	optional uint64 item_contextid = 5;
+	optional string notes = 6;
+	optional string title = 7;
+	optional uint32 accountid = 8;
+	optional uint32 badgeid = 9;
+	optional uint32 border_color = 10;
+	optional uint64 item_classid = 11;
+	optional uint64 item_instanceid = 12;
+	optional .EBanContentCheckResult ban_check_result = 13 [default = k_EBanContentCheckResult_NotScanned];
+}
+
+message ProfileCustomization {
+	optional .EProfileCustomizationType customization_type = 1 [default = k_EProfileCustomizationTypeInvalid];
+	optional bool large = 2;
+	repeated .ProfileCustomizationSlot slots = 3;
+	optional bool active = 4;
+	optional .EProfileCustomizationStyle customization_style = 5 [default = k_EProfileCustomizationStyleDefault];
+	optional uint64 purchaseid = 6;
+	optional uint32 level = 7;
+}
+
+message ProfileTheme {
+	optional string theme_id = 1;
+	optional string title = 2;
+}
+
+message CPlayer_GetProfileCustomization_Response {
+	message PurchasedCustomization {
+		optional uint64 purchaseid = 1;
+		optional .EProfileCustomizationType customization_type = 2 [default = k_EProfileCustomizationTypeInvalid];
+		optional uint32 level = 3;
+	}
+
+	repeated .ProfileCustomization customizations = 1;
+	optional uint32 slots_available = 2;
+	optional .ProfileTheme profile_theme = 3;
+	repeated .CPlayer_GetProfileCustomization_Response.PurchasedCustomization purchased_customizations = 4;
+}
+
+message CPlayer_GetPurchasedProfileCustomizations_Request {
+	optional fixed64 steamid = 1;
+}
+
+message CPlayer_GetPurchasedProfileCustomizations_Response {
+	message PurchasedCustomization {
+		optional uint64 purchaseid = 1;
+		optional .EProfileCustomizationType customization_type = 2 [default = k_EProfileCustomizationTypeInvalid];
+	}
+
+	repeated .CPlayer_GetPurchasedProfileCustomizations_Response.PurchasedCustomization purchased_customizations = 1;
+}
+
+message CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Request {
+	optional fixed64 steamid = 1;
+}
+
+message CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response {
+	message PurchasedCustomization {
+		optional .EProfileCustomizationType customization_type = 1 [default = k_EProfileCustomizationTypeInvalid];
+		optional uint32 count = 2;
+	}
+
+	message UpgradedCustomization {
+		optional .EProfileCustomizationType customization_type = 1 [default = k_EProfileCustomizationTypeInvalid];
+		optional uint32 level = 2;
+	}
+
+	repeated .CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response.PurchasedCustomization purchased_customizations = 1;
+	repeated .CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response.UpgradedCustomization upgraded_customizations = 2;
+}
+
+message CPlayer_GetProfileThemesAvailable_Request {
+}
+
+message CPlayer_GetProfileThemesAvailable_Response {
+	repeated .ProfileTheme profile_themes = 1;
+}
+
+message CPlayer_SetProfileTheme_Request {
+	optional string theme_id = 1;
+}
+
+message CPlayer_SetProfileTheme_Response {
+}
+
 message CPlayer_PostStatusToFriends_Request {
 	optional uint32 appid = 1;
 	optional string status_text = 2;
@@ -330,6 +475,7 @@ message CPlayer_GetLastPlayedTimes_Response {
 }
 
 message CPlayer_AcceptSSA_Request {
+	optional .EAgreementType agreement_type = 1 [default = k_EAgreementType_Invalid];
 }
 
 message CPlayer_AcceptSSA_Response {
@@ -407,6 +553,9 @@ message CPlayer_CommunityPreferences {
 	optional bool hide_adult_content_violence = 1 [default = true];
 	optional bool hide_adult_content_sex = 2 [default = true];
 	optional bool parenthesize_nicknames = 4 [default = false];
+	optional .ETextFilterSetting text_filter_setting = 5 [default = k_ETextFilterSettingSteamLabOptedOut];
+	optional bool text_filter_ignore_friends = 6 [default = true];
+	optional uint32 text_filter_words_revision = 7;
 	optional uint32 timestamp_updated = 3;
 }
 
@@ -421,6 +570,19 @@ message CPlayer_SetCommunityPreferences_Request {
 message CPlayer_SetCommunityPreferences_Response {
 }
 
+message CPlayer_GetTextFilterWords_Request {
+}
+
+message CPlayer_TextFilterWords {
+	repeated string text_filter_custom_banned_words = 1;
+	repeated string text_filter_custom_clean_words = 2;
+	optional uint32 text_filter_words_revision = 3;
+}
+
+message CPlayer_GetTextFilterWords_Response {
+	optional .CPlayer_TextFilterWords words = 1;
+}
+
 message CPlayer_GetNewSteamAnnouncementState_Request {
 	optional int32 language = 1;
 }
@@ -496,6 +658,10 @@ message CPlayer_CommunityPreferencesChanged_Notification {
 	optional .CPlayer_CommunityPreferences preferences = 1;
 }
 
+message CPlayer_TextFilterWordsChanged_Notification {
+	optional .CPlayer_TextFilterWords words = 1;
+}
+
 message CPlayer_PerFriendPreferencesChanged_Notification {
 	optional fixed32 accountid = 1;
 	optional .PerFriendPreferences preferences = 2;
@@ -584,6 +750,34 @@ service Player {
 		option (method_description) = "Gets the achievement completion stats for the specified list of apps.";
 	}
 
+	rpc GetFavoriteBadge (.CPlayer_GetFavoriteBadge_Request) returns (.CPlayer_GetFavoriteBadge_Response) {
+		option (method_description) = "Gets the badge the user has set as their favorite";
+	}
+
+	rpc SetFavoriteBadge (.CPlayer_SetFavoriteBadge_Request) returns (.CPlayer_SetFavoriteBadge_Response) {
+		option (method_description) = "Sets the badge  as the users favorite";
+	}
+
+	rpc GetProfileCustomization (.CPlayer_GetProfileCustomization_Request) returns (.CPlayer_GetProfileCustomization_Response) {
+		option (method_description) = "Returns the customizations (if any) for a profile";
+	}
+
+	rpc GetPurchasedProfileCustomizations (.CPlayer_GetPurchasedProfileCustomizations_Request) returns (.CPlayer_GetPurchasedProfileCustomizations_Response) {
+		option (method_description) = "Returns the purchased profile customizations";
+	}
+
+	rpc GetPurchasedAndUpgradedProfileCustomizations (.CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Request) returns (.CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response) {
+		option (method_description) = "Returns the purchased and upgraded profile customizations";
+	}
+
+	rpc GetProfileThemesAvailable (.CPlayer_GetProfileThemesAvailable_Request) returns (.CPlayer_GetProfileThemesAvailable_Response) {
+		option (method_description) = "Gets themes available for the user.";
+	}
+
+	rpc SetProfileTheme (.CPlayer_SetProfileTheme_Request) returns (.CPlayer_SetProfileTheme_Response) {
+		option (method_description) = "Selects a theme for the profile";
+	}
+
 	rpc PostStatusToFriends (.CPlayer_PostStatusToFriends_Request) returns (.CPlayer_PostStatusToFriends_Response) {
 		option (method_description) = "Posts custom status text into the blotter";
 	}
@@ -636,6 +830,10 @@ service Player {
 		option (method_description) = "Sets the player's community preferences";
 	}
 
+	rpc GetTextFilterWords (.CPlayer_GetTextFilterWords_Request) returns (.CPlayer_GetTextFilterWords_Response) {
+		option (method_description) = "Get the custom text filtering dictionary for this user";
+	}
+
 	rpc GetNewSteamAnnouncementState (.CPlayer_GetNewSteamAnnouncementState_Request) returns (.CPlayer_GetNewSteamAnnouncementState_Response) {
 		option (method_description) = "Calculates and returns what to display for UI that renders new steam announcement available";
 	}
@@ -677,6 +875,10 @@ service PlayerClient {
 		option (method_description) = "Notification from server to client that their community preferences have changed";
 	}
 
+	rpc NotifyTextFilterWordsChanged (.CPlayer_TextFilterWordsChanged_Notification) returns (.NoResponse) {
+		option (method_description) = "Notification from server to client that their text filtering dictionary has changed";
+	}
+
 	rpc NotifyPerFriendPreferencesChanged (.CPlayer_PerFriendPreferencesChanged_Notification) returns (.NoResponse) {
 		option (method_description) = "Notification from server that per-friend preferences have changed";
 	}
diff --git a/protobufs/steammessages_publishedfile.proto b/protobufs/steammessages_publishedfile.proto
index 06e646f..4e964e3 100644
--- a/protobufs/steammessages_publishedfile.proto
+++ b/protobufs/steammessages_publishedfile.proto
@@ -1,5 +1,6 @@
 syntax = "proto2";
 import "steammessages_unified_base.proto";
+import "enums.proto";
 
 option py_generic_services = true;
 
@@ -95,6 +96,7 @@ message PublishedFileDetails {
 	message Tag {
 		optional string tag = 1;
 		optional bool adminonly = 2;
+		optional string display_name = 3;
 	}
 
 	message Preview {
@@ -212,6 +214,7 @@ message PublishedFileDetails {
 	optional .EPublishedFileRevision revision = 68 [default = k_EPublishedFileRevision_Default, (description) = "The revision of the data returned, usually k_EPublishedFileRevision_Latest, but can be another revision/snapshot depending on the caller."];
 	repeated .EPublishedFileRevision available_revisions = 69 [(description) = "Available revisions"];
 	repeated .PublishedFileDetails.Reaction reactions = 70 [(description) = "Reactions to this item"];
+	optional .EBanContentCheckResult ban_text_check_result = 71 [default = k_EBanContentCheckResult_NotScanned];
 }
 
 message CPublishedFile_GetDetails_Response {
@@ -282,6 +285,7 @@ message CPublishedFile_GetUserFiles_Request {
 	optional uint32 return_playtime_stats = 31 [(description) = "Return playtime stats for the specified number of days before today."];
 	optional bool strip_description_bbcode = 32 [(description) = "Strips BBCode from descriptions."];
 	optional bool return_reactions = 35 [default = false, (description) = "If true, then reactions to items will be returned."];
+	optional uint32 startindex_override = 25 [(description) = "Backwards compatible for the client."];
 	optional .EPublishedFileRevision desired_revision = 33 [default = k_EPublishedFileRevision_Default, (description) = "Return the data for the specified revision."];
 }
 
diff --git a/protobufs/steammessages_shader.proto b/protobufs/steammessages_shader.proto
index 045ccf3..d2a7a22 100644
--- a/protobufs/steammessages_shader.proto
+++ b/protobufs/steammessages_shader.proto
@@ -40,10 +40,34 @@ message CShader_GetBucketManifest_Request {
 
 message CShader_GetBucketManifest_Response {
 	optional uint64 manifestid = 1;
-	optional uint32 depotsize = 2;
+	optional uint64 depotsize = 2;
 	optional uint64 bucketid = 3;
 }
 
+message CShader_GetStaleBucket_Request {
+	optional string gpu_desc = 1;
+	optional string driver_desc = 2;
+}
+
+message CShader_GetStaleBucket_Response {
+	optional uint64 bucketid = 1;
+	optional uint32 appid = 2;
+	optional uint64 manifestid = 3;
+}
+
+message CShader_ReportExternalBuild_Request {
+	optional uint32 appid = 1;
+	optional string gpu_desc = 2;
+	optional string driver_desc = 3;
+	optional uint64 manifestid = 4;
+	optional string source_gpu_desc = 5;
+	optional string source_driver_desc = 6;
+	optional uint64 depotsize = 7;
+}
+
+message CShader_ReportExternalBuild_Response {
+}
+
 service Shader {
 	option (service_description) = "Shader methods";
 
@@ -58,4 +82,12 @@ service Shader {
 	rpc GetBucketManifest (.CShader_GetBucketManifest_Request) returns (.CShader_GetBucketManifest_Response) {
 		option (method_description) = "Client wants to know the manifest ID to fetch (if any) for a bucket's depot";
 	}
+
+	rpc GetStaleBucket (.CShader_GetStaleBucket_Request) returns (.CShader_GetStaleBucket_Response) {
+		option (method_description) = "Job to get a stale bucket given a gpu and driver desc";
+	}
+
+	rpc ReportExternalBuild (.CShader_ReportExternalBuild_Request) returns (.CShader_ReportExternalBuild_Response) {
+		option (method_description) = "Report an exernally built bucket";
+	}
 }
diff --git a/protobufs/steammessages_store.proto b/protobufs/steammessages_store.proto
index 6108b70..2ef3d87 100644
--- a/protobufs/steammessages_store.proto
+++ b/protobufs/steammessages_store.proto
@@ -9,6 +9,19 @@ enum EUserReviewScorePreference {
 	k_EUserReviewScorePreference_ExcludeBombs = 2;
 }
 
+message CStore_GetMostPopularTags_Request {
+	optional string language = 1;
+}
+
+message CStore_GetMostPopularTags_Response {
+	message Tag {
+		optional uint32 tagid = 1;
+		optional string name = 2;
+	}
+
+	repeated .CStore_GetMostPopularTags_Response.Tag tags = 1;
+}
+
 message CStore_GetLocalizedNameForTags_Request {
 	optional string language = 1;
 	repeated uint32 tagids = 2;
@@ -75,6 +88,10 @@ message CStore_StorePreferencesChanged_Notification {
 service Store {
 	option (service_description) = "A service to access store data.";
 
+	rpc GetMostPopularTags (.CStore_GetMostPopularTags_Request) returns (.CStore_GetMostPopularTags_Response) {
+		option (method_description) = "Get all whitelisted tags, with localized names.";
+	}
+
 	rpc GetLocalizedNameForTags (.CStore_GetLocalizedNameForTags_Request) returns (.CStore_GetLocalizedNameForTags_Response) {
 		option (method_description) = "Gets tag names in a different language";
 	}
diff --git a/protobufs/steammessages_webui_friends.proto b/protobufs/steammessages_webui_friends.proto
index 160e9c1..15987e0 100644
--- a/protobufs/steammessages_webui_friends.proto
+++ b/protobufs/steammessages_webui_friends.proto
@@ -4,6 +4,27 @@ import "steammessages_unified_base.proto";
 import "steammessages_base.proto";
 import "steammessages_clientserver_friends.proto";
 
+message CHelpRequestLogs_UploadUserApplicationLog_Request {
+	optional uint32 appid = 1;
+	optional string log_type = 2;
+	optional string version_string = 3;
+	optional string log_contents = 4;
+}
+
+message CHelpRequestLogs_UploadUserApplicationLog_Response {
+	optional uint64 id = 1;
+}
+
+message CMsgClientAppMinutesPlayedData {
+	repeated .CMsgClientAppMinutesPlayedData_AppMinutesPlayedData minutes_played = 1;
+}
+
+message CMsgClientAppMinutesPlayedData_AppMinutesPlayedData {
+	optional uint32 app_id = 1;
+	optional int32 forever = 2;
+	optional int32 last_two_weeks = 3;
+}
+
 message CCommunity_GetApps_Request {
 	repeated int32 appids = 1;
 	optional uint32 language = 2;
@@ -33,6 +54,21 @@ message CCommunity_GetAppRichPresenceLocalization_Response_TokenList {
 	repeated .CCommunity_GetAppRichPresenceLocalization_Response_Token tokens = 2;
 }
 
+message CCommunity_GetCommentThread_Request {
+	optional fixed64 steamid = 1;
+	optional uint32 comment_thread_type = 2;
+	optional fixed64 gidfeature = 3;
+	optional fixed64 gidfeature2 = 4;
+	optional fixed64 commentthreadid = 5;
+	optional int32 start = 6;
+	optional int32 count = 7;
+	optional int32 upvoters = 8;
+	optional bool include_deleted = 9;
+	optional fixed64 gidcomment = 10;
+	optional uint32 time_oldest = 11;
+	optional bool oldest_first = 12;
+}
+
 message CCommunity_Comment {
 	optional fixed64 gidcomment = 1;
 	optional fixed64 steamid = 2;
@@ -65,6 +101,16 @@ message CCommunity_GetCommentThread_Response {
 	optional bool can_post = 15;
 }
 
+message CCommunity_PostCommentToThread_Request {
+	optional fixed64 steamid = 1;
+	optional uint32 comment_thread_type = 2;
+	optional fixed64 gidfeature = 3;
+	optional fixed64 gidfeature2 = 4;
+	optional string text = 6;
+	optional fixed64 gidparentcomment = 7;
+	optional bool suppress_notifications = 8;
+}
+
 message CCommunity_PostCommentToThread_Response {
 	optional fixed64 gidcomment = 1;
 	optional fixed64 commentthreadid = 2;
@@ -72,9 +118,28 @@ message CCommunity_PostCommentToThread_Response {
 	optional int32 upvotes = 4;
 }
 
+message CCommunity_DeleteCommentFromThread_Request {
+	optional fixed64 steamid = 1;
+	optional uint32 comment_thread_type = 2;
+	optional fixed64 gidfeature = 3;
+	optional fixed64 gidfeature2 = 4;
+	optional fixed64 gidcomment = 5;
+	optional bool undelete = 6;
+}
+
 message CCommunity_DeleteCommentFromThread_Response {
 }
 
+message CCommunity_RateCommentThread_Request {
+	optional string commentthreadtype = 1;
+	optional uint64 steamid = 2;
+	optional uint64 gidfeature = 3;
+	optional uint64 gidfeature2 = 4;
+	optional uint64 gidcomment = 5;
+	optional bool rate_up = 6;
+	optional bool suppress_notifications = 7;
+}
+
 message CCommunity_RateCommentThread_Response {
 	optional uint64 gidcomment = 1;
 	optional uint64 commentthreadid = 2;
@@ -83,6 +148,15 @@ message CCommunity_RateCommentThread_Response {
 	optional bool has_upvoted = 5;
 }
 
+message CCommunity_GetCommentThreadRatings_Request {
+	optional string commentthreadtype = 1;
+	optional uint64 steamid = 2;
+	optional uint64 gidfeature = 3;
+	optional uint64 gidfeature2 = 4;
+	optional uint64 gidcomment = 5;
+	optional uint32 max_results = 6;
+}
+
 message CCommunity_GetCommentThreadRatings_Response {
 	optional uint64 commentthreadid = 1;
 	optional uint64 gidcomment = 2;
@@ -94,7 +168,6 @@ message CCommunity_GetCommentThreadRatings_Response {
 message CCommunity_RateClanAnnouncement_Request {
 	optional uint64 announcementid = 1;
 	optional bool vote_up = 2;
-	optional uint32 clan_accountid = 3;
 }
 
 message CCommunity_RateClanAnnouncement_Response {
@@ -109,25 +182,33 @@ message CCommunity_GetClanAnnouncementVoteForUser_Response {
 	optional bool voted_down = 2;
 }
 
-message CCommunity_GetAvatarHistory_Response {
-	repeated .CCommunity_GetAvatarHistory_Response_AvatarData avatars = 1;
-}
-
-message CCommunity_GetAvatarHistory_Response_AvatarData {
-	optional string avatar_sha1 = 1;
-	optional bool user_uploaded = 2;
-	optional uint32 timestamp = 3;
-}
-
 message CAppPriority {
 	optional uint32 priority = 1;
 	repeated uint32 appid = 2;
 }
 
+message CCommunity_GetUserPartnerEventNews_Request {
+	optional uint32 count = 1;
+	optional uint32 offset = 2;
+	optional uint32 rtime32_start_time = 3;
+	optional uint32 rtime32_end_time = 4;
+	repeated uint32 language_preference = 5;
+	repeated int32 filter_event_type = 6 [(description) = "enum; suggested type: ECommunityWordFilterType"];
+	optional bool filter_to_appid = 7;
+	repeated .CAppPriority app_list = 8;
+	optional uint32 count_after = 9 [default = 0];
+	optional uint32 count_before = 10 [default = 0];
+}
+
 message CCommunity_GetUserPartnerEventNews_Response {
 	repeated .CClanMatchEventByRange results = 1;
 }
 
+message CCommunity_GetBestEventsForUser_Request {
+	optional bool include_steam_blog = 1;
+	optional uint32 filter_to_played_within_days = 2;
+}
+
 message CCommunity_PartnerEventResult {
 	optional uint32 clanid = 1;
 	optional fixed64 event_gid = 2;
@@ -142,6 +223,9 @@ message CCommunity_GetBestEventsForUser_Response {
 	repeated .CCommunity_PartnerEventResult results = 1;
 }
 
+message CCommunity_ClearUserPartnerEventsAppPriorities_Request {
+}
+
 message CCommunity_ClearUserPartnerEventsAppPriorities_Response {
 }
 
@@ -150,16 +234,31 @@ message CCommunity_PartnerEventsAppPriority {
 	optional int32 user_app_priority = 2;
 }
 
+message CCommunity_GetUserPartnerEventsAppPriorities_Request {
+}
+
 message CCommunity_GetUserPartnerEventsAppPriorities_Response {
 	repeated .CCommunity_PartnerEventsAppPriority priorities = 1;
 }
 
+message CCommunity_ClearSinglePartnerEventsAppPriority_Request {
+	optional uint32 appid = 1;
+}
+
 message CCommunity_ClearSinglePartnerEventsAppPriority_Response {
 }
 
+message CCommunity_PartnerEventsShowMoreForApp_Request {
+	optional uint32 appid = 1;
+}
+
 message CCommunity_PartnerEventsShowMoreForApp_Response {
 }
 
+message CCommunity_PartnerEventsShowLessForApp_Request {
+	optional uint32 appid = 1;
+}
+
 message CCommunity_PartnerEventsShowLessForApp_Response {
 }
 
@@ -170,7 +269,7 @@ message CCommunity_MarkPartnerEventsForUser_Request {
 message CCommunity_MarkPartnerEventsForUser_Request_PartnerEventMarking {
 	optional uint32 clanid = 1;
 	optional fixed64 event_gid = 2;
-	optional int32 display_location = 3 [(description) = "enum"];
+	optional int32 display_location = 3 [(description) = "enum; suggested type: EPartnerEventDisplayLocation"];
 	optional bool mark_shown = 4;
 	optional bool mark_read = 5;
 }
@@ -178,53 +277,96 @@ message CCommunity_MarkPartnerEventsForUser_Request_PartnerEventMarking {
 message CCommunity_MarkPartnerEventsForUser_Response {
 }
 
-message CCommunity_GetUserPartnerEventViewStatus_Response {
-	repeated .CCommunity_GetUserPartnerEventViewStatus_Response_PartnerEvent events = 1;
+message CProductImpressionsFromClient_Notification {
+	repeated .CProductImpressionsFromClient_Notification_Impression impressions = 1;
 }
 
-message CCommunity_GetUserPartnerEventViewStatus_Response_PartnerEvent {
-	optional fixed64 event_gid = 1;
-	optional uint32 last_shown_time = 2;
-	optional uint32 last_read_time = 3;
-	optional uint32 clan_account_id = 4;
+message CProductImpressionsFromClient_Notification_Impression {
+	optional int32 type = 1 [(description) = "enum; suggested type: EProductImpressionFromClientType"];
+	optional uint32 appid = 2;
+	optional uint32 num_impressions = 3;
 }
 
-message CWebRTCClient_InitiateWebRTCConnection_Request {
-	optional string sdp = 1;
+message CFriendsListCategory {
+	optional uint32 groupid = 1;
+	optional string name = 2;
+	repeated uint32 accountid_members = 3;
 }
 
-message CWebRTCClient_InitiateWebRTCConnection_Response {
-	optional string remote_description = 1;
+message CFriendsList_GetCategories_Request {
 }
 
-message CWebRTC_WebRTCSessionConnected_Notification {
-	optional uint32 ssrc = 1;
-	optional uint32 client_ip = 2;
-	optional uint32 client_port = 3;
-	optional uint32 server_ip = 4;
-	optional uint32 server_port = 5;
+message CFriendsList_GetCategories_Response {
+	repeated .CFriendsListCategory categories = 1;
 }
 
-message CWebRTC_WebRTCUpdateRemoteDescription_Notification {
-	optional string remote_description = 1;
-	optional uint64 remote_description_version = 2;
-	repeated .CWebRTC_WebRTCUpdateRemoteDescription_Notification_CSSRCToAccountIDMapping ssrcs_to_accountids = 3;
+message CFriendsListFavoriteEntry {
+	optional uint32 accountid = 1;
+	optional uint32 clanid = 2;
+	optional uint64 chat_group_id = 3;
 }
 
-message CWebRTC_WebRTCUpdateRemoteDescription_Notification_CSSRCToAccountIDMapping {
-	optional uint32 ssrc = 1;
-	optional uint32 accountid = 2;
+message CFriendsList_GetFavorites_Request {
 }
 
-message CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Request {
-	optional uint32 ip_webrtc_server = 1;
-	optional uint32 port_webrtc_server = 2;
-	optional uint32 ip_webrtc_session_client = 3;
-	optional uint32 port_webrtc_session_client = 4;
-	optional uint64 remote_description_version = 5;
+message CFriendsList_GetFavorites_Response {
+	repeated .CFriendsListFavoriteEntry favorites = 1;
 }
 
-message CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Response {
+message CFriendsList_SetFavorites_Request {
+	repeated .CFriendsListFavoriteEntry favorites = 1;
+}
+
+message CFriendsList_SetFavorites_Response {
+}
+
+message CFriendsList_FavoritesChanged_Notification {
+	repeated .CFriendsListFavoriteEntry favorites = 1;
+}
+
+message CFriendsList_GetFriendsList_Request {
+}
+
+message CFriendsList_GetFriendsList_Response {
+	optional .CMsgClientFriendsList friendslist = 1;
+}
+
+message CMsgClientUCMPublishedFileDeleted {
+	optional fixed64 published_file_id = 1;
+	optional uint32 app_id = 2;
+}
+
+message CMsgCREEnumeratePublishedFiles {
+	optional uint32 app_id = 1;
+	optional int32 query_type = 2;
+	optional uint32 start_index = 3;
+	optional uint32 days = 4;
+	optional uint32 count = 5;
+	repeated string tags = 6;
+	repeated string user_tags = 7;
+	optional uint32 matching_file_type = 8 [default = 13];
+}
+
+message CMsgCREEnumeratePublishedFilesResponse {
+	optional int32 eresult = 1 [default = 2];
+	repeated .CMsgCREEnumeratePublishedFilesResponse_PublishedFileId published_files = 2;
+	optional uint32 total_results = 3;
+}
+
+message CMsgCREEnumeratePublishedFilesResponse_PublishedFileId {
+	optional fixed64 published_file_id = 1;
+	optional int32 votes_for = 2;
+	optional int32 votes_against = 3;
+	optional int32 reports = 4;
+	optional float score = 5;
+}
+
+message CClan_RespondToClanInvite_Request {
+	optional fixed64 steamid = 1;
+	optional bool accept = 2;
+}
+
+message CClan_RespondToClanInvite_Response {
 }
 
 message CVoiceChat_RequestOneOnOneChat_Request {
@@ -317,6 +459,10 @@ message CVoiceChat_UploadClientVoiceChatLogs_Request {
 message CVoiceChat_UploadClientVoiceChatLogs_Response {
 }
 
+message CVoiceChat_LeaveVoiceChat_Request {
+	optional fixed64 voice_chatid = 1;
+}
+
 message CVoiceChat_LeaveVoiceChat_Response {
 }
 
@@ -338,421 +484,139 @@ message CVoiceChat_VoiceChatEnded_Notification {
 	optional uint64 chat_group_id = 5;
 }
 
-message CSteamTV_CreateBroadcastChannel_Response {
-	optional fixed64 broadcast_channel_id = 1;
-}
-
-message CSteamTV_GetBroadcastChannelID_Response {
-	optional fixed64 broadcast_channel_id = 1;
-	optional string unique_name = 2;
-	optional fixed64 steamid = 3;
-}
-
-message CSteamTV_SetBroadcastChannelProfile_Response {
-}
-
-message CSteamTV_GetBroadcastChannelProfile_Response {
-	optional string unique_name = 1;
-	optional fixed64 owner_steamid = 2;
-	optional string name = 3;
-	optional string language = 4;
-	optional string headline = 5;
-	optional string summary = 6;
-	optional string schedule = 7;
-	optional string rules = 8;
-	optional string panels = 9;
-	optional bool is_partnered = 10;
-}
-
-message CSteamTV_SetBroadcastChannelImage_Response {
-	optional string replace_image_hash = 1;
-}
-
-message CSteamTV_GetBroadcastChannelImages_Response {
-	repeated .CSteamTV_GetBroadcastChannelImages_Response_Images images = 1;
-}
-
-message CSteamTV_GetBroadcastChannelImages_Response_Images {
-	optional int32 image_type = 1 [(description) = "enum"];
-	optional string image_path = 2;
-	optional uint32 image_index = 3;
-}
-
-message CSteamTV_GetBroadcastChannelLinks_Response {
-	repeated .CSteamTV_GetBroadcastChannelLinks_Response_Links links = 1;
-}
-
-message CSteamTV_GetBroadcastChannelLinks_Response_Links {
-	optional uint32 link_index = 1;
-	optional string url = 2;
-	optional string link_description = 3;
-	optional uint32 left = 4;
-	optional uint32 top = 5;
-	optional uint32 width = 6;
-	optional uint32 height = 7;
-}
-
-message CSteamTV_SetBroadcastChannelLinkRegions_Request_Links {
-	optional uint32 link_index = 1;
-	optional string url = 2;
-	optional string link_description = 3;
-	optional uint32 left = 4;
-	optional uint32 top = 5;
-	optional uint32 width = 6;
-	optional uint32 height = 7;
-}
-
-message CSteamTV_SetBroadcastChannelLinkRegions_Response {
-}
-
-message CSteamTV_GetBroadcastChannelStatus_Response {
-	optional bool is_live = 1;
-	optional bool is_disabled = 2;
-	optional uint32 appid = 3;
-	optional uint64 viewers = 4;
-	optional uint64 views = 5;
-	optional fixed64 broadcaster_steamid = 6;
-	optional string thumbnail_url = 7;
-	optional uint64 followers = 8;
-	optional uint64 subscribers = 9;
-	optional string unique_name = 10;
-	optional uint64 broadcast_session_id = 11;
-}
-
-message GetBroadcastChannelEntry {
-	optional fixed64 broadcast_channel_id = 1;
-	optional string unique_name = 2;
-	optional string name = 3;
-	optional uint32 appid = 4;
-	optional uint64 viewers = 5;
-	optional uint64 views = 6;
-	optional string thumbnail_url = 7;
-	optional uint64 followers = 8;
-	optional string headline = 9;
-	optional string avatar_url = 10;
-	optional fixed64 broadcaster_steamid = 11;
-	optional uint64 subscribers = 12;
-	optional string background_url = 13;
-	optional bool is_featured = 14;
-	optional bool is_disabled = 15;
-	optional bool is_live = 16;
-	optional string language = 17;
-	optional uint32 reports = 18;
-	optional bool is_partnered = 19;
-}
-
-message CSteamTV_GetFollowedChannels_Response {
-	repeated .GetBroadcastChannelEntry results = 1;
-}
-
-message CSteamTV_GetSubscribedChannels_Response {
-	repeated .GetBroadcastChannelEntry results = 1;
-}
-
-message CSteamTV_FollowBroadcastChannel_Response {
-	optional bool is_followed = 1;
-}
-
-message CSteamTV_SubscribeBroadcastChannel_Response {
-	optional bool is_subscribed = 1;
-}
-
-message CSteamTV_ReportBroadcastChannel_Response {
-}
-
-message CSteamTV_GetBroadcastChannelInteraction_Response {
-	optional bool is_followed = 1;
-	optional bool is_subscribed = 2;
-}
-
-message CSteamTV_Game {
-	optional uint32 appid = 1;
-	optional string name = 2;
-	optional string image = 3;
-	optional uint64 viewers = 4;
-	repeated .GetBroadcastChannelEntry channels = 5;
-	optional string release_date = 6;
-	optional string developer = 7;
-	optional string publisher = 8;
-}
-
-message CSteamTV_GetGames_Response {
-	repeated .CSteamTV_Game results = 1;
-}
-
-message CSteamTV_GetChannels_Response {
-	repeated .GetBroadcastChannelEntry results = 1;
-}
-
-message CSteamTV_GetBroadcastChannelBroadcasters_Response {
-	repeated .CSteamTV_GetBroadcastChannelBroadcasters_Response_Broadcaster broadcasters = 1;
-}
-
-message CSteamTV_GetBroadcastChannelBroadcasters_Response_Broadcaster {
-	optional fixed64 steamid = 1;
-	optional string name = 2;
-	optional string rtmp_token = 3;
-}
-
-message CSteamTV_ChatBan {
-	optional fixed64 issuer_steamid = 1;
-	optional fixed64 chatter_steamid = 2;
-	optional string time_expires = 3;
-	optional bool permanent = 4;
-	optional string name = 5;
-}
-
-message CSteamTV_AddChatBan_Request {
-	optional fixed64 broadcast_channel_id = 1;
-	optional fixed64 chatter_steamid = 2;
-	optional uint32 duration = 3;
-	optional bool permanent = 4;
-	optional bool undo = 5;
-}
-
-message CSteamTV_AddChatBan_Response {
-}
-
-message CSteamTV_GetChatBans_Response {
-	repeated .CSteamTV_ChatBan results = 1;
-}
-
-message CSteamTV_AddChatModerator_Request {
-	optional fixed64 broadcast_channel_id = 1;
-	optional fixed64 moderator_steamid = 2;
-	optional bool undo = 3;
-}
-
-message CSteamTV_AddChatModerator_Response {
-}
-
-message CSteamTV_GetChatModerators_Request {
-	optional fixed64 broadcast_channel_id = 1;
-}
-
-message CSteamTV_ChatModerator {
-	optional fixed64 steamid = 1;
-	optional string name = 2;
-}
-
-message CSteamTV_GetChatModerators_Response {
-	repeated .CSteamTV_ChatModerator results = 1;
-}
-
-message CSteamTV_AddWordBan_Response {
-}
-
-message CSteamTV_GetWordBans_Response {
-	repeated string results = 1;
-}
-
-message CSteamTV_JoinChat_Request {
-	optional fixed64 broadcast_channel_id = 1;
-}
-
-message CSteamTV_JoinChat_Response {
-	optional fixed64 chat_id = 1;
-	optional string view_url_template = 2;
-	repeated uint64 flair_group_ids = 3;
-}
-
-message CSteamTV_Search_Response {
-	repeated .GetBroadcastChannelEntry results = 1;
-}
-
-message CSteamTV_GetSteamTVUserSettings_Response {
-	optional bool stream_live_email = 1;
-	optional bool stream_live_notification = 2;
-}
-
-message CSteamTV_SetSteamTVUserSettings_Response {
-}
-
-message CSteamTV_GetMyBroadcastChannels_Response {
-	repeated .GetBroadcastChannelEntry results = 1;
-}
-
-message CSteamTV_HomePageTemplate_Takeover {
-	repeated .GetBroadcastChannelEntry broadcasts = 1;
-}
-
-message CSteamTV_HomePageTemplate_SingleGame {
-	repeated .GetBroadcastChannelEntry broadcasts = 1;
-	optional uint32 appid = 2;
-	optional string title = 3;
-}
-
-message GameListEntry {
-	optional uint32 appid = 1;
-	optional string game_name = 2;
-	optional .GetBroadcastChannelEntry broadcast = 3;
-}
-
-message CSteamTV_HomePageTemplate_GameList {
-	repeated .GameListEntry entries = 1;
-	optional string title = 2;
-}
-
-message CSteamTV_HomePageTemplate_QuickExplore {
-	repeated .GetBroadcastChannelEntry broadcasts = 1;
-	optional string title = 2;
-}
-
-message CSteamTV_HomePageTemplate_ConveyorBelt {
-	repeated .GetBroadcastChannelEntry broadcasts = 1;
-	optional string title = 2;
-}
-
-message CSteamTV_HomePageTemplate_WatchParty {
-	optional .GetBroadcastChannelEntry broadcast = 1;
-	optional string title = 2;
-	optional uint64 chat_group_id = 3;
-}
-
-message CSteamTV_HomePageTemplate_Developer {
-	optional .GetBroadcastChannelEntry broadcast = 1;
-	optional string title = 2;
-}
-
-message CSteamTV_HomePageTemplate_Event {
-	optional string title = 1;
-}
-
-message CSteamTV_HomePageContentRow {
-	optional int32 template_type = 1 [(description) = "enum"];
-	optional .CSteamTV_HomePageTemplate_Takeover takeover = 2;
-	optional .CSteamTV_HomePageTemplate_SingleGame single_game = 3;
-	optional .CSteamTV_HomePageTemplate_GameList game_list = 4;
-	optional .CSteamTV_HomePageTemplate_QuickExplore quick_explore = 5;
-	optional .CSteamTV_HomePageTemplate_ConveyorBelt conveyor_belt = 6;
-	optional .CSteamTV_HomePageTemplate_WatchParty watch_party = 7;
-	optional .CSteamTV_HomePageTemplate_Developer developer = 8;
-	optional .CSteamTV_HomePageTemplate_Event event = 9;
-}
-
-message CSteamTV_GetHomePageContents_Response {
-	repeated .CSteamTV_HomePageContentRow rows = 1;
-}
-
-message CSteamTV_BroadcastClipInfo {
-	optional uint64 broadcast_clip_id = 1;
-	optional uint64 channel_id = 2;
-	optional uint32 app_id = 3;
-	optional fixed64 broadcaster_steamid = 4;
-	optional fixed64 creator_steamid = 5;
-	optional string video_description = 6;
-	optional uint32 live_time = 7;
-	optional uint32 length_ms = 8;
-	optional string thumbnail_path = 9;
-}
-
-message CSteamTV_GetBroadcastChannelClips_Response {
-	repeated .CSteamTV_BroadcastClipInfo clips = 1;
-	optional string thumbnail_host = 2;
-}
-
-message CFriendsListCategory {
-	optional uint32 groupid = 1;
-	optional string name = 2;
-	repeated uint32 accountid_members = 3;
+message CWebRTCClient_InitiateWebRTCConnection_Request {
+	optional string sdp = 1;
 }
 
-message CFriendsList_GetCategories_Request {
+message CWebRTCClient_InitiateWebRTCConnection_Response {
+	optional string remote_description = 1;
 }
 
-message CFriendsList_GetCategories_Response {
-	repeated .CFriendsListCategory categories = 1;
+message CWebRTC_WebRTCSessionConnected_Notification {
+	optional uint32 ssrc = 1;
+	optional uint32 client_ip = 2;
+	optional uint32 client_port = 3;
+	optional uint32 server_ip = 4;
+	optional uint32 server_port = 5;
 }
 
-message CFriendsListFavoriteEntry {
-	optional uint32 accountid = 1;
-	optional uint32 clanid = 2;
-	optional uint64 chat_group_id = 3;
+message CWebRTC_WebRTCUpdateRemoteDescription_Notification {
+	optional string remote_description = 1;
+	optional uint64 remote_description_version = 2;
+	repeated .CWebRTC_WebRTCUpdateRemoteDescription_Notification_CSSRCToAccountIDMapping ssrcs_to_accountids = 3;
 }
 
-message CFriendsList_GetFavorites_Request {
+message CWebRTC_WebRTCUpdateRemoteDescription_Notification_CSSRCToAccountIDMapping {
+	optional uint32 ssrc = 1;
+	optional uint32 accountid = 2;
 }
 
-message CFriendsList_GetFavorites_Response {
-	repeated .CFriendsListFavoriteEntry favorites = 1;
+message CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Request {
+	optional uint32 ip_webrtc_server = 1;
+	optional uint32 port_webrtc_server = 2;
+	optional uint32 ip_webrtc_session_client = 3;
+	optional uint32 port_webrtc_session_client = 4;
+	optional uint64 remote_description_version = 5;
 }
 
-message CFriendsList_SetFavorites_Request {
-	repeated .CFriendsListFavoriteEntry favorites = 1;
+message CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Response {
 }
 
-message CFriendsList_SetFavorites_Response {
+message CMobilePerAccount_GetSettings_Request {
 }
 
-message CFriendsList_FavoritesChanged_Notification {
-	repeated .CFriendsListFavoriteEntry favorites = 1;
+message CMobilePerAccount_GetSettings_Response {
+	optional bool has_settings = 4;
+	optional bool allow_sale_push = 2;
+	optional bool allow_wishlist_push = 3;
+	optional uint32 chat_notification_level = 5;
+	optional bool notify_direct_chat = 6;
+	optional bool notify_group_chat = 7;
+	optional bool allow_event_push = 8 [default = true];
 }
 
-message CFriendsList_GetFriendsList_Request {
+message CMobilePerAccount_SetSettings_Request {
+	optional bool allow_sale_push = 2;
+	optional bool allow_wishlist_push = 3;
+	optional uint32 chat_notification_level = 4;
+	optional bool notify_direct_chat = 5;
+	optional bool notify_group_chat = 6;
+	optional bool allow_event_push = 7 [default = true];
 }
 
-message CFriendsList_GetFriendsList_Response {
-	optional .CMsgClientFriendsList friendslist = 1;
+message CMobilePerAccount_SetSettings_Response {
 }
 
-message CClan_RespondToClanInvite_Request {
-	optional fixed64 steamid = 1;
-	optional bool accept = 2;
+message CMobileDevice_RegisterMobileDevice_Request {
+	optional string deviceid = 1;
+	optional string language = 2;
+	optional bool push_enabled = 3;
+	optional string app_version = 4;
+	optional string os_version = 5;
+	optional string device_model = 6;
+	optional string twofactor_device_identifier = 7;
+	optional int32 mobile_app = 8 [(description) = "enum; suggested type: EMobileApp"];
 }
 
-message CClan_RespondToClanInvite_Response {
+message CMobileDevice_RegisterMobileDevice_Response {
+	optional uint32 unique_deviceid = 2;
 }
 
-message CProductImpressionsFromClient_Notification {
-	repeated .CProductImpressionsFromClient_Notification_Impression impressions = 1;
+message CMobileDevice_DeregisterMobileDevice_Notification {
+	optional string deviceid = 1;
 }
 
-message CProductImpressionsFromClient_Notification_Impression {
-	optional int32 type = 1 [(description) = "enum"];
-	optional uint32 appid = 2;
-	optional uint32 num_impressions = 3;
+message UnknownProto {
 }
 
-message NotImplemented {
+service HelpRequestLogs {
+	rpc UploadUserApplicationLog (.CHelpRequestLogs_UploadUserApplicationLog_Request) returns (.CHelpRequestLogs_UploadUserApplicationLog_Response);
 }
 
 service Community {
 	rpc GetApps (.CCommunity_GetApps_Request) returns (.CCommunity_GetApps_Response);
 	rpc GetAppRichPresenceLocalization (.CCommunity_GetAppRichPresenceLocalization_Request) returns (.CCommunity_GetAppRichPresenceLocalization_Response);
-	rpc GetCommentThread (.NotImplemented) returns (.CCommunity_GetCommentThread_Response);
-	rpc PostCommentToThread (.NotImplemented) returns (.CCommunity_PostCommentToThread_Response);
-	rpc DeleteCommentFromThread (.NotImplemented) returns (.CCommunity_DeleteCommentFromThread_Response);
-	rpc RateCommentThread (.NotImplemented) returns (.CCommunity_RateCommentThread_Response);
-	rpc GetCommentThreadRatings (.NotImplemented) returns (.CCommunity_GetCommentThreadRatings_Response);
+	rpc GetCommentThread (.CCommunity_GetCommentThread_Request) returns (.CCommunity_GetCommentThread_Response);
+	rpc PostCommentToThread (.CCommunity_PostCommentToThread_Request) returns (.CCommunity_PostCommentToThread_Response);
+	rpc DeleteCommentFromThread (.CCommunity_DeleteCommentFromThread_Request) returns (.CCommunity_DeleteCommentFromThread_Response);
+	rpc RateCommentThread (.CCommunity_RateCommentThread_Request) returns (.CCommunity_RateCommentThread_Response);
+	rpc GetCommentThreadRatings (.CCommunity_GetCommentThreadRatings_Request) returns (.CCommunity_GetCommentThreadRatings_Response);
 	rpc RateClanAnnouncement (.CCommunity_RateClanAnnouncement_Request) returns (.CCommunity_RateClanAnnouncement_Response);
 	rpc GetClanAnnouncementVoteForUser (.CCommunity_GetClanAnnouncementVoteForUser_Request) returns (.CCommunity_GetClanAnnouncementVoteForUser_Response);
-	rpc GetAvatarHistory (.NotImplemented) returns (.CCommunity_GetAvatarHistory_Response);
-	rpc GetUserPartnerEventNews (.NotImplemented) returns (.CCommunity_GetUserPartnerEventNews_Response);
-	rpc GetBestEventsForUser (.NotImplemented) returns (.CCommunity_GetBestEventsForUser_Response);
+	rpc GetUserPartnerEventNews (.CCommunity_GetUserPartnerEventNews_Request) returns (.CCommunity_GetUserPartnerEventNews_Response);
+	rpc GetBestEventsForUser (.CCommunity_GetBestEventsForUser_Request) returns (.CCommunity_GetBestEventsForUser_Response);
 	rpc MarkPartnerEventsForUser (.CCommunity_MarkPartnerEventsForUser_Request) returns (.CCommunity_MarkPartnerEventsForUser_Response);
-	rpc GetUserPartnerEventViewStatus (.NotImplemented) returns (.CCommunity_GetUserPartnerEventViewStatus_Response);
-	rpc PartnerEventsShowMoreForApp (.NotImplemented) returns (.CCommunity_PartnerEventsShowMoreForApp_Response);
-	rpc PartnerEventsShowLessForApp (.NotImplemented) returns (.CCommunity_PartnerEventsShowLessForApp_Response);
-	rpc ClearUserPartnerEventsAppPriorities (.NotImplemented) returns (.CCommunity_ClearUserPartnerEventsAppPriorities_Response);
-	rpc GetUserPartnerEventsAppPriorities (.NotImplemented) returns (.CCommunity_GetUserPartnerEventsAppPriorities_Response);
-	rpc ClearSinglePartnerEventsAppPriority (.NotImplemented) returns (.CCommunity_ClearSinglePartnerEventsAppPriority_Response);
+	rpc PartnerEventsShowMoreForApp (.CCommunity_PartnerEventsShowMoreForApp_Request) returns (.CCommunity_PartnerEventsShowMoreForApp_Response);
+	rpc PartnerEventsShowLessForApp (.CCommunity_PartnerEventsShowLessForApp_Request) returns (.CCommunity_PartnerEventsShowLessForApp_Response);
+	rpc ClearUserPartnerEventsAppPriorities (.CCommunity_ClearUserPartnerEventsAppPriorities_Request) returns (.CCommunity_ClearUserPartnerEventsAppPriorities_Response);
+	rpc GetUserPartnerEventsAppPriorities (.CCommunity_GetUserPartnerEventsAppPriorities_Request) returns (.CCommunity_GetUserPartnerEventsAppPriorities_Response);
+	rpc ClearSinglePartnerEventsAppPriority (.CCommunity_ClearSinglePartnerEventsAppPriority_Request) returns (.CCommunity_ClearSinglePartnerEventsAppPriority_Response);
 }
 
-service WebRTCClient {
-	rpc InitiateWebRTCConnection (.CWebRTCClient_InitiateWebRTCConnection_Request) returns (.CWebRTCClient_InitiateWebRTCConnection_Response);
-	rpc AcknowledgeUpdatedRemoteDescription (.CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Request) returns (.CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Response);
+service ExperimentService {
+	rpc ReportProductImpressionsFromClient (.UnknownProto) returns (.NoResponse);
 }
 
-service WebRTCClientNotifications {
-	rpc NotifyWebRTCSessionConnected (.CWebRTC_WebRTCSessionConnected_Notification) returns (.NoResponse);
-	rpc NotifyWebRTCUpdateRemoteDescription (.CWebRTC_WebRTCUpdateRemoteDescription_Notification) returns (.NoResponse);
+service FriendsList {
+	rpc GetCategories (.CFriendsList_GetCategories_Request) returns (.CFriendsList_GetCategories_Response);
+	rpc GetFriendsList (.CFriendsList_GetFriendsList_Request) returns (.CFriendsList_GetFriendsList_Response);
+	rpc GetFavorites (.CFriendsList_GetFavorites_Request) returns (.CFriendsList_GetFavorites_Response);
+	rpc SetFavorites (.CFriendsList_SetFavorites_Request) returns (.CFriendsList_SetFavorites_Response);
+}
+
+service FriendsListClient {
+	rpc FavoritesChanged (.CFriendsList_FavoritesChanged_Notification) returns (.NoResponse);
+}
+
+service Clan {
+	rpc RespondToClanInvite (.CClan_RespondToClanInvite_Request) returns (.CClan_RespondToClanInvite_Response);
 }
 
 service VoiceChat {
 	rpc UpdateVoiceChatWebRTCData (.CVoiceChat_UpdateVoiceChatWebRTCData_Request) returns (.CVoiceChat_UpdateVoiceChatWebRTCData_Response);
 	rpc NotifyUserVoiceStatus (.CVoiceChat_UserVoiceStatus_Notification) returns (.NoResponse);
 	rpc UploadClientVoiceChatLogs (.CVoiceChat_UploadClientVoiceChatLogs_Request) returns (.CVoiceChat_UploadClientVoiceChatLogs_Response);
-	rpc LeaveVoiceChat (.NotImplemented) returns (.CVoiceChat_LeaveVoiceChat_Response);
+	rpc LeaveVoiceChat (.CVoiceChat_LeaveVoiceChat_Request) returns (.CVoiceChat_LeaveVoiceChat_Response);
 	rpc RequestOneOnOneChat (.CVoiceChat_RequestOneOnOneChat_Request) returns (.CVoiceChat_RequestOneOnOneChat_Response);
 	rpc AnswerOneOnOneChat (.CVoiceChat_AnswerOneOnOneChat_Request) returns (.CVoiceChat_AnswerOneOnOneChat_Response);
 	rpc EndOneOnOneChat (.CVoiceChat_EndOneOnOneChat_Request) returns (.CVoiceChat_EndOneOnOneChat_Response);
@@ -769,56 +633,23 @@ service VoiceChatClient {
 	rpc NotifyOneOnOneChatResponse (.CVoiceChat_OneOnOneChatRequestResponse_Notification) returns (.NoResponse);
 }
 
-service SteamTV {
-	rpc CreateBroadcastChannel (.NotImplemented) returns (.CSteamTV_CreateBroadcastChannel_Response);
-	rpc GetBroadcastChannelID (.NotImplemented) returns (.CSteamTV_GetBroadcastChannelID_Response);
-	rpc SetBroadcastChannelProfile (.NotImplemented) returns (.CSteamTV_SetBroadcastChannelProfile_Response);
-	rpc GetBroadcastChannelProfile (.NotImplemented) returns (.CSteamTV_GetBroadcastChannelProfile_Response);
-	rpc SetBroadcastChannelImage (.NotImplemented) returns (.CSteamTV_SetBroadcastChannelImage_Response);
-	rpc GetBroadcastChannelImages (.NotImplemented) returns (.CSteamTV_GetBroadcastChannelImages_Response);
-	rpc SetBroadcastChannelLinkRegions (.NotImplemented) returns (.CSteamTV_SetBroadcastChannelLinkRegions_Response);
-	rpc GetBroadcastChannelLinks (.NotImplemented) returns (.CSteamTV_GetBroadcastChannelLinks_Response);
-	rpc GetBroadcastChannelBroadcasters (.NotImplemented) returns (.CSteamTV_GetBroadcastChannelBroadcasters_Response);
-	rpc GetFollowedChannels (.NotImplemented) returns (.CSteamTV_GetFollowedChannels_Response);
-	rpc GetSubscribedChannels (.NotImplemented) returns (.CSteamTV_GetSubscribedChannels_Response);
-	rpc GetBroadcastChannelStatus (.NotImplemented) returns (.CSteamTV_GetBroadcastChannelStatus_Response);
-	rpc FollowBroadcastChannel (.NotImplemented) returns (.CSteamTV_FollowBroadcastChannel_Response);
-	rpc SubscribeBroadcastChannel (.NotImplemented) returns (.CSteamTV_SubscribeBroadcastChannel_Response);
-	rpc GetBroadcastChannelClips (.NotImplemented) returns (.CSteamTV_GetBroadcastChannelClips_Response);
-	rpc ReportBroadcastChannel (.NotImplemented) returns (.CSteamTV_ReportBroadcastChannel_Response);
-	rpc GetBroadcastChannelInteraction (.NotImplemented) returns (.CSteamTV_GetBroadcastChannelInteraction_Response);
-	rpc GetGames (.NotImplemented) returns (.CSteamTV_GetGames_Response);
-	rpc GetChannels (.NotImplemented) returns (.CSteamTV_GetChannels_Response);
-	rpc AddChatBan (.CSteamTV_AddChatBan_Request) returns (.CSteamTV_AddChatBan_Response);
-	rpc GetChatBans (.NotImplemented) returns (.CSteamTV_GetChatBans_Response);
-	rpc AddChatModerator (.CSteamTV_AddChatModerator_Request) returns (.CSteamTV_AddChatModerator_Response);
-	rpc GetChatModerators (.CSteamTV_GetChatModerators_Request) returns (.CSteamTV_GetChatModerators_Response);
-	rpc AddWordBan (.NotImplemented) returns (.CSteamTV_AddWordBan_Response);
-	rpc GetWordBans (.NotImplemented) returns (.CSteamTV_GetWordBans_Response);
-	rpc JoinChat (.CSteamTV_JoinChat_Request) returns (.CSteamTV_JoinChat_Response);
-	rpc Search (.NotImplemented) returns (.CSteamTV_Search_Response);
-	rpc GetSteamTVUserSettings (.NotImplemented) returns (.CSteamTV_GetSteamTVUserSettings_Response);
-	rpc SetSteamTVUserSettings (.NotImplemented) returns (.CSteamTV_SetSteamTVUserSettings_Response);
-	rpc GetMyBroadcastChannels (.NotImplemented) returns (.CSteamTV_GetMyBroadcastChannels_Response);
-	rpc GetHomePageContents (.NotImplemented) returns (.CSteamTV_GetHomePageContents_Response);
-}
-
-service FriendsList {
-	rpc GetCategories (.CFriendsList_GetCategories_Request) returns (.CFriendsList_GetCategories_Response);
-	rpc GetFriendsList (.CFriendsList_GetFriendsList_Request) returns (.CFriendsList_GetFriendsList_Response);
-	rpc GetFavorites (.CFriendsList_GetFavorites_Request) returns (.CFriendsList_GetFavorites_Response);
-	rpc SetFavorites (.CFriendsList_SetFavorites_Request) returns (.CFriendsList_SetFavorites_Response);
+service WebRTCClient {
+	rpc InitiateWebRTCConnection (.CWebRTCClient_InitiateWebRTCConnection_Request) returns (.CWebRTCClient_InitiateWebRTCConnection_Response);
+	rpc AcknowledgeUpdatedRemoteDescription (.CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Request) returns (.CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Response);
 }
 
-service FriendsListClient {
-	rpc FavoritesChanged (.CFriendsList_FavoritesChanged_Notification) returns (.NoResponse);
+service WebRTCClientNotifications {
+	rpc NotifyWebRTCSessionConnected (.CWebRTC_WebRTCSessionConnected_Notification) returns (.NoResponse);
+	rpc NotifyWebRTCUpdateRemoteDescription (.CWebRTC_WebRTCUpdateRemoteDescription_Notification) returns (.NoResponse);
 }
 
-service Clan {
-	rpc RespondToClanInvite (.CClan_RespondToClanInvite_Request) returns (.CClan_RespondToClanInvite_Response);
+service MobilePerAccount {
+	rpc GetSettings (.CMobilePerAccount_GetSettings_Request) returns (.CMobilePerAccount_GetSettings_Response);
+	rpc SetSettings (.CMobilePerAccount_SetSettings_Request) returns (.CMobilePerAccount_SetSettings_Response);
 }
 
-service ExperimentService {
-	rpc ReportProductImpressionsFromClient (.NotImplemented) returns (.NoResponse);
+service MobileDevice {
+	rpc RegisterMobileDevice (.CMobileDevice_RegisterMobileDevice_Request) returns (.CMobileDevice_RegisterMobileDevice_Response);
+	rpc DeregisterMobileDevice (.CMobileDevice_DeregisterMobileDevice_Notification) returns (.NoResponse);
 }
 
diff --git a/requirements.txt b/requirements.txt
index d5e0306..9bcd105 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -5,6 +5,7 @@ vdf>=3.3
 gevent>=1.3.0
 protobuf>=3.0.0
 gevent-eventemitter~=2.1
-enum34==1.1.2; python_version < '3.4'
 PyYAML==5.1
 cachetools>=3.0.0
+enum34==1.1.2; python_version < '3.4'
+win-inet-pton; python_version == '2.7' and sys_platform == 'win32'
diff --git a/setup.py b/setup.py
index 1c093d5..445d35c 100644
--- a/setup.py
+++ b/setup.py
@@ -3,7 +3,6 @@
 from setuptools import setup, find_packages
 from codecs import open
 from os import path
-import sys
 
 here = path.abspath(path.dirname(__file__))
 with open(path.join(here, 'README.rst'), encoding='utf-8') as f:
@@ -20,6 +19,8 @@ install_requires = [
     'requests>=2.9.1',
     'vdf>=3.3',
     'cachetools>=3.0.0',
+    "win-inet-pton; python_version == '2.7' and sys_platform == 'win32'",
+    "enum34==1.1.2; python_version < '3.4'",
 ]
 
 install_extras = {
@@ -30,9 +31,6 @@ install_extras = {
     ],
 }
 
-if sys.version_info < (3, 4):
-    install_requires.append('enum34>=1.0.4')
-
 setup(
     name='steam',
     version=__version__,
diff --git a/steam/client/__init__.py b/steam/client/__init__.py
index 1a21d21..aa83760 100644
--- a/steam/client/__init__.py
+++ b/steam/client/__init__.py
@@ -31,7 +31,7 @@ from steam.core.crypto import sha1_hash
 from steam.steamid import SteamID
 from steam.exceptions import SteamError
 from steam.client.builtins import BuiltinBase
-from steam.utils import ip_from_int, ip_to_int
+from steam.utils import ip4_from_int, ip4_to_int
 from steam.utils.proto import proto_fill_from_dict
 
 if six.PY2:
@@ -174,7 +174,7 @@ class SteamClient(CMClient, BuiltinBase):
             data = {
                 'cell_id': self.cm_servers.cell_id,
                 'last_updated': self.cm_servers.last_updated,
-                'servers': list(zip(map(ip_from_int, msg.body.cm_addresses), msg.body.cm_ports)),
+                'servers': list(zip(map(ip4_from_int, msg.body.cm_addresses), msg.body.cm_ports)),
             }
             try:
                 with open(filepath, 'wb') as f:
@@ -539,7 +539,7 @@ class SteamClient(CMClient, BuiltinBase):
         message.body.chat_mode = self.chat_mode
 
         if login_id is None:
-            message.body.obfuscated_private_ip.v4 = ip_to_int(self.connection.local_address) ^ 0xF00DBAAD
+            message.body.obfuscated_private_ip.v4 = ip4_to_int(self.connection.local_address) ^ 0xF00DBAAD
         else:
             message.body.obfuscated_private_ip.v4 = login_id
 
diff --git a/steam/client/builtins/apps.py b/steam/client/builtins/apps.py
index 68812ab..d6d8edc 100644
--- a/steam/client/builtins/apps.py
+++ b/steam/client/builtins/apps.py
@@ -3,7 +3,6 @@ import vdf
 from steam.enums import EResult, EServerType
 from steam.enums.emsg import EMsg
 from steam.core.msg import MsgProto
-from steam.utils import ip_from_int
 from steam.utils.proto import proto_fill_from_dict
 
 
@@ -108,7 +107,6 @@ class Apps(object):
 
         for app in apps:
                 app_info = message.body.apps.add()
-                app_info.only_public = False
 
                 if tokens:
                     app_info.access_token = tokens['apps'].get(app['appid'] if isinstance(app, dict) else app, 0)
diff --git a/steam/client/builtins/gameservers.py b/steam/client/builtins/gameservers.py
index 190442a..8005c93 100644
--- a/steam/client/builtins/gameservers.py
+++ b/steam/client/builtins/gameservers.py
@@ -38,7 +38,7 @@ from steam.steamid import SteamID
 from steam.core.msg import MsgProto
 from steam.enums import EResult
 from steam.enums.emsg import EMsg
-from steam.utils import ip_to_int, ip_from_int
+from steam.utils import ip4_to_int, ip4_from_int, ip6_from_bytes
 from steam.utils.proto import proto_to_dict
 from steam.exceptions import SteamError
 
@@ -81,13 +81,13 @@ class SteamGameServers(object):
 
         .. code:: python
 
-            [{'auth_players': 0, 'server_ip': '1.2.3.4', 'server_port': 27015},
-             {'auth_players': 6, 'server_ip': '1.2.3.4', 'server_port': 27016},
+            [{'auth_players': 0, 'server_ip': '1.2.3.4', 'query_port': 27015},
+             {'auth_players': 6, 'server_ip': '1:2:3:4::5', 'query_port': 27016},
              ...
             ]
         """
         if 'geo_location_ip' in kw:
-            kw['geo_location_ip'] = ip_to_int(kw['geo_location_ip'])
+            kw['geo_location_ip'] = ip4_to_int(kw['geo_location_ip'])
 
         kw['filter_text'] = filter_text
         kw['max_servers'] = max_servers
@@ -103,7 +103,12 @@ class SteamGameServers(object):
         resp = proto_to_dict(resp)
 
         for server in resp['servers']:
-            server['server_ip'] = ip_from_int(server['server_ip'])
+            server.pop('deprecated_server_ip', None)  # no point returning this
+
+            if 'v4' in server['server_ip']:
+                server['server_ip'] = ip4_from_int(server['server_ip']['v4'])
+            else:
+                server['server_ip'] = ip6_from_bytes(server['server_ip']['v6'])
 
         return resp['servers']
 
diff --git a/steam/core/cm.py b/steam/core/cm.py
index a92bac9..07753c1 100644
--- a/steam/core/cm.py
+++ b/steam/core/cm.py
@@ -19,7 +19,7 @@ from steam.core import crypto
 from steam.core.connection import TCPConnection
 from steam.core.msg import Msg, MsgProto
 from eventemitter import EventEmitter
-from steam.utils import ip_from_int
+from steam.utils import ip4_from_int
 from steam.utils.proto import is_proto, clear_proto_bit
 
 
@@ -392,7 +392,7 @@ class CMClient(EventEmitter):
     def _handle_cm_list(self, msg):
         self._LOG.debug("Updating CM list")
 
-        new_servers = zip(map(ip_from_int, msg.body.cm_addresses), msg.body.cm_ports)
+        new_servers = zip(map(ip4_from_int, msg.body.cm_addresses), msg.body.cm_ports)
         self.cm_servers.clear()
         self.cm_servers.merge_list(new_servers)
         self.cm_servers.cell_id = self.cell_id
diff --git a/steam/protobufs/enums_pb2.py b/steam/protobufs/enums_pb2.py
new file mode 100644
index 0000000..fa0b125
--- /dev/null
+++ b/steam/protobufs/enums_pb2.py
@@ -0,0 +1,522 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: enums.proto
+
+import sys
+_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
+from google.protobuf.internal import enum_type_wrapper
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+import steam.protobufs.steammessages_base_pb2 as steammessages__base__pb2
+
+
+DESCRIPTOR = _descriptor.FileDescriptor(
+  name='enums.proto',
+  package='',
+  syntax='proto2',
+  serialized_options=_b('H\001\220\001\001\200\265\030\001'),
+  serialized_pb=_b('\n\x0b\x65nums.proto\x1a\x18steammessages_base.proto*\x94\t\n\x17\x45PublishedFileQueryType\x12)\n%k_PublishedFileQueryType_RankedByVote\x10\x00\x12\x34\n0k_PublishedFileQueryType_RankedByPublicationDate\x10\x01\x12\x42\n>k_PublishedFileQueryType_AcceptedForGameRankedByAcceptanceDate\x10\x02\x12*\n&k_PublishedFileQueryType_RankedByTrend\x10\x03\x12\x46\nBk_PublishedFileQueryType_FavoritedByFriendsRankedByPublicationDate\x10\x04\x12\x44\n@k_PublishedFileQueryType_CreatedByFriendsRankedByPublicationDate\x10\x05\x12\x35\n1k_PublishedFileQueryType_RankedByNumTimesReported\x10\x06\x12J\nFk_PublishedFileQueryType_CreatedByFollowedUsersRankedByPublicationDate\x10\x07\x12(\n$k_PublishedFileQueryType_NotYetRated\x10\x08\x12=\n9k_PublishedFileQueryType_RankedByTotalUniqueSubscriptions\x10\t\x12\x32\n.k_PublishedFileQueryType_RankedByTotalVotesAsc\x10\n\x12,\n(k_PublishedFileQueryType_RankedByVotesUp\x10\x0b\x12/\n+k_PublishedFileQueryType_RankedByTextSearch\x10\x0c\x12\x32\n.k_PublishedFileQueryType_RankedByPlaytimeTrend\x10\r\x12\x32\n.k_PublishedFileQueryType_RankedByTotalPlaytime\x10\x0e\x12\x39\n5k_PublishedFileQueryType_RankedByAveragePlaytimeTrend\x10\x0f\x12<\n8k_PublishedFileQueryType_RankedByLifetimeAveragePlaytime\x10\x10\x12:\n6k_PublishedFileQueryType_RankedByPlaytimeSessionsTrend\x10\x11\x12=\n9k_PublishedFileQueryType_RankedByLifetimePlaytimeSessions\x10\x12\x12?\n;k_PublishedFileQueryType_RankedByInappropriateContentRating\x10\x13*\xbc\x01\n#EPublishedFileInappropriateProvider\x12\x31\n-k_EPublishedFileInappropriateProvider_Invalid\x10\x00\x12\x30\n,k_EPublishedFileInappropriateProvider_Google\x10\x01\x12\x30\n,k_EPublishedFileInappropriateProvider_Amazon\x10\x02*\xd5\x02\n!EPublishedFileInappropriateResult\x12\x32\n.k_EPublishedFileInappropriateResult_NotScanned\x10\x00\x12\x34\n0k_EPublishedFileInappropriateResult_VeryUnlikely\x10\x01\x12\x30\n,k_EPublishedFileInappropriateResult_Unlikely\x10\x1e\x12\x30\n,k_EPublishedFileInappropriateResult_Possible\x10\x32\x12.\n*k_EPublishedFileInappropriateResult_Likely\x10K\x12\x32\n.k_EPublishedFileInappropriateResult_VeryLikely\x10\x64*\xb1\x03\n\x11\x45PersonaStateFlag\x12\'\n#k_EPersonaStateFlag_HasRichPresence\x10\x01\x12&\n\"k_EPersonaStateFlag_InJoinableGame\x10\x02\x12\x1e\n\x1ak_EPersonaStateFlag_Golden\x10\x04\x12*\n&k_EPersonaStateFlag_RemotePlayTogether\x10\x08\x12&\n!k_EPersonaStateFlag_ClientTypeWeb\x10\x80\x02\x12)\n$k_EPersonaStateFlag_ClientTypeMobile\x10\x80\x04\x12*\n%k_EPersonaStateFlag_ClientTypeTenfoot\x10\x80\x08\x12%\n k_EPersonaStateFlag_ClientTypeVR\x10\x80\x10\x12*\n%k_EPersonaStateFlag_LaunchTypeGamepad\x10\x80 \x12-\n(k_EPersonaStateFlag_LaunchTypeCompatTool\x10\x80@*\xa7\x01\n\x15\x45\x43ontentCheckProvider\x12#\n\x1fk_EContentCheckProvider_Invalid\x10\x00\x12\"\n\x1ek_EContentCheckProvider_Google\x10\x01\x12\"\n\x1ek_EContentCheckProvider_Amazon\x10\x02\x12!\n\x1dk_EContentCheckProvider_Local\x10\x03*\xd8\x02\n\x16\x45\x42\x61nContentCheckResult\x12\'\n#k_EBanContentCheckResult_NotScanned\x10\x00\x12\"\n\x1ek_EBanContentCheckResult_Reset\x10\x01\x12*\n&k_EBanContentCheckResult_NeedsChecking\x10\x02\x12)\n%k_EBanContentCheckResult_VeryUnlikely\x10\x05\x12%\n!k_EBanContentCheckResult_Unlikely\x10\x1e\x12%\n!k_EBanContentCheckResult_Possible\x10\x32\x12#\n\x1fk_EBanContentCheckResult_Likely\x10K\x12\'\n#k_EBanContentCheckResult_VeryLikely\x10\x64*\xec\x08\n\x19\x45ProfileCustomizationType\x12&\n\"k_EProfileCustomizationTypeInvalid\x10\x00\x12\x36\n2k_EProfileCustomizationTypeRareAchievementShowcase\x10\x01\x12,\n(k_EProfileCustomizationTypeGameCollector\x10\x02\x12+\n\'k_EProfileCustomizationTypeItemShowcase\x10\x03\x12,\n(k_EProfileCustomizationTypeTradeShowcase\x10\x04\x12%\n!k_EProfileCustomizationTypeBadges\x10\x05\x12+\n\'k_EProfileCustomizationTypeFavoriteGame\x10\x06\x12\x31\n-k_EProfileCustomizationTypeScreenshotShowcase\x10\x07\x12)\n%k_EProfileCustomizationTypeCustomText\x10\x08\x12,\n(k_EProfileCustomizationTypeFavoriteGroup\x10\t\x12-\n)k_EProfileCustomizationTypeRecommendation\x10\n\x12+\n\'k_EProfileCustomizationTypeWorkshopItem\x10\x0b\x12)\n%k_EProfileCustomizationTypeMyWorkshop\x10\x0c\x12.\n*k_EProfileCustomizationTypeArtworkShowcase\x10\r\x12,\n(k_EProfileCustomizationTypeVideoShowcase\x10\x0e\x12%\n!k_EProfileCustomizationTypeGuides\x10\x0f\x12\'\n#k_EProfileCustomizationTypeMyGuides\x10\x10\x12+\n\'k_EProfileCustomizationTypeAchievements\x10\x11\x12)\n%k_EProfileCustomizationTypeGreenlight\x10\x12\x12+\n\'k_EProfileCustomizationTypeMyGreenlight\x10\x13\x12%\n!k_EProfileCustomizationTypeSalien\x10\x14\x12\x35\n1k_EProfileCustomizationTypeLoyaltyRewardReactions\x10\x15\x12\x34\n0k_EProfileCustomizationTypeSingleArtworkShowcase\x10\x16\x12\x38\n4k_EProfileCustomizationTypeAchievementsCompletionist\x10\x17\x42\tH\x01\x90\x01\x01\x80\xb5\x18\x01')
+  ,
+  dependencies=[steammessages__base__pb2.DESCRIPTOR,])
+
+_EPUBLISHEDFILEQUERYTYPE = _descriptor.EnumDescriptor(
+  name='EPublishedFileQueryType',
+  full_name='EPublishedFileQueryType',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='k_PublishedFileQueryType_RankedByVote', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_PublishedFileQueryType_RankedByPublicationDate', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_PublishedFileQueryType_AcceptedForGameRankedByAcceptanceDate', index=2, number=2,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_PublishedFileQueryType_RankedByTrend', index=3, number=3,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_PublishedFileQueryType_FavoritedByFriendsRankedByPublicationDate', index=4, number=4,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_PublishedFileQueryType_CreatedByFriendsRankedByPublicationDate', index=5, number=5,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_PublishedFileQueryType_RankedByNumTimesReported', index=6, number=6,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_PublishedFileQueryType_CreatedByFollowedUsersRankedByPublicationDate', index=7, number=7,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_PublishedFileQueryType_NotYetRated', index=8, number=8,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_PublishedFileQueryType_RankedByTotalUniqueSubscriptions', index=9, number=9,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_PublishedFileQueryType_RankedByTotalVotesAsc', index=10, number=10,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_PublishedFileQueryType_RankedByVotesUp', index=11, number=11,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_PublishedFileQueryType_RankedByTextSearch', index=12, number=12,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_PublishedFileQueryType_RankedByPlaytimeTrend', index=13, number=13,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_PublishedFileQueryType_RankedByTotalPlaytime', index=14, number=14,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_PublishedFileQueryType_RankedByAveragePlaytimeTrend', index=15, number=15,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_PublishedFileQueryType_RankedByLifetimeAveragePlaytime', index=16, number=16,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_PublishedFileQueryType_RankedByPlaytimeSessionsTrend', index=17, number=17,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_PublishedFileQueryType_RankedByLifetimePlaytimeSessions', index=18, number=18,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_PublishedFileQueryType_RankedByInappropriateContentRating', index=19, number=19,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=42,
+  serialized_end=1214,
+)
+_sym_db.RegisterEnumDescriptor(_EPUBLISHEDFILEQUERYTYPE)
+
+EPublishedFileQueryType = enum_type_wrapper.EnumTypeWrapper(_EPUBLISHEDFILEQUERYTYPE)
+_EPUBLISHEDFILEINAPPROPRIATEPROVIDER = _descriptor.EnumDescriptor(
+  name='EPublishedFileInappropriateProvider',
+  full_name='EPublishedFileInappropriateProvider',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='k_EPublishedFileInappropriateProvider_Invalid', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EPublishedFileInappropriateProvider_Google', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EPublishedFileInappropriateProvider_Amazon', index=2, number=2,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=1217,
+  serialized_end=1405,
+)
+_sym_db.RegisterEnumDescriptor(_EPUBLISHEDFILEINAPPROPRIATEPROVIDER)
+
+EPublishedFileInappropriateProvider = enum_type_wrapper.EnumTypeWrapper(_EPUBLISHEDFILEINAPPROPRIATEPROVIDER)
+_EPUBLISHEDFILEINAPPROPRIATERESULT = _descriptor.EnumDescriptor(
+  name='EPublishedFileInappropriateResult',
+  full_name='EPublishedFileInappropriateResult',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='k_EPublishedFileInappropriateResult_NotScanned', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EPublishedFileInappropriateResult_VeryUnlikely', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EPublishedFileInappropriateResult_Unlikely', index=2, number=30,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EPublishedFileInappropriateResult_Possible', index=3, number=50,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EPublishedFileInappropriateResult_Likely', index=4, number=75,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EPublishedFileInappropriateResult_VeryLikely', index=5, number=100,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=1408,
+  serialized_end=1749,
+)
+_sym_db.RegisterEnumDescriptor(_EPUBLISHEDFILEINAPPROPRIATERESULT)
+
+EPublishedFileInappropriateResult = enum_type_wrapper.EnumTypeWrapper(_EPUBLISHEDFILEINAPPROPRIATERESULT)
+_EPERSONASTATEFLAG = _descriptor.EnumDescriptor(
+  name='EPersonaStateFlag',
+  full_name='EPersonaStateFlag',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='k_EPersonaStateFlag_HasRichPresence', index=0, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EPersonaStateFlag_InJoinableGame', index=1, number=2,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EPersonaStateFlag_Golden', index=2, number=4,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EPersonaStateFlag_RemotePlayTogether', index=3, number=8,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EPersonaStateFlag_ClientTypeWeb', index=4, number=256,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EPersonaStateFlag_ClientTypeMobile', index=5, number=512,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EPersonaStateFlag_ClientTypeTenfoot', index=6, number=1024,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EPersonaStateFlag_ClientTypeVR', index=7, number=2048,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EPersonaStateFlag_LaunchTypeGamepad', index=8, number=4096,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EPersonaStateFlag_LaunchTypeCompatTool', index=9, number=8192,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=1752,
+  serialized_end=2185,
+)
+_sym_db.RegisterEnumDescriptor(_EPERSONASTATEFLAG)
+
+EPersonaStateFlag = enum_type_wrapper.EnumTypeWrapper(_EPERSONASTATEFLAG)
+_ECONTENTCHECKPROVIDER = _descriptor.EnumDescriptor(
+  name='EContentCheckProvider',
+  full_name='EContentCheckProvider',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='k_EContentCheckProvider_Invalid', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EContentCheckProvider_Google', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EContentCheckProvider_Amazon', index=2, number=2,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EContentCheckProvider_Local', index=3, number=3,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=2188,
+  serialized_end=2355,
+)
+_sym_db.RegisterEnumDescriptor(_ECONTENTCHECKPROVIDER)
+
+EContentCheckProvider = enum_type_wrapper.EnumTypeWrapper(_ECONTENTCHECKPROVIDER)
+_EBANCONTENTCHECKRESULT = _descriptor.EnumDescriptor(
+  name='EBanContentCheckResult',
+  full_name='EBanContentCheckResult',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='k_EBanContentCheckResult_NotScanned', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EBanContentCheckResult_Reset', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EBanContentCheckResult_NeedsChecking', index=2, number=2,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EBanContentCheckResult_VeryUnlikely', index=3, number=5,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EBanContentCheckResult_Unlikely', index=4, number=30,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EBanContentCheckResult_Possible', index=5, number=50,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EBanContentCheckResult_Likely', index=6, number=75,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EBanContentCheckResult_VeryLikely', index=7, number=100,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=2358,
+  serialized_end=2702,
+)
+_sym_db.RegisterEnumDescriptor(_EBANCONTENTCHECKRESULT)
+
+EBanContentCheckResult = enum_type_wrapper.EnumTypeWrapper(_EBANCONTENTCHECKRESULT)
+_EPROFILECUSTOMIZATIONTYPE = _descriptor.EnumDescriptor(
+  name='EProfileCustomizationType',
+  full_name='EProfileCustomizationType',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='k_EProfileCustomizationTypeInvalid', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EProfileCustomizationTypeRareAchievementShowcase', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EProfileCustomizationTypeGameCollector', index=2, number=2,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EProfileCustomizationTypeItemShowcase', index=3, number=3,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EProfileCustomizationTypeTradeShowcase', index=4, number=4,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EProfileCustomizationTypeBadges', index=5, number=5,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EProfileCustomizationTypeFavoriteGame', index=6, number=6,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EProfileCustomizationTypeScreenshotShowcase', index=7, number=7,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EProfileCustomizationTypeCustomText', index=8, number=8,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EProfileCustomizationTypeFavoriteGroup', index=9, number=9,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EProfileCustomizationTypeRecommendation', index=10, number=10,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EProfileCustomizationTypeWorkshopItem', index=11, number=11,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EProfileCustomizationTypeMyWorkshop', index=12, number=12,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EProfileCustomizationTypeArtworkShowcase', index=13, number=13,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EProfileCustomizationTypeVideoShowcase', index=14, number=14,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EProfileCustomizationTypeGuides', index=15, number=15,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EProfileCustomizationTypeMyGuides', index=16, number=16,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EProfileCustomizationTypeAchievements', index=17, number=17,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EProfileCustomizationTypeGreenlight', index=18, number=18,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EProfileCustomizationTypeMyGreenlight', index=19, number=19,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EProfileCustomizationTypeSalien', index=20, number=20,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EProfileCustomizationTypeLoyaltyRewardReactions', index=21, number=21,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EProfileCustomizationTypeSingleArtworkShowcase', index=22, number=22,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EProfileCustomizationTypeAchievementsCompletionist', index=23, number=23,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=2705,
+  serialized_end=3837,
+)
+_sym_db.RegisterEnumDescriptor(_EPROFILECUSTOMIZATIONTYPE)
+
+EProfileCustomizationType = enum_type_wrapper.EnumTypeWrapper(_EPROFILECUSTOMIZATIONTYPE)
+k_PublishedFileQueryType_RankedByVote = 0
+k_PublishedFileQueryType_RankedByPublicationDate = 1
+k_PublishedFileQueryType_AcceptedForGameRankedByAcceptanceDate = 2
+k_PublishedFileQueryType_RankedByTrend = 3
+k_PublishedFileQueryType_FavoritedByFriendsRankedByPublicationDate = 4
+k_PublishedFileQueryType_CreatedByFriendsRankedByPublicationDate = 5
+k_PublishedFileQueryType_RankedByNumTimesReported = 6
+k_PublishedFileQueryType_CreatedByFollowedUsersRankedByPublicationDate = 7
+k_PublishedFileQueryType_NotYetRated = 8
+k_PublishedFileQueryType_RankedByTotalUniqueSubscriptions = 9
+k_PublishedFileQueryType_RankedByTotalVotesAsc = 10
+k_PublishedFileQueryType_RankedByVotesUp = 11
+k_PublishedFileQueryType_RankedByTextSearch = 12
+k_PublishedFileQueryType_RankedByPlaytimeTrend = 13
+k_PublishedFileQueryType_RankedByTotalPlaytime = 14
+k_PublishedFileQueryType_RankedByAveragePlaytimeTrend = 15
+k_PublishedFileQueryType_RankedByLifetimeAveragePlaytime = 16
+k_PublishedFileQueryType_RankedByPlaytimeSessionsTrend = 17
+k_PublishedFileQueryType_RankedByLifetimePlaytimeSessions = 18
+k_PublishedFileQueryType_RankedByInappropriateContentRating = 19
+k_EPublishedFileInappropriateProvider_Invalid = 0
+k_EPublishedFileInappropriateProvider_Google = 1
+k_EPublishedFileInappropriateProvider_Amazon = 2
+k_EPublishedFileInappropriateResult_NotScanned = 0
+k_EPublishedFileInappropriateResult_VeryUnlikely = 1
+k_EPublishedFileInappropriateResult_Unlikely = 30
+k_EPublishedFileInappropriateResult_Possible = 50
+k_EPublishedFileInappropriateResult_Likely = 75
+k_EPublishedFileInappropriateResult_VeryLikely = 100
+k_EPersonaStateFlag_HasRichPresence = 1
+k_EPersonaStateFlag_InJoinableGame = 2
+k_EPersonaStateFlag_Golden = 4
+k_EPersonaStateFlag_RemotePlayTogether = 8
+k_EPersonaStateFlag_ClientTypeWeb = 256
+k_EPersonaStateFlag_ClientTypeMobile = 512
+k_EPersonaStateFlag_ClientTypeTenfoot = 1024
+k_EPersonaStateFlag_ClientTypeVR = 2048
+k_EPersonaStateFlag_LaunchTypeGamepad = 4096
+k_EPersonaStateFlag_LaunchTypeCompatTool = 8192
+k_EContentCheckProvider_Invalid = 0
+k_EContentCheckProvider_Google = 1
+k_EContentCheckProvider_Amazon = 2
+k_EContentCheckProvider_Local = 3
+k_EBanContentCheckResult_NotScanned = 0
+k_EBanContentCheckResult_Reset = 1
+k_EBanContentCheckResult_NeedsChecking = 2
+k_EBanContentCheckResult_VeryUnlikely = 5
+k_EBanContentCheckResult_Unlikely = 30
+k_EBanContentCheckResult_Possible = 50
+k_EBanContentCheckResult_Likely = 75
+k_EBanContentCheckResult_VeryLikely = 100
+k_EProfileCustomizationTypeInvalid = 0
+k_EProfileCustomizationTypeRareAchievementShowcase = 1
+k_EProfileCustomizationTypeGameCollector = 2
+k_EProfileCustomizationTypeItemShowcase = 3
+k_EProfileCustomizationTypeTradeShowcase = 4
+k_EProfileCustomizationTypeBadges = 5
+k_EProfileCustomizationTypeFavoriteGame = 6
+k_EProfileCustomizationTypeScreenshotShowcase = 7
+k_EProfileCustomizationTypeCustomText = 8
+k_EProfileCustomizationTypeFavoriteGroup = 9
+k_EProfileCustomizationTypeRecommendation = 10
+k_EProfileCustomizationTypeWorkshopItem = 11
+k_EProfileCustomizationTypeMyWorkshop = 12
+k_EProfileCustomizationTypeArtworkShowcase = 13
+k_EProfileCustomizationTypeVideoShowcase = 14
+k_EProfileCustomizationTypeGuides = 15
+k_EProfileCustomizationTypeMyGuides = 16
+k_EProfileCustomizationTypeAchievements = 17
+k_EProfileCustomizationTypeGreenlight = 18
+k_EProfileCustomizationTypeMyGreenlight = 19
+k_EProfileCustomizationTypeSalien = 20
+k_EProfileCustomizationTypeLoyaltyRewardReactions = 21
+k_EProfileCustomizationTypeSingleArtworkShowcase = 22
+k_EProfileCustomizationTypeAchievementsCompletionist = 23
+
+
+DESCRIPTOR.enum_types_by_name['EPublishedFileQueryType'] = _EPUBLISHEDFILEQUERYTYPE
+DESCRIPTOR.enum_types_by_name['EPublishedFileInappropriateProvider'] = _EPUBLISHEDFILEINAPPROPRIATEPROVIDER
+DESCRIPTOR.enum_types_by_name['EPublishedFileInappropriateResult'] = _EPUBLISHEDFILEINAPPROPRIATERESULT
+DESCRIPTOR.enum_types_by_name['EPersonaStateFlag'] = _EPERSONASTATEFLAG
+DESCRIPTOR.enum_types_by_name['EContentCheckProvider'] = _ECONTENTCHECKPROVIDER
+DESCRIPTOR.enum_types_by_name['EBanContentCheckResult'] = _EBANCONTENTCHECKRESULT
+DESCRIPTOR.enum_types_by_name['EProfileCustomizationType'] = _EPROFILECUSTOMIZATIONTYPE
+_sym_db.RegisterFileDescriptor(DESCRIPTOR)
+
+
+DESCRIPTOR._options = None
+# @@protoc_insertion_point(module_scope)
diff --git a/steam/protobufs/steammessages_base_pb2.py b/steam/protobufs/steammessages_base_pb2.py
index df54fb5..329a2bb 100644
--- a/steam/protobufs/steammessages_base_pb2.py
+++ b/steam/protobufs/steammessages_base_pb2.py
@@ -22,7 +22,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
   package='',
   syntax='proto2',
   serialized_options=_b('H\001\220\001\001\200\265\030\001'),
-  serialized_pb=_b('\n\x18steammessages_base.proto\x1a google/protobuf/descriptor.proto\"1\n\rCMsgIPAddress\x12\x0c\n\x02v4\x18\x01 \x01(\x07H\x00\x12\x0c\n\x02v6\x18\x02 \x01(\x0cH\x00\x42\x04\n\x02ip\"R\n\x13\x43MsgIPAddressBucket\x12+\n\x13original_ip_address\x18\x01 \x01(\x0b\x32\x0e.CMsgIPAddress\x12\x0e\n\x06\x62ucket\x18\x02 \x01(\x06\"\xa1\x05\n\x12\x43MsgProtoBufHeader\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x18\n\x10\x63lient_sessionid\x18\x02 \x01(\x05\x12\x15\n\rrouting_appid\x18\x03 \x01(\r\x12*\n\x0cjobid_source\x18\n \x01(\x06:\x14\x31\x38\x34\x34\x36\x37\x34\x34\x30\x37\x33\x37\x30\x39\x35\x35\x31\x36\x31\x35\x12*\n\x0cjobid_target\x18\x0b \x01(\x06:\x14\x31\x38\x34\x34\x36\x37\x34\x34\x30\x37\x33\x37\x30\x39\x35\x35\x31\x36\x31\x35\x12\x17\n\x0ftarget_job_name\x18\x0c \x01(\t\x12\x0f\n\x07seq_num\x18\x18 \x01(\x05\x12\x12\n\x07\x65result\x18\r \x01(\x05:\x01\x32\x12\x15\n\rerror_message\x18\x0e \x01(\t\x12\x1a\n\x12\x61uth_account_flags\x18\x10 \x01(\r\x12\x14\n\x0ctoken_source\x18\x16 \x01(\r\x12\x1b\n\x13\x61\x64min_spoofing_user\x18\x17 \x01(\x08\x12\x1a\n\x0ftransport_error\x18\x11 \x01(\x05:\x01\x31\x12\'\n\tmessageid\x18\x12 \x01(\x04:\x14\x31\x38\x34\x34\x36\x37\x34\x34\x30\x37\x33\x37\x30\x39\x35\x35\x31\x36\x31\x35\x12\x1a\n\x12publisher_group_id\x18\x13 \x01(\r\x12\r\n\x05sysid\x18\x14 \x01(\r\x12\x11\n\ttrace_tag\x18\x15 \x01(\x04\x12\x15\n\rwebapi_key_id\x18\x19 \x01(\r\x12\x1f\n\x17is_from_external_source\x18\x1a \x01(\x08\x12\x18\n\x10\x66orward_to_sysid\x18\x1b \x03(\r\x12\x10\n\x08\x63m_sysid\x18\x1c \x01(\r\x12\x10\n\x08wg_token\x18\x1e \x01(\t\x12\x18\n\rlauncher_type\x18\x1f \x01(\r:\x01\x30\x12\x10\n\x05realm\x18  \x01(\r:\x01\x30\x12\x0c\n\x02ip\x18\x0f \x01(\rH\x00\x12\x0f\n\x05ip_v6\x18\x1d \x01(\x0cH\x00\x42\t\n\x07ip_addr\"8\n\tCMsgMulti\x12\x15\n\rsize_unzipped\x18\x01 \x01(\r\x12\x14\n\x0cmessage_body\x18\x02 \x01(\x0c\"+\n\x13\x43MsgProtobufWrapped\x12\x14\n\x0cmessage_body\x18\x01 \x01(\x0c\"\x8f\x01\n\x0e\x43MsgAuthTicket\x12\x0e\n\x06\x65state\x18\x01 \x01(\r\x12\x12\n\x07\x65result\x18\x02 \x01(\r:\x01\x32\x12\x0f\n\x07steamid\x18\x03 \x01(\x06\x12\x0e\n\x06gameid\x18\x04 \x01(\x06\x12\x14\n\x0ch_steam_pipe\x18\x05 \x01(\r\x12\x12\n\nticket_crc\x18\x06 \x01(\r\x12\x0e\n\x06ticket\x18\x07 \x01(\x0c\"\xf6\x01\n\x14\x43\x43\x44\x44\x42\x41ppDetailCommon\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0c\n\x04icon\x18\x03 \x01(\t\x12\x0c\n\x04logo\x18\x04 \x01(\t\x12\x12\n\nlogo_small\x18\x05 \x01(\t\x12\x0c\n\x04tool\x18\x06 \x01(\x08\x12\x0c\n\x04\x64\x65mo\x18\x07 \x01(\x08\x12\r\n\x05media\x18\x08 \x01(\x08\x12\x1f\n\x17\x63ommunity_visible_stats\x18\t \x01(\x08\x12\x15\n\rfriendly_name\x18\n \x01(\t\x12\x13\n\x0bpropagation\x18\x0b \x01(\t\x12\x19\n\x11has_adult_content\x18\x0c \x01(\x08\"\x8f\x03\n\rCMsgAppRights\x12\x11\n\tedit_info\x18\x01 \x01(\x08\x12\x0f\n\x07publish\x18\x02 \x01(\x08\x12\x17\n\x0fview_error_data\x18\x03 \x01(\x08\x12\x10\n\x08\x64ownload\x18\x04 \x01(\x08\x12\x15\n\rupload_cdkeys\x18\x05 \x01(\x08\x12\x17\n\x0fgenerate_cdkeys\x18\x06 \x01(\x08\x12\x17\n\x0fview_financials\x18\x07 \x01(\x08\x12\x12\n\nmanage_ceg\x18\x08 \x01(\x08\x12\x16\n\x0emanage_signing\x18\t \x01(\x08\x12\x15\n\rmanage_cdkeys\x18\n \x01(\x08\x12\x16\n\x0e\x65\x64it_marketing\x18\x0b \x01(\x08\x12\x17\n\x0f\x65\x63onomy_support\x18\x0c \x01(\x08\x12\"\n\x1a\x65\x63onomy_support_supervisor\x18\r \x01(\x08\x12\x16\n\x0emanage_pricing\x18\x0e \x01(\x08\x12\x16\n\x0e\x62roadcast_live\x18\x0f \x01(\x08\x12\x1e\n\x16view_marketing_traffic\x18\x10 \x01(\x08\"\xf1\x02\n\x13\x43\x43uratorPreferences\x12\x1b\n\x13supported_languages\x18\x01 \x01(\r\x12\x18\n\x10platform_windows\x18\x02 \x01(\x08\x12\x14\n\x0cplatform_mac\x18\x03 \x01(\x08\x12\x16\n\x0eplatform_linux\x18\x04 \x01(\x08\x12\x12\n\nvr_content\x18\x05 \x01(\x08\x12\x1e\n\x16\x61\x64ult_content_violence\x18\x06 \x01(\x08\x12\x19\n\x11\x61\x64ult_content_sex\x18\x07 \x01(\x08\x12\x19\n\x11timestamp_updated\x18\x08 \x01(\r\x12\x16\n\x0etagids_curated\x18\t \x03(\r\x12\x17\n\x0ftagids_filtered\x18\n \x03(\r\x12\x15\n\rwebsite_title\x18\x0b \x01(\t\x12\x13\n\x0bwebsite_url\x18\x0c \x01(\t\x12\x16\n\x0e\x64iscussion_url\x18\r \x01(\t\x12\x16\n\x0eshow_broadcast\x18\x0e \x01(\x08\"@\n\x12\x43LocalizationToken\x12\x10\n\x08language\x18\x01 \x01(\r\x12\x18\n\x10localized_string\x18\x02 \x01(\t\"\xec\x01\n\x17\x43\x43lanEventUserNewsTuple\x12\x0e\n\x06\x63lanid\x18\x01 \x01(\r\x12\x11\n\tevent_gid\x18\x02 \x01(\x06\x12\x18\n\x10\x61nnouncement_gid\x18\x03 \x01(\x06\x12\x13\n\x0brtime_start\x18\x04 \x01(\r\x12\x11\n\trtime_end\x18\x05 \x01(\r\x12\x16\n\x0epriority_score\x18\x06 \x01(\r\x12\x0c\n\x04type\x18\x07 \x01(\r\x12\x18\n\x10\x63lamp_range_slot\x18\x08 \x01(\r\x12\r\n\x05\x61ppid\x18\t \x01(\r\x12\x1d\n\x15rtime32_last_modified\x18\n \x01(\r\"\x80\x01\n\x16\x43\x43lanMatchEventByRange\x12\x14\n\x0crtime_before\x18\x01 \x01(\r\x12\x13\n\x0brtime_after\x18\x02 \x01(\r\x12\x11\n\tqualified\x18\x03 \x01(\r\x12(\n\x06\x65vents\x18\x04 \x03(\x0b\x32\x18.CClanEventUserNewsTuple\"\xb3\x02\n\x1f\x43\x43ommunity_ClanAnnouncementInfo\x12\x0b\n\x03gid\x18\x01 \x01(\x04\x12\x0e\n\x06\x63lanid\x18\x02 \x01(\x04\x12\x10\n\x08posterid\x18\x03 \x01(\x04\x12\x10\n\x08headline\x18\x04 \x01(\t\x12\x10\n\x08posttime\x18\x05 \x01(\r\x12\x12\n\nupdatetime\x18\x06 \x01(\r\x12\x0c\n\x04\x62ody\x18\x07 \x01(\t\x12\x14\n\x0c\x63ommentcount\x18\x08 \x01(\x05\x12\x0c\n\x04tags\x18\t \x03(\t\x12\x10\n\x08language\x18\n \x01(\x05\x12\x0e\n\x06hidden\x18\x0b \x01(\x08\x12\x16\n\x0e\x66orum_topic_id\x18\x0c \x01(\x06\x12\x11\n\tevent_gid\x18\r \x01(\x06\x12\x13\n\x0bvoteupcount\x18\x0e \x01(\x05\x12\x15\n\rvotedowncount\x18\x0f \x01(\x05\"\xc7\x05\n\x0e\x43\x43lanEventData\x12\x0b\n\x03gid\x18\x01 \x01(\x06\x12\x14\n\x0c\x63lan_steamid\x18\x02 \x01(\x06\x12\x12\n\nevent_name\x18\x03 \x01(\t\x12;\n\nevent_type\x18\x04 \x01(\x0e\x32\x14.EProtoClanEventType:\x11k_EClanOtherEvent\x12\r\n\x05\x61ppid\x18\x05 \x01(\r\x12\x16\n\x0eserver_address\x18\x06 \x01(\t\x12\x17\n\x0fserver_password\x18\x07 \x01(\t\x12\x1a\n\x12rtime32_start_time\x18\x08 \x01(\r\x12\x18\n\x10rtime32_end_time\x18\t \x01(\r\x12\x15\n\rcomment_count\x18\n \x01(\x05\x12\x17\n\x0f\x63reator_steamid\x18\x0b \x01(\x06\x12\x1b\n\x13last_update_steamid\x18\x0c \x01(\x06\x12\x13\n\x0b\x65vent_notes\x18\r \x01(\t\x12\x10\n\x08jsondata\x18\x0e \x01(\t\x12;\n\x11\x61nnouncement_body\x18\x0f \x01(\x0b\x32 .CCommunity_ClanAnnouncementInfo\x12\x11\n\tpublished\x18\x10 \x01(\x08\x12\x0e\n\x06hidden\x18\x11 \x01(\x08\x12 \n\x18rtime32_visibility_start\x18\x12 \x01(\r\x12\x1e\n\x16rtime32_visibility_end\x18\x13 \x01(\r\x12\x1d\n\x15\x62roadcaster_accountid\x18\x14 \x01(\r\x12\x16\n\x0e\x66ollower_count\x18\x15 \x01(\r\x12\x14\n\x0cignore_count\x18\x16 \x01(\r\x12\x16\n\x0e\x66orum_topic_id\x18\x17 \x01(\x06\x12\x1d\n\x15rtime32_last_modified\x18\x18 \x01(\r\x12\x15\n\rnews_post_gid\x18\x19 \x01(\x06\x12\x1a\n\x12rtime_mod_reviewed\x18\x1a \x01(\r\"\xc7\x01\n\x10\x43\x42illing_Address\x12\x12\n\nfirst_name\x18\x01 \x01(\t\x12\x11\n\tlast_name\x18\x02 \x01(\t\x12\x10\n\x08\x61\x64\x64ress1\x18\x03 \x01(\t\x12\x10\n\x08\x61\x64\x64ress2\x18\x04 \x01(\t\x12\x0c\n\x04\x63ity\x18\x05 \x01(\t\x12\x10\n\x08us_state\x18\x06 \x01(\t\x12\x14\n\x0c\x63ountry_code\x18\x07 \x01(\t\x12\x10\n\x08postcode\x18\x08 \x01(\t\x12\x11\n\tzip_plus4\x18\t \x01(\x05\x12\r\n\x05phone\x18\n \x01(\t*\xeb\x07\n\x13\x45ProtoClanEventType\x12\x15\n\x11k_EClanOtherEvent\x10\x01\x12\x14\n\x10k_EClanGameEvent\x10\x02\x12\x15\n\x11k_EClanPartyEvent\x10\x03\x12\x17\n\x13k_EClanMeetingEvent\x10\x04\x12\x1c\n\x18k_EClanSpecialCauseEvent\x10\x05\x12\x1c\n\x18k_EClanMusicAndArtsEvent\x10\x06\x12\x16\n\x12k_EClanSportsEvent\x10\x07\x12\x14\n\x10k_EClanTripEvent\x10\x08\x12\x14\n\x10k_EClanChatEvent\x10\t\x12\x1b\n\x17k_EClanGameReleaseEvent\x10\n\x12\x19\n\x15k_EClanBroadcastEvent\x10\x0b\x12\x1b\n\x17k_EClanSmallUpdateEvent\x10\x0c\x12&\n\"k_EClanPreAnnounceMajorUpdateEvent\x10\r\x12\x1b\n\x17k_EClanMajorUpdateEvent\x10\x0e\x12\x1a\n\x16k_EClanDLCReleaseEvent\x10\x0f\x12\x1d\n\x19k_EClanFutureReleaseEvent\x10\x10\x12&\n\"k_EClanESportTournamentStreamEvent\x10\x11\x12\x19\n\x15k_EClanDevStreamEvent\x10\x12\x12\x1c\n\x18k_EClanFamousStreamEvent\x10\x13\x12\x19\n\x15k_EClanGameSalesEvent\x10\x14\x12\x1d\n\x19k_EClanGameItemSalesEvent\x10\x15\x12\x1d\n\x19k_EClanInGameBonusXPEvent\x10\x16\x12\x1a\n\x16k_EClanInGameLootEvent\x10\x17\x12\x1b\n\x17k_EClanInGamePerksEvent\x10\x18\x12\x1f\n\x1bk_EClanInGameChallengeEvent\x10\x19\x12\x1d\n\x19k_EClanInGameContestEvent\x10\x1a\x12\x13\n\x0fk_EClanIRLEvent\x10\x1b\x12\x14\n\x10k_EClanNewsEvent\x10\x1c\x12\x1b\n\x17k_EClanBetaReleaseEvent\x10\x1d\x12$\n k_EClanInGameContentReleaseEvent\x10\x1e\x12\x14\n\x10k_EClanFreeTrial\x10\x1f\x12\x18\n\x14k_EClanSeasonRelease\x10 \x12\x17\n\x13k_EClanSeasonUpdate\x10!\x12\x19\n\x15k_EClanCrosspostEvent\x10\"\x12\x1d\n\x19k_EClanInGameEventGeneral\x10#*\x81\x01\n\x1cPartnerEventNotificationType\x12\x11\n\rk_EEventStart\x10\x00\x12\x1a\n\x16k_EEventBroadcastStart\x10\x01\x12\x16\n\x12k_EEventMatchStart\x10\x02\x12\x1a\n\x16k_EEventPartnerMaxType\x10\x03:A\n\x12msgpool_soft_limit\x12\x1f.google.protobuf.MessageOptions\x18\xd0\x86\x03 \x01(\x05:\x02\x33\x32:B\n\x12msgpool_hard_limit\x12\x1f.google.protobuf.MessageOptions\x18\xd1\x86\x03 \x01(\x05:\x03\x33\x38\x34:C\n\x14\x66orce_php_generation\x12\x1c.google.protobuf.FileOptions\x18\xd0\x86\x03 \x01(\x08:\x05\x66\x61lse:H\n\x18php_output_always_number\x12\x1d.google.protobuf.FieldOptions\x18\xe4\x86\x03 \x01(\x08:\x05\x66\x61lseB\tH\x01\x90\x01\x01\x80\xb5\x18\x01')
+  serialized_pb=_b('\n\x18steammessages_base.proto\x1a google/protobuf/descriptor.proto\"1\n\rCMsgIPAddress\x12\x0c\n\x02v4\x18\x01 \x01(\x07H\x00\x12\x0c\n\x02v6\x18\x02 \x01(\x0cH\x00\x42\x04\n\x02ip\"R\n\x13\x43MsgIPAddressBucket\x12+\n\x13original_ip_address\x18\x01 \x01(\x0b\x32\x0e.CMsgIPAddress\x12\x0e\n\x06\x62ucket\x18\x02 \x01(\x06\"\xa1\x05\n\x12\x43MsgProtoBufHeader\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x18\n\x10\x63lient_sessionid\x18\x02 \x01(\x05\x12\x15\n\rrouting_appid\x18\x03 \x01(\r\x12*\n\x0cjobid_source\x18\n \x01(\x06:\x14\x31\x38\x34\x34\x36\x37\x34\x34\x30\x37\x33\x37\x30\x39\x35\x35\x31\x36\x31\x35\x12*\n\x0cjobid_target\x18\x0b \x01(\x06:\x14\x31\x38\x34\x34\x36\x37\x34\x34\x30\x37\x33\x37\x30\x39\x35\x35\x31\x36\x31\x35\x12\x17\n\x0ftarget_job_name\x18\x0c \x01(\t\x12\x0f\n\x07seq_num\x18\x18 \x01(\x05\x12\x12\n\x07\x65result\x18\r \x01(\x05:\x01\x32\x12\x15\n\rerror_message\x18\x0e \x01(\t\x12\x1a\n\x12\x61uth_account_flags\x18\x10 \x01(\r\x12\x14\n\x0ctoken_source\x18\x16 \x01(\r\x12\x1b\n\x13\x61\x64min_spoofing_user\x18\x17 \x01(\x08\x12\x1a\n\x0ftransport_error\x18\x11 \x01(\x05:\x01\x31\x12\'\n\tmessageid\x18\x12 \x01(\x04:\x14\x31\x38\x34\x34\x36\x37\x34\x34\x30\x37\x33\x37\x30\x39\x35\x35\x31\x36\x31\x35\x12\x1a\n\x12publisher_group_id\x18\x13 \x01(\r\x12\r\n\x05sysid\x18\x14 \x01(\r\x12\x11\n\ttrace_tag\x18\x15 \x01(\x04\x12\x15\n\rwebapi_key_id\x18\x19 \x01(\r\x12\x1f\n\x17is_from_external_source\x18\x1a \x01(\x08\x12\x18\n\x10\x66orward_to_sysid\x18\x1b \x03(\r\x12\x10\n\x08\x63m_sysid\x18\x1c \x01(\r\x12\x10\n\x08wg_token\x18\x1e \x01(\t\x12\x18\n\rlauncher_type\x18\x1f \x01(\r:\x01\x30\x12\x10\n\x05realm\x18  \x01(\r:\x01\x30\x12\x0c\n\x02ip\x18\x0f \x01(\rH\x00\x12\x0f\n\x05ip_v6\x18\x1d \x01(\x0cH\x00\x42\t\n\x07ip_addr\"8\n\tCMsgMulti\x12\x15\n\rsize_unzipped\x18\x01 \x01(\r\x12\x14\n\x0cmessage_body\x18\x02 \x01(\x0c\"+\n\x13\x43MsgProtobufWrapped\x12\x14\n\x0cmessage_body\x18\x01 \x01(\x0c\"\x8f\x01\n\x0e\x43MsgAuthTicket\x12\x0e\n\x06\x65state\x18\x01 \x01(\r\x12\x12\n\x07\x65result\x18\x02 \x01(\r:\x01\x32\x12\x0f\n\x07steamid\x18\x03 \x01(\x06\x12\x0e\n\x06gameid\x18\x04 \x01(\x06\x12\x14\n\x0ch_steam_pipe\x18\x05 \x01(\r\x12\x12\n\nticket_crc\x18\x06 \x01(\r\x12\x0e\n\x06ticket\x18\x07 \x01(\x0c\"\x99\x02\n\x14\x43\x43\x44\x44\x42\x41ppDetailCommon\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0c\n\x04icon\x18\x03 \x01(\t\x12\x0c\n\x04logo\x18\x04 \x01(\t\x12\x12\n\nlogo_small\x18\x05 \x01(\t\x12\x0c\n\x04tool\x18\x06 \x01(\x08\x12\x0c\n\x04\x64\x65mo\x18\x07 \x01(\x08\x12\r\n\x05media\x18\x08 \x01(\x08\x12\x1f\n\x17\x63ommunity_visible_stats\x18\t \x01(\x08\x12\x15\n\rfriendly_name\x18\n \x01(\t\x12\x13\n\x0bpropagation\x18\x0b \x01(\t\x12\x19\n\x11has_adult_content\x18\x0c \x01(\x08\x12!\n\x19is_visible_in_steam_china\x18\r \x01(\x08\"\x8f\x03\n\rCMsgAppRights\x12\x11\n\tedit_info\x18\x01 \x01(\x08\x12\x0f\n\x07publish\x18\x02 \x01(\x08\x12\x17\n\x0fview_error_data\x18\x03 \x01(\x08\x12\x10\n\x08\x64ownload\x18\x04 \x01(\x08\x12\x15\n\rupload_cdkeys\x18\x05 \x01(\x08\x12\x17\n\x0fgenerate_cdkeys\x18\x06 \x01(\x08\x12\x17\n\x0fview_financials\x18\x07 \x01(\x08\x12\x12\n\nmanage_ceg\x18\x08 \x01(\x08\x12\x16\n\x0emanage_signing\x18\t \x01(\x08\x12\x15\n\rmanage_cdkeys\x18\n \x01(\x08\x12\x16\n\x0e\x65\x64it_marketing\x18\x0b \x01(\x08\x12\x17\n\x0f\x65\x63onomy_support\x18\x0c \x01(\x08\x12\"\n\x1a\x65\x63onomy_support_supervisor\x18\r \x01(\x08\x12\x16\n\x0emanage_pricing\x18\x0e \x01(\x08\x12\x16\n\x0e\x62roadcast_live\x18\x0f \x01(\x08\x12\x1e\n\x16view_marketing_traffic\x18\x10 \x01(\x08\"\xf1\x02\n\x13\x43\x43uratorPreferences\x12\x1b\n\x13supported_languages\x18\x01 \x01(\r\x12\x18\n\x10platform_windows\x18\x02 \x01(\x08\x12\x14\n\x0cplatform_mac\x18\x03 \x01(\x08\x12\x16\n\x0eplatform_linux\x18\x04 \x01(\x08\x12\x12\n\nvr_content\x18\x05 \x01(\x08\x12\x1e\n\x16\x61\x64ult_content_violence\x18\x06 \x01(\x08\x12\x19\n\x11\x61\x64ult_content_sex\x18\x07 \x01(\x08\x12\x19\n\x11timestamp_updated\x18\x08 \x01(\r\x12\x16\n\x0etagids_curated\x18\t \x03(\r\x12\x17\n\x0ftagids_filtered\x18\n \x03(\r\x12\x15\n\rwebsite_title\x18\x0b \x01(\t\x12\x13\n\x0bwebsite_url\x18\x0c \x01(\t\x12\x16\n\x0e\x64iscussion_url\x18\r \x01(\t\x12\x16\n\x0eshow_broadcast\x18\x0e \x01(\x08\"@\n\x12\x43LocalizationToken\x12\x10\n\x08language\x18\x01 \x01(\r\x12\x18\n\x10localized_string\x18\x02 \x01(\t\"\xec\x01\n\x17\x43\x43lanEventUserNewsTuple\x12\x0e\n\x06\x63lanid\x18\x01 \x01(\r\x12\x11\n\tevent_gid\x18\x02 \x01(\x06\x12\x18\n\x10\x61nnouncement_gid\x18\x03 \x01(\x06\x12\x13\n\x0brtime_start\x18\x04 \x01(\r\x12\x11\n\trtime_end\x18\x05 \x01(\r\x12\x16\n\x0epriority_score\x18\x06 \x01(\r\x12\x0c\n\x04type\x18\x07 \x01(\r\x12\x18\n\x10\x63lamp_range_slot\x18\x08 \x01(\r\x12\r\n\x05\x61ppid\x18\t \x01(\r\x12\x1d\n\x15rtime32_last_modified\x18\n \x01(\r\"\x80\x01\n\x16\x43\x43lanMatchEventByRange\x12\x14\n\x0crtime_before\x18\x01 \x01(\r\x12\x13\n\x0brtime_after\x18\x02 \x01(\r\x12\x11\n\tqualified\x18\x03 \x01(\r\x12(\n\x06\x65vents\x18\x04 \x03(\x0b\x32\x18.CClanEventUserNewsTuple\"\xb3\x02\n\x1f\x43\x43ommunity_ClanAnnouncementInfo\x12\x0b\n\x03gid\x18\x01 \x01(\x04\x12\x0e\n\x06\x63lanid\x18\x02 \x01(\x04\x12\x10\n\x08posterid\x18\x03 \x01(\x04\x12\x10\n\x08headline\x18\x04 \x01(\t\x12\x10\n\x08posttime\x18\x05 \x01(\r\x12\x12\n\nupdatetime\x18\x06 \x01(\r\x12\x0c\n\x04\x62ody\x18\x07 \x01(\t\x12\x14\n\x0c\x63ommentcount\x18\x08 \x01(\x05\x12\x0c\n\x04tags\x18\t \x03(\t\x12\x10\n\x08language\x18\n \x01(\x05\x12\x0e\n\x06hidden\x18\x0b \x01(\x08\x12\x16\n\x0e\x66orum_topic_id\x18\x0c \x01(\x06\x12\x11\n\tevent_gid\x18\r \x01(\x06\x12\x13\n\x0bvoteupcount\x18\x0e \x01(\x05\x12\x15\n\rvotedowncount\x18\x0f \x01(\x05\"\xfe\x05\n\x0e\x43\x43lanEventData\x12\x0b\n\x03gid\x18\x01 \x01(\x06\x12\x14\n\x0c\x63lan_steamid\x18\x02 \x01(\x06\x12\x12\n\nevent_name\x18\x03 \x01(\t\x12;\n\nevent_type\x18\x04 \x01(\x0e\x32\x14.EProtoClanEventType:\x11k_EClanOtherEvent\x12\r\n\x05\x61ppid\x18\x05 \x01(\r\x12\x16\n\x0eserver_address\x18\x06 \x01(\t\x12\x17\n\x0fserver_password\x18\x07 \x01(\t\x12\x1a\n\x12rtime32_start_time\x18\x08 \x01(\r\x12\x18\n\x10rtime32_end_time\x18\t \x01(\r\x12\x15\n\rcomment_count\x18\n \x01(\x05\x12\x17\n\x0f\x63reator_steamid\x18\x0b \x01(\x06\x12\x1b\n\x13last_update_steamid\x18\x0c \x01(\x06\x12\x13\n\x0b\x65vent_notes\x18\r \x01(\t\x12\x10\n\x08jsondata\x18\x0e \x01(\t\x12;\n\x11\x61nnouncement_body\x18\x0f \x01(\x0b\x32 .CCommunity_ClanAnnouncementInfo\x12\x11\n\tpublished\x18\x10 \x01(\x08\x12\x0e\n\x06hidden\x18\x11 \x01(\x08\x12 \n\x18rtime32_visibility_start\x18\x12 \x01(\r\x12\x1e\n\x16rtime32_visibility_end\x18\x13 \x01(\r\x12\x1d\n\x15\x62roadcaster_accountid\x18\x14 \x01(\r\x12\x16\n\x0e\x66ollower_count\x18\x15 \x01(\r\x12\x14\n\x0cignore_count\x18\x16 \x01(\r\x12\x16\n\x0e\x66orum_topic_id\x18\x17 \x01(\x06\x12\x1d\n\x15rtime32_last_modified\x18\x18 \x01(\r\x12\x15\n\rnews_post_gid\x18\x19 \x01(\x06\x12\x1a\n\x12rtime_mod_reviewed\x18\x1a \x01(\r\x12\x1a\n\x12\x66\x65\x61tured_app_tagid\x18\x1b \x01(\r\x12\x19\n\x11referenced_appids\x18\x1c \x03(\r\"\xc7\x01\n\x10\x43\x42illing_Address\x12\x12\n\nfirst_name\x18\x01 \x01(\t\x12\x11\n\tlast_name\x18\x02 \x01(\t\x12\x10\n\x08\x61\x64\x64ress1\x18\x03 \x01(\t\x12\x10\n\x08\x61\x64\x64ress2\x18\x04 \x01(\t\x12\x0c\n\x04\x63ity\x18\x05 \x01(\t\x12\x10\n\x08us_state\x18\x06 \x01(\t\x12\x14\n\x0c\x63ountry_code\x18\x07 \x01(\t\x12\x10\n\x08postcode\x18\x08 \x01(\t\x12\x11\n\tzip_plus4\x18\t \x01(\x05\x12\r\n\x05phone\x18\n \x01(\t\"\xdb\x01\n\x19\x43PackageReservationStatus\x12\x11\n\tpackageid\x18\x01 \x01(\r\x12\x19\n\x11reservation_state\x18\x02 \x01(\x05\x12\x16\n\x0equeue_position\x18\x03 \x01(\x05\x12\x18\n\x10total_queue_size\x18\x04 \x01(\x05\x12 \n\x18reservation_country_code\x18\x05 \x01(\t\x12\x0f\n\x07\x65xpired\x18\x06 \x01(\x08\x12\x14\n\x0ctime_expires\x18\x07 \x01(\r\x12\x15\n\rtime_reserved\x18\x08 \x01(\r*\xeb\x07\n\x13\x45ProtoClanEventType\x12\x15\n\x11k_EClanOtherEvent\x10\x01\x12\x14\n\x10k_EClanGameEvent\x10\x02\x12\x15\n\x11k_EClanPartyEvent\x10\x03\x12\x17\n\x13k_EClanMeetingEvent\x10\x04\x12\x1c\n\x18k_EClanSpecialCauseEvent\x10\x05\x12\x1c\n\x18k_EClanMusicAndArtsEvent\x10\x06\x12\x16\n\x12k_EClanSportsEvent\x10\x07\x12\x14\n\x10k_EClanTripEvent\x10\x08\x12\x14\n\x10k_EClanChatEvent\x10\t\x12\x1b\n\x17k_EClanGameReleaseEvent\x10\n\x12\x19\n\x15k_EClanBroadcastEvent\x10\x0b\x12\x1b\n\x17k_EClanSmallUpdateEvent\x10\x0c\x12&\n\"k_EClanPreAnnounceMajorUpdateEvent\x10\r\x12\x1b\n\x17k_EClanMajorUpdateEvent\x10\x0e\x12\x1a\n\x16k_EClanDLCReleaseEvent\x10\x0f\x12\x1d\n\x19k_EClanFutureReleaseEvent\x10\x10\x12&\n\"k_EClanESportTournamentStreamEvent\x10\x11\x12\x19\n\x15k_EClanDevStreamEvent\x10\x12\x12\x1c\n\x18k_EClanFamousStreamEvent\x10\x13\x12\x19\n\x15k_EClanGameSalesEvent\x10\x14\x12\x1d\n\x19k_EClanGameItemSalesEvent\x10\x15\x12\x1d\n\x19k_EClanInGameBonusXPEvent\x10\x16\x12\x1a\n\x16k_EClanInGameLootEvent\x10\x17\x12\x1b\n\x17k_EClanInGamePerksEvent\x10\x18\x12\x1f\n\x1bk_EClanInGameChallengeEvent\x10\x19\x12\x1d\n\x19k_EClanInGameContestEvent\x10\x1a\x12\x13\n\x0fk_EClanIRLEvent\x10\x1b\x12\x14\n\x10k_EClanNewsEvent\x10\x1c\x12\x1b\n\x17k_EClanBetaReleaseEvent\x10\x1d\x12$\n k_EClanInGameContentReleaseEvent\x10\x1e\x12\x14\n\x10k_EClanFreeTrial\x10\x1f\x12\x18\n\x14k_EClanSeasonRelease\x10 \x12\x17\n\x13k_EClanSeasonUpdate\x10!\x12\x19\n\x15k_EClanCrosspostEvent\x10\"\x12\x1d\n\x19k_EClanInGameEventGeneral\x10#*\x81\x01\n\x1cPartnerEventNotificationType\x12\x11\n\rk_EEventStart\x10\x00\x12\x1a\n\x16k_EEventBroadcastStart\x10\x01\x12\x16\n\x12k_EEventMatchStart\x10\x02\x12\x1a\n\x16k_EEventPartnerMaxType\x10\x03:A\n\x12msgpool_soft_limit\x12\x1f.google.protobuf.MessageOptions\x18\xd0\x86\x03 \x01(\x05:\x02\x33\x32:B\n\x12msgpool_hard_limit\x12\x1f.google.protobuf.MessageOptions\x18\xd1\x86\x03 \x01(\x05:\x03\x33\x38\x34:C\n\x14\x66orce_php_generation\x12\x1c.google.protobuf.FileOptions\x18\xd0\x86\x03 \x01(\x08:\x05\x66\x61lse:H\n\x18php_output_always_number\x12\x1d.google.protobuf.FieldOptions\x18\xe4\x86\x03 \x01(\x08:\x05\x66\x61lseB\tH\x01\x90\x01\x01\x80\xb5\x18\x01')
   ,
   dependencies=[google_dot_protobuf_dot_descriptor__pb2.DESCRIPTOR,])
 
@@ -175,8 +175,8 @@ _EPROTOCLANEVENTTYPE = _descriptor.EnumDescriptor(
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=3808,
-  serialized_end=4811,
+  serialized_start=4120,
+  serialized_end=5123,
 )
 _sym_db.RegisterEnumDescriptor(_EPROTOCLANEVENTTYPE)
 
@@ -206,8 +206,8 @@ _PARTNEREVENTNOTIFICATIONTYPE = _descriptor.EnumDescriptor(
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=4814,
-  serialized_end=4943,
+  serialized_start=5126,
+  serialized_end=5255,
 )
 _sym_db.RegisterEnumDescriptor(_PARTNEREVENTNOTIFICATIONTYPE)
 
@@ -807,6 +807,13 @@ _CCDDBAPPDETAILCOMMON = _descriptor.Descriptor(
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='is_visible_in_steam_china', full_name='CCDDBAppDetailCommon.is_visible_in_steam_china', index=12,
+      number=13, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -820,7 +827,7 @@ _CCDDBAPPDETAILCOMMON = _descriptor.Descriptor(
   oneofs=[
   ],
   serialized_start=1123,
-  serialized_end=1369,
+  serialized_end=1404,
 )
 
 
@@ -955,8 +962,8 @@ _CMSGAPPRIGHTS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1372,
-  serialized_end=1771,
+  serialized_start=1407,
+  serialized_end=1806,
 )
 
 
@@ -1077,8 +1084,8 @@ _CCURATORPREFERENCES = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1774,
-  serialized_end=2143,
+  serialized_start=1809,
+  serialized_end=2178,
 )
 
 
@@ -1115,8 +1122,8 @@ _CLOCALIZATIONTOKEN = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2145,
-  serialized_end=2209,
+  serialized_start=2180,
+  serialized_end=2244,
 )
 
 
@@ -1209,8 +1216,8 @@ _CCLANEVENTUSERNEWSTUPLE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2212,
-  serialized_end=2448,
+  serialized_start=2247,
+  serialized_end=2483,
 )
 
 
@@ -1261,8 +1268,8 @@ _CCLANMATCHEVENTBYRANGE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2451,
-  serialized_end=2579,
+  serialized_start=2486,
+  serialized_end=2614,
 )
 
 
@@ -1390,8 +1397,8 @@ _CCOMMUNITY_CLANANNOUNCEMENTINFO = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2582,
-  serialized_end=2889,
+  serialized_start=2617,
+  serialized_end=2924,
 )
 
 
@@ -1584,6 +1591,20 @@ _CCLANEVENTDATA = _descriptor.Descriptor(
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='featured_app_tagid', full_name='CClanEventData.featured_app_tagid', index=26,
+      number=27, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='referenced_appids', full_name='CClanEventData.referenced_appids', index=27,
+      number=28, type=13, cpp_type=3, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -1596,8 +1617,8 @@ _CCLANEVENTDATA = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2892,
-  serialized_end=3603,
+  serialized_start=2927,
+  serialized_end=3693,
 )
 
 
@@ -1690,8 +1711,88 @@ _CBILLING_ADDRESS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3606,
-  serialized_end=3805,
+  serialized_start=3696,
+  serialized_end=3895,
+)
+
+
+_CPACKAGERESERVATIONSTATUS = _descriptor.Descriptor(
+  name='CPackageReservationStatus',
+  full_name='CPackageReservationStatus',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='packageid', full_name='CPackageReservationStatus.packageid', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='reservation_state', full_name='CPackageReservationStatus.reservation_state', index=1,
+      number=2, type=5, cpp_type=1, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='queue_position', full_name='CPackageReservationStatus.queue_position', index=2,
+      number=3, type=5, cpp_type=1, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='total_queue_size', full_name='CPackageReservationStatus.total_queue_size', index=3,
+      number=4, type=5, cpp_type=1, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='reservation_country_code', full_name='CPackageReservationStatus.reservation_country_code', index=4,
+      number=5, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='expired', full_name='CPackageReservationStatus.expired', index=5,
+      number=6, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='time_expires', full_name='CPackageReservationStatus.time_expires', index=6,
+      number=7, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='time_reserved', full_name='CPackageReservationStatus.time_reserved', index=7,
+      number=8, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=3898,
+  serialized_end=4117,
 )
 
 _CMSGIPADDRESS.oneofs_by_name['ip'].fields.append(
@@ -1725,6 +1826,7 @@ DESCRIPTOR.message_types_by_name['CClanMatchEventByRange'] = _CCLANMATCHEVENTBYR
 DESCRIPTOR.message_types_by_name['CCommunity_ClanAnnouncementInfo'] = _CCOMMUNITY_CLANANNOUNCEMENTINFO
 DESCRIPTOR.message_types_by_name['CClanEventData'] = _CCLANEVENTDATA
 DESCRIPTOR.message_types_by_name['CBilling_Address'] = _CBILLING_ADDRESS
+DESCRIPTOR.message_types_by_name['CPackageReservationStatus'] = _CPACKAGERESERVATIONSTATUS
 DESCRIPTOR.enum_types_by_name['EProtoClanEventType'] = _EPROTOCLANEVENTTYPE
 DESCRIPTOR.enum_types_by_name['PartnerEventNotificationType'] = _PARTNEREVENTNOTIFICATIONTYPE
 DESCRIPTOR.extensions_by_name['msgpool_soft_limit'] = msgpool_soft_limit
@@ -1838,6 +1940,13 @@ CBilling_Address = _reflection.GeneratedProtocolMessageType('CBilling_Address',
   ))
 _sym_db.RegisterMessage(CBilling_Address)
 
+CPackageReservationStatus = _reflection.GeneratedProtocolMessageType('CPackageReservationStatus', (_message.Message,), dict(
+  DESCRIPTOR = _CPACKAGERESERVATIONSTATUS,
+  __module__ = 'steammessages_base_pb2'
+  # @@protoc_insertion_point(class_scope:CPackageReservationStatus)
+  ))
+_sym_db.RegisterMessage(CPackageReservationStatus)
+
 google_dot_protobuf_dot_descriptor__pb2.MessageOptions.RegisterExtension(msgpool_soft_limit)
 google_dot_protobuf_dot_descriptor__pb2.MessageOptions.RegisterExtension(msgpool_hard_limit)
 google_dot_protobuf_dot_descriptor__pb2.FileOptions.RegisterExtension(force_php_generation)
diff --git a/steam/protobufs/steammessages_broadcast_pb2.py b/steam/protobufs/steammessages_broadcast_pb2.py
index 4e9e128..8a7d9ec 100644
--- a/steam/protobufs/steammessages_broadcast_pb2.py
+++ b/steam/protobufs/steammessages_broadcast_pb2.py
@@ -24,7 +24,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
   package='',
   syntax='proto2',
   serialized_options=_b('\220\001\001'),
-  serialized_pb=_b('\n\x1dsteammessages_broadcast.proto\x1a steammessages_unified_base.proto\"\xdb\x01\n(CBroadcast_BeginBroadcastSession_Request\x12\x12\n\npermission\x18\x01 \x01(\x05\x12\x0e\n\x06gameid\x18\x02 \x01(\x04\x12\x1a\n\x12\x63lient_instance_id\x18\x03 \x01(\x04\x12\r\n\x05title\x18\x04 \x01(\t\x12\x0e\n\x06\x63\x65llid\x18\x05 \x01(\r\x12\x12\n\nrtmp_token\x18\x06 \x01(\x04\x12\x18\n\x10thumbnail_upload\x18\x07 \x01(\x08\x12\x13\n\x0b\x63lient_beta\x18\x08 \x01(\t\x12\r\n\x05sysid\x18\t \x01(\r\"\x9c\x03\n)CBroadcast_BeginBroadcastSession_Response\x12\x14\n\x0c\x62roadcast_id\x18\x01 \x01(\x06\x12P\n\x18thumbnail_upload_address\x18\x02 \x01(\tB.\x82\xb5\x18*Http address to upload the thumbnail data.\x12\x65\n\x16thumbnail_upload_token\x18\x03 \x01(\tBE\x82\xb5\x18\x41token to authorize as broadcaster to upload content to the relay.\x12K\n\x1athumbnail_interval_seconds\x18\x04 \x01(\rB\'\x82\xb5\x18#how many seconds between thumbnails\x12S\n\x1aheartbeat_interval_seconds\x18\x05 \x01(\rB/\x82\xb5\x18+how many seconds between session heartbeats\">\n&CBroadcast_EndBroadcastSession_Request\x12\x14\n\x0c\x62roadcast_id\x18\x01 \x01(\x06\")\n\'CBroadcast_EndBroadcastSession_Response\"\x88\x02\n\'CBroadcast_StartBroadcastUpload_Request\x12\x14\n\x0c\x62roadcast_id\x18\x01 \x01(\x06\x12\x0e\n\x06\x63\x65llid\x18\x02 \x01(\r\x12\x0f\n\x07\x61s_rtmp\x18\x03 \x01(\x08\x12\x15\n\rdelay_seconds\x18\x04 \x01(\r\x12R\n\nrtmp_token\x18\x05 \x01(\x04:\x01\x30\x42;\x82\xb5\x18\x37Only set during RTMP uploads; secret key from the user.\x12\x19\n\x11upload_ip_address\x18\x06 \x01(\r\x12\x11\n\tis_replay\x18\x07 \x01(\x08\x12\r\n\x05sysid\x18\x08 \x01(\r\"\xa2\x01\n(CBroadcast_StartBroadcastUpload_Response\x12\x14\n\x0cupload_token\x18\x01 \x01(\t\x12\x16\n\x0eupload_address\x18\x02 \x01(\t\x12\x1b\n\x13\x62roadcast_upload_id\x18\x03 \x01(\x06\x12\x15\n\renable_replay\x18\x06 \x01(\x08\x12\x14\n\x0chttp_address\x18\x07 \x01(\t\"g\n1CBroadcast_NotifyBroadcastUploadStop_Notification\x12\x1b\n\x13\x62roadcast_upload_id\x18\x01 \x01(\x06\x12\x15\n\rupload_result\x18\x02 \x01(\r\"\x9c\x03\n!CBroadcast_WatchBroadcast_Request\x12)\n\x07steamid\x18\x01 \x01(\x06\x42\x18\x82\xb5\x18\x14\x62roadcaster steamID.\x12X\n\x15\x65xisting_broadcast_id\x18\x02 \x01(\x06\x42\x39\x82\xb5\x18\x35\x62roadcast session ID (optional, rejoin if specified).\x12\x62\n\x0cviewer_token\x18\x03 \x01(\x06\x42L\x82\xb5\x18Hviewer token received from last WatchRequest call, from browser storage.\x12\x11\n\tclient_ip\x18\x04 \x01(\r\x12\x13\n\x0b\x63lient_cell\x18\x05 \x01(\r\x12S\n\x0ewatch_location\x18\x06 \x01(\x0e\x32\x18.EBroadcastWatchLocation:!k_EBroadcastWatchLocation_Invalid\x12\x11\n\tis_webrtc\x18\x07 \x01(\x08\"\xd9\x07\n\"CBroadcast_WatchBroadcast_Response\x12[\n\x08response\x18\x01 \x01(\x0e\x32\x32.CBroadcast_WatchBroadcast_Response.EWatchResponse:\x15k_EWatchResponseReady\x12\x0f\n\x07mpd_url\x18\x02 \x01(\t\x12\x14\n\x0c\x62roadcast_id\x18\x03 \x01(\x06\x12\x0e\n\x06gameid\x18\x04 \x01(\x04\x12\r\n\x05title\x18\x05 \x01(\t\x12\x13\n\x0bnum_viewers\x18\x06 \x01(\r\x12\x12\n\npermission\x18\x07 \x01(\x05\x12\x0f\n\x07is_rtmp\x18\x08 \x01(\x08\x12\x15\n\rseconds_delay\x18\t \x01(\x05\x12\x14\n\x0cviewer_token\x18\n \x01(\x06\x12\x1b\n\x13hls_m3u8_master_url\x18\x0b \x01(\t\x12\x1a\n\x12heartbeat_interval\x18\x0c \x01(\x05\x12\x15\n\rthumbnail_url\x18\r \x01(\t\x12\x11\n\tis_webrtc\x18\x0e \x01(\x08\x12\x19\n\x11webrtc_session_id\x18\x0f \x01(\x06\x12\x18\n\x10webrtc_offer_sdp\x18\x10 \x01(\t\x12\x1a\n\x12webrtc_turn_server\x18\x11 \x01(\t\x12\x11\n\tis_replay\x18\x12 \x01(\x08\x12\x10\n\x08\x64uration\x18\x13 \x01(\x05\"\xcf\x03\n\x0e\x45WatchResponse\x12\x19\n\x15k_EWatchResponseReady\x10\x01\x12 \n\x1ck_EWatchResponseNotAvailable\x10\x02\x12&\n\"k_EWatchResponseWaitingForApproval\x10\x03\x12#\n\x1fk_EWatchResponseWaitingForStart\x10\x04\x12\"\n\x1ek_EWatchResponseInvalidSession\x10\x05\x12%\n!k_EWatchResponseTooManyBroadcasts\x10\x06\x12\'\n#k_EWatchResponseWaitingForReconnect\x10\x07\x12&\n\"k_EWatchResponseSystemNotSupported\x10\x08\x12\"\n\x1ek_EWatchResponseUserRestricted\x10\t\x12#\n\x1fk_EWatchResponseClientOutOfDate\x10\n\x12%\n!k_EWatchResponsePoorUploadQuality\x10\x0b\x12\'\n#k_EWatchResponseMissingSubscription\x10\x0c\"\xae\x02\n*CBroadcast_HeartbeatBroadcast_Notification\x12)\n\x07steamid\x18\x01 \x01(\x06\x42\x18\x82\xb5\x18\x14\x62roadcaster steamID.\x12/\n\x0c\x62roadcast_id\x18\x02 \x01(\x06\x42\x19\x82\xb5\x18\x15\x62roadcast session ID.\x12\x62\n\x0cviewer_token\x18\x03 \x01(\x06\x42L\x82\xb5\x18Hviewer token received from last WatchRequest call, from browser storage.\x12@\n\x0erepresentation\x18\x04 \x01(\rB(\x82\xb5\x18$video stream representation watching\"\xef\x01\n-CBroadcast_StopWatchingBroadcast_Notification\x12)\n\x07steamid\x18\x01 \x01(\x06\x42\x18\x82\xb5\x18\x14\x62roadcaster steamID.\x12/\n\x0c\x62roadcast_id\x18\x02 \x01(\x06\x42\x19\x82\xb5\x18\x15\x62roadcast session ID.\x12\x62\n\x0cviewer_token\x18\x03 \x01(\x06\x42L\x82\xb5\x18Hviewer token received from last WatchRequest call, from browser storage.\"\xb0\x01\n%CBroadcast_GetBroadcastStatus_Request\x12)\n\x07steamid\x18\x01 \x01(\x06\x42\x18\x82\xb5\x18\x14\x62roadcaster steamID.\x12\\\n\x0c\x62roadcast_id\x18\x02 \x01(\x06\x42\x46\x82\xb5\x18\x42\x62roadcast session ID to proof that user is allowed to see details.\"\xd1\x02\n&CBroadcast_GetBroadcastStatus_Response\x12\x0e\n\x06gameid\x18\x01 \x01(\x04\x12\r\n\x05title\x18\x02 \x01(\t\x12\x13\n\x0bnum_viewers\x18\x03 \x01(\r\x12\x12\n\npermission\x18\x04 \x01(\x05\x12\x0f\n\x07is_rtmp\x18\x05 \x01(\x08\x12\x15\n\rseconds_delay\x18\x06 \x01(\x05\x12\x14\n\x0cis_publisher\x18\x07 \x01(\x08\x12\x15\n\rthumbnail_url\x18\x08 \x01(\t\x12\x17\n\x0fupdate_interval\x18\t \x01(\x05\x12\x14\n\x0cis_uploading\x18\n \x01(\x08\x12\x10\n\x08\x64uration\x18\x0b \x01(\r\x12\x11\n\tis_replay\x18\x0c \x01(\x08\x12\x18\n\x10is_capturing_vod\x18\r \x01(\x08\x12\x1c\n\x14is_store_whitelisted\x18\x0e \x01(\x08\"Q\n(CBroadcast_GetBroadcastThumbnail_Request\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x14\n\x0c\x62roadcast_id\x18\x02 \x01(\x06\"\x82\x01\n)CBroadcast_GetBroadcastThumbnail_Response\x12\x15\n\rthumbnail_url\x18\x01 \x01(\t\x12\x17\n\x0fupdate_interval\x18\x02 \x01(\x05\x12\x13\n\x0bnum_viewers\x18\x03 \x01(\x05\x12\x10\n\x08\x64uration\x18\x04 \x01(\x05\"R\n$CBroadcast_InviteToBroadcast_Request\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x19\n\x11\x61pproval_response\x18\x02 \x01(\x08\"8\n%CBroadcast_InviteToBroadcast_Response\x12\x0f\n\x07success\x18\x01 \x01(\x08\"|\n-CBroadcast_SendBroadcastStateToServer_Request\x12\x12\n\npermission\x18\x01 \x01(\x05\x12\x0e\n\x06gameid\x18\x02 \x01(\x04\x12\r\n\x05title\x18\x03 \x01(\t\x12\x18\n\x10game_data_config\x18\x04 \x01(\t\"0\n.CBroadcast_SendBroadcastStateToServer_Response\"O\n7CBroadcast_NotifyBroadcastSessionHeartbeat_Notification\x12\x14\n\x0c\x62roadcast_id\x18\x01 \x01(\x06\"x\n\'CBroadcast_GetBroadcastChatInfo_Request\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x14\n\x0c\x62roadcast_id\x18\x02 \x01(\x06\x12\x11\n\tclient_ip\x18\x03 \x01(\r\x12\x13\n\x0b\x63lient_cell\x18\x04 \x01(\r\"o\n(CBroadcast_GetBroadcastChatInfo_Response\x12\x0f\n\x07\x63hat_id\x18\x01 \x01(\x06\x12\x19\n\x11view_url_template\x18\x03 \x01(\t\x12\x17\n\x0f\x66lair_group_ids\x18\x04 \x03(\r\"\xea\x01\n\"CBroadcast_PostChatMessage_Request\x12\x0f\n\x07\x63hat_id\x18\x01 \x01(\x06\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x13\n\x0binstance_id\x18\x03 \x01(\r\x12V\n\x08language\x18\x04 \x01(\r:\x01\x30\x42\x41\x82\xb5\x18=ELanguage of the user posting the message, default is english\x12\x35\n\x0c\x63ountry_code\x18\x05 \x01(\tB\x1f\x82\xb5\x18\x1bThe two letter country code\"{\n#CBroadcast_PostChatMessage_Response\x12\x14\n\x0cpersona_name\x18\x01 \x01(\t\x12\x0f\n\x07in_game\x18\x02 \x01(\x08\x12\x0e\n\x06result\x18\x03 \x01(\x05\x12\x1d\n\x15\x63ooldown_time_seconds\x18\x04 \x01(\x05\"K\n)CBroadcast_UpdateChatMessageFlair_Request\x12\x0f\n\x07\x63hat_id\x18\x01 \x01(\x06\x12\r\n\x05\x66lair\x18\x02 \x01(\t\"\\\n*CBroadcast_UpdateChatMessageFlair_Response\x12\x0e\n\x06result\x18\x01 \x01(\x05\x12\x0f\n\x07\x63hat_id\x18\x02 \x01(\x06\x12\r\n\x05\x66lair\x18\x03 \x01(\t\"`\n(CBroadcast_MuteBroadcastChatUser_Request\x12\x0f\n\x07\x63hat_id\x18\x01 \x01(\x06\x12\x14\n\x0cuser_steamid\x18\x02 \x01(\x06\x12\r\n\x05muted\x18\x03 \x01(\x08\"+\n)CBroadcast_MuteBroadcastChatUser_Response\"N\n%CBroadcast_RemoveUserChatText_Request\x12\x0f\n\x07\x63hat_id\x18\x01 \x01(\x06\x12\x14\n\x0cuser_steamid\x18\x02 \x01(\x06\"(\n&CBroadcast_RemoveUserChatText_Response\"U\n,CBroadcast_GetBroadcastChatUserNames_Request\x12\x0f\n\x07\x63hat_id\x18\x01 \x01(\x06\x12\x14\n\x0cuser_steamid\x18\x02 \x03(\x06\"\xb4\x01\n-CBroadcast_GetBroadcastChatUserNames_Response\x12Q\n\rpersona_names\x18\x01 \x03(\x0b\x32:.CBroadcast_GetBroadcastChatUserNames_Response.PersonaName\x1a\x30\n\x0bPersonaName\x12\x10\n\x08steam_id\x18\x01 \x01(\x06\x12\x0f\n\x07persona\x18\x02 \x01(\t\"\x99\x01\n!CBroadcast_StartBuildClip_Request\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x1c\n\x14\x62roadcast_session_id\x18\x02 \x01(\x06\x12\x15\n\rfirst_segment\x18\x03 \x01(\x05\x12\x14\n\x0cnum_segments\x18\x04 \x01(\x05\x12\x18\n\x10\x63lip_description\x18\x05 \x01(\t\"?\n\"CBroadcast_StartBuildClip_Response\x12\x19\n\x11\x62roadcast_clip_id\x18\x01 \x01(\x06\"B\n%CBroadcast_GetBuildClipStatus_Request\x12\x19\n\x11\x62roadcast_clip_id\x18\x01 \x01(\x06\"(\n&CBroadcast_GetBuildClipStatus_Response\"\xc2\x01\n!CBroadcast_SetClipDetails_Request\x12&\n\x11\x62roadcast_clip_id\x18\x01 \x01(\x04\x42\x0b\x82\xb5\x18\x07\x43lip ID\x12.\n\nstart_time\x18\x02 \x01(\rB\x1a\x82\xb5\x18\x16start time of the clip\x12*\n\x08\x65nd_time\x18\x03 \x01(\rB\x18\x82\xb5\x18\x14\x65nd time of the clip\x12\x19\n\x11video_description\x18\x04 \x01(\t\"$\n\"CBroadcast_SetClipDetails_Response\"h\n!CBroadcast_GetClipDetails_Request\x12\x43\n\x11\x62roadcast_clip_id\x18\x01 \x01(\x04\x42(\x82\xb5\x18$List of clip IDs we want details for\"\xcf\x04\n\"CBroadcast_GetClipDetails_Response\x12\x30\n\x11\x62roadcast_clip_id\x18\x01 \x01(\x04\x42\x15\x82\xb5\x18\x11\x62roadcast clip ID\x12.\n\x08video_id\x18\x02 \x01(\x04\x42\x1c\x82\xb5\x18\x18matching unique video ID\x12,\n\nchannel_id\x18\x03 \x01(\x04\x42\x18\x82\xb5\x18\x14\x42roadcast Channel ID\x12\x30\n\x06\x61pp_id\x18\x04 \x01(\rB \x82\xb5\x18\x1c\x41pp ID stream is tagged with\x12<\n\x15\x61\x63\x63ountid_broadcaster\x18\x05 \x01(\rB\x1d\x82\xb5\x18\x19\x41\x63\x63ount ID of broadcaster\x12\x39\n\x13\x61\x63\x63ountid_clipmaker\x18\x06 \x01(\rB\x1c\x82\xb5\x18\x18\x41\x63\x63ount ID of clip-maker\x12\x45\n\x11video_description\x18\x07 \x01(\tB*\x82\xb5\x18&Short name or description of this clip\x12;\n\nstart_time\x18\x08 \x01(\rB\'\x82\xb5\x18#Wall time clip was broadcasted live\x12\x36\n\x13length_milliseconds\x18\t \x01(\rB\x19\x82\xb5\x18\x15length of video in MS\x12\x32\n\x0ethumbnail_path\x18\n \x01(\tB\x1a\x82\xb5\x18\x16Path for thumbnail URL\"\xc3\x04\n\x1e\x43\x42roadcast_SetRTMPInfo_Request\x12\x1c\n\x14\x62roadcast_permission\x18\x01 \x01(\x05\x12\x14\n\x0cupdate_token\x18\x02 \x01(\x08\x12\x17\n\x0f\x62roadcast_delay\x18\x03 \x01(\x05\x12\x0e\n\x06\x61pp_id\x18\x04 \x01(\r\x12\x17\n\x0frequired_app_id\x18\x05 \x01(\r\x12\x9c\x01\n\x19\x62roadcast_chat_permission\x18\x06 \x01(\x0e\x32\x19.EBroadcastChatPermission: k_EBroadcastChatPermissionPublicB<\x82\xb5\x18\x38Who is permitted to send a chat message during broadcast\x12N\n\x10\x62roadcast_buffer\x18\x07 \x01(\x05\x42\x34\x82\xb5\x18\x30Previous seconds we keep of the stream available\x12>\n\x07steamid\x18\x08 \x01(\x06\x42-\x82\xb5\x18)broadcaster steamID if not logged-in user\x12\x43\n\x0f\x63hat_rate_limit\x18\t \x01(\rB*\x82\xb5\x18&Seconds required between chat messages\x12\x37\n\renable_replay\x18\n \x01(\x08\x42 \x82\xb5\x18\x1c\x45nable replay of last upload\"!\n\x1f\x43\x42roadcast_SetRTMPInfo_Response\"l\n\x1e\x43\x42roadcast_GetRTMPInfo_Request\x12\n\n\x02ip\x18\x01 \x01(\r\x12>\n\x07steamid\x18\x02 \x01(\x06\x42-\x82\xb5\x18)broadcaster steamID if not logged-in user\"\xb0\x04\n\x1f\x43\x42roadcast_GetRTMPInfo_Response\x12\x1c\n\x14\x62roadcast_permission\x18\x01 \x01(\x05\x12\x11\n\trtmp_host\x18\x02 \x01(\t\x12\x12\n\nrtmp_token\x18\x03 \x01(\t\x12\x17\n\x0f\x62roadcast_delay\x18\x04 \x01(\x05\x12\x0e\n\x06\x61pp_id\x18\x05 \x01(\r\x12\x17\n\x0frequired_app_id\x18\x06 \x01(\r\x12\x9c\x01\n\x19\x62roadcast_chat_permission\x18\x07 \x01(\x0e\x32\x19.EBroadcastChatPermission: k_EBroadcastChatPermissionPublicB<\x82\xb5\x18\x38Who is permitted to send a chat message during broadcast\x12?\n\x10\x62roadcast_buffer\x18\x08 \x01(\x05\x42%\x82\xb5\x18!Seconds we keep streams available\x12(\n\x07steamid\x18\t \x01(\x06\x42\x17\x82\xb5\x18\x13\x62roadcaster steamID\x12\x43\n\x0f\x63hat_rate_limit\x18\n \x01(\rB*\x82\xb5\x18&Seconds required between chat messages\x12\x37\n\renable_replay\x18\x0b \x01(\x08\x42 \x82\xb5\x18\x1c\x45nable replay of last upload\"a\n,CBroadcast_WebRTCHaveTURNServer_Notification\x12\x1c\n\x14\x62roadcast_session_id\x18\x01 \x01(\x06\x12\x13\n\x0bturn_server\x18\x02 \x01(\t\"\x9a\x01\n$CBroadcast_WebRTCStartResult_Request\x12\x19\n\x11webrtc_session_id\x18\x01 \x01(\x06\x12\x0f\n\x07started\x18\x02 \x01(\x08\x12\r\n\x05offer\x18\x03 \x01(\t\x12\x14\n\x0cresolution_x\x18\x04 \x01(\r\x12\x14\n\x0cresolution_y\x18\x05 \x01(\r\x12\x0b\n\x03\x66ps\x18\x06 \x01(\r\"\'\n%CBroadcast_WebRTCStartResult_Response\"=\n CBroadcast_WebRTCStopped_Request\x12\x19\n\x11webrtc_session_id\x18\x01 \x01(\x06\"#\n!CBroadcast_WebRTCStopped_Response\"l\n\"CBroadcast_WebRTCSetAnswer_Request\x12\x1b\n\x13\x62roadcaster_steamid\x18\x01 \x01(\x06\x12\x19\n\x11webrtc_session_id\x18\x02 \x01(\x06\x12\x0e\n\x06\x61nswer\x18\x03 \x01(\t\"%\n#CBroadcast_WebRTCSetAnswer_Response\";\n)CBroadcast_WebRTCLookupTURNServer_Request\x12\x0e\n\x06\x63\x65llid\x18\x01 \x01(\r\"A\n*CBroadcast_WebRTCLookupTURNServer_Response\x12\x13\n\x0bturn_server\x18\x01 \x01(\t\"Z\n\x1b\x43\x42roadcast_WebRTC_Candidate\x12\x0f\n\x07sdp_mid\x18\x01 \x01(\t\x12\x17\n\x0fsdp_mline_index\x18\x02 \x01(\x05\x12\x11\n\tcandidate\x18\x03 \x01(\t\"w\n)CBroadcast_WebRTCAddHostCandidate_Request\x12\x19\n\x11webrtc_session_id\x18\x01 \x01(\x06\x12/\n\tcandidate\x18\x02 \x01(\x0b\x32\x1c.CBroadcast_WebRTC_Candidate\",\n*CBroadcast_WebRTCAddHostCandidate_Response\"\x96\x01\n+CBroadcast_WebRTCAddViewerCandidate_Request\x12\x1b\n\x13\x62roadcaster_steamid\x18\x01 \x01(\x06\x12\x19\n\x11webrtc_session_id\x18\x02 \x01(\x06\x12/\n\tcandidate\x18\x03 \x01(\x0b\x32\x1c.CBroadcast_WebRTC_Candidate\".\n,CBroadcast_WebRTCAddViewerCandidate_Response\"\x82\x01\n*CBroadcast_WebRTCGetHostCandidates_Request\x12\x1b\n\x13\x62roadcaster_steamid\x18\x01 \x01(\x06\x12\x19\n\x11webrtc_session_id\x18\x02 \x01(\x06\x12\x1c\n\x14\x63\x61ndidate_generation\x18\x03 \x01(\r\"}\n+CBroadcast_WebRTCGetHostCandidates_Response\x12\x1c\n\x14\x63\x61ndidate_generation\x18\x01 \x01(\r\x12\x30\n\ncandidates\x18\x02 \x03(\x0b\x32\x1c.CBroadcast_WebRTC_Candidate\"\xa4\x03\n*CBroadcast_GetBroadcastUploadStats_Request\x12:\n\trow_limit\x18\x01 \x01(\r:\x03\x31\x30\x30\x42\"\x82\xb5\x18\x1eHow many at maximum to return.\x12%\n\nstart_time\x18\x02 \x01(\r:\x01\x30\x42\x0e\x82\xb5\x18\nStart time\x12P\n\tupload_id\x18\x03 \x01(\x04\x42=\x82\xb5\x18\x39Optional relay upload ID - not compatible with session_id\x12i\n\x07steamid\x18\x04 \x01(\x06\x42X\x82\xb5\x18TOptional the steamid whose stats you want, otherwise the user logged in - admin only\x12V\n\nsession_id\x18\x05 \x01(\x04\x42\x42\x82\xb5\x18>Optional broadcast session ID - not compatiable with upload_id\"\x89\t\n+CBroadcast_GetBroadcastUploadStats_Response\x12N\n\x0cupload_stats\x18\x01 \x03(\x0b\x32\x38.CBroadcast_GetBroadcastUploadStats_Response.UploadStats\x1a\x89\x08\n\x0bUploadStats\x12\x1b\n\rupload_result\x18\x01 \x01(\rB\x04\x82\xb5\x18\x00\x12\x37\n\x0ctime_stopped\x18\x02 \x01(\rB!\x82\xb5\x18\x1dtime broadcast upload stopped\x12\x36\n\x10seconds_uploaded\x18\x03 \x01(\rB\x1c\x82\xb5\x18\x18seconds of vido uploaded\x12/\n\x0bmax_viewers\x18\x04 \x01(\rB\x1a\x82\xb5\x18\x16max concurrent viewers\x12.\n\x0cresolution_x\x18\x05 \x01(\rB\x18\x82\xb5\x18\x14horizontal resultion\x12,\n\x0cresolution_y\x18\x06 \x01(\rB\x16\x82\xb5\x18\x12vertical resultion\x12\x1b\n\ravg_bandwidth\x18\x07 \x01(\rB\x04\x82\xb5\x18\x00\x12;\n\x0btotal_bytes\x18\x08 \x01(\x04\x42&\x82\xb5\x18\"total byte uploaded by broadcaster\x12$\n\x06\x61pp_id\x18\t \x01(\rB\x14\x82\xb5\x18\x10game broadcasted\x12;\n\x14total_unique_viewers\x18\n \x01(\rB\x1d\x82\xb5\x18\x19total unique viewers seen\x12Q\n\x15total_seconds_watched\x18\x0b \x01(\x04\x42\x32\x82\xb5\x18.total number of seconds watched by all viewers\x12\x37\n\x0ctime_started\x18\x0c \x01(\rB!\x82\xb5\x18\x1dtime broadcast upload started\x12\x30\n\tupload_id\x18\r \x01(\x04\x42\x1d\x82\xb5\x18\x19\x62roadcast relay upload id\x12\x33\n\rlocal_address\x18\x0e \x01(\tB\x1c\x82\xb5\x18\x18upload to server address\x12\x36\n\x0eremote_address\x18\x0f \x01(\tB\x1e\x82\xb5\x18\x1aupload from client address\x12\x30\n\x11\x66rames_per_second\x18\x10 \x01(\rB\x15\x82\xb5\x18\x11\x66rames per second\x12?\n\x13num_representations\x18\x11 \x01(\rB\"\x82\xb5\x18\x1enumber of video represetations\x12\x1f\n\x08\x61pp_name\x18\x12 \x01(\tB\r\x82\xb5\x18\tgame name\x12\x33\n\tis_replay\x18\x13 \x01(\x08\x42 \x82\xb5\x18\x1creplay of previous recording\x12,\n\nsession_id\x18\x14 \x01(\x04\x42\x18\x82\xb5\x18\x14\x62roadcast session id\"\xbd\x01\n*CBroadcast_GetBroadcastViewerStats_Request\x12\x30\n\tupload_id\x18\x01 \x01(\x04\x42\x1d\x82\xb5\x18\x19Get stats for this stream\x12]\n\x07steamid\x18\x02 \x01(\x06\x42L\x82\xb5\x18HOptional: The steamid of the broadcast whose details you are requesting.\"\x98\x03\n+CBroadcast_GetBroadcastViewerStats_Response\x12N\n\x0cviewer_stats\x18\x01 \x03(\x0b\x32\x38.CBroadcast_GetBroadcastViewerStats_Response.ViewerStats\x12P\n\rcountry_stats\x18\x02 \x03(\x0b\x32\x39.CBroadcast_GetBroadcastViewerStats_Response.CountryStats\x1a\x63\n\x0bViewerStats\x12 \n\x04time\x18\x01 \x01(\rB\x12\x82\xb5\x18\x0etime of record\x12\x32\n\x0bnum_viewers\x18\x02 \x01(\rB\x1d\x82\xb5\x18\x19\x63urrent number of viewers\x1a\x62\n\x0c\x43ountryStats\x12&\n\x0c\x63ountry_code\x18\x01 \x01(\tB\x10\x82\xb5\x18\x0c\x63ountry code\x12*\n\x0bnum_viewers\x18\x02 \x01(\rB\x15\x82\xb5\x18\x11number of viewers\"\xf8\x01\n,CBroadcast_BroadcastViewerState_Notification\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x61\n\x05state\x18\x02 \x01(\x0e\x32:.CBroadcast_BroadcastViewerState_Notification.EViewerState:\x16k_EViewerNeedsApproval\"T\n\x0c\x45ViewerState\x12\x1a\n\x16k_EViewerNeedsApproval\x10\x01\x12\x15\n\x11k_EViewerWatching\x10\x02\x12\x11\n\rk_EViewerLeft\x10\x03\"F\n.CBroadcast_WaitingBroadcastViewer_Notification\x12\x14\n\x0c\x62roadcast_id\x18\x01 \x01(\x06\"\x8d\x02\n.CBroadcast_BroadcastUploadStarted_Notification\x12\x14\n\x0c\x62roadcast_id\x18\x01 \x01(\x06\x12\x14\n\x0cupload_token\x18\x02 \x01(\t\x12\x16\n\x0eupload_address\x18\x03 \x01(\t\x12\x14\n\x0chttp_address\x18\x04 \x01(\t\x12\x1b\n\x13\x62roadcast_upload_id\x18\x05 \x01(\x06\x12S\n\x1aheartbeat_interval_seconds\x18\x06 \x01(\rB/\x82\xb5\x18+how many seconds between session heartbeats\x12\x0f\n\x07is_rtmp\x18\x07 \x01(\x08\"\x95\x01\n+CBroadcast_StopBroadcastUpload_Notification\x12\x14\n\x0c\x62roadcast_id\x18\x01 \x01(\x06\x12\x1a\n\x12\x62roadcast_relay_id\x18\x02 \x01(\x06\x12\x15\n\rupload_result\x18\x03 \x01(\r\x12\x1d\n\x15too_many_poor_uploads\x18\x04 \x01(\x08\"=\n%CBroadcast_SessionClosed_Notification\x12\x14\n\x0c\x62roadcast_id\x18\x01 \x01(\x06\"L\n-CBroadcast_ViewerBroadcastInvite_Notification\x12\x1b\n\x13\x62roadcaster_steamid\x18\x01 \x01(\x06\"T\n\'CBroadcast_BroadcastStatus_Notification\x12\x14\n\x0c\x62roadcast_id\x18\x01 \x01(\x06\x12\x13\n\x0bnum_viewers\x18\x02 \x01(\x05\"\x8e\x01\n,CBroadcast_BroadcastChannelLive_Notification\x12\x1c\n\x14\x62roadcast_channel_id\x18\x01 \x01(\x06\x12\x1e\n\x16\x62roadcast_channel_name\x18\x02 \x01(\t\x12 \n\x18\x62roadcast_channel_avatar\x18\x03 \x01(\t\"\xc1\x01\n,CBroadcast_SendThumbnailToRelay_Notification\x12\x1e\n\x16thumbnail_upload_token\x18\x01 \x01(\t\x12&\n\x1ethumbnail_broadcast_session_id\x18\x02 \x01(\x06\x12\x16\n\x0ethumbnail_data\x18\x03 \x01(\x0c\x12\x17\n\x0fthumbnail_width\x18\x04 \x01(\r\x12\x18\n\x10thumbnail_height\x18\x05 \x01(\r\"L\n,CBroadcast_WebRTCNeedTURNServer_Notification\x12\x1c\n\x14\x62roadcast_session_id\x18\x01 \x01(\x06\"\x8c\x01\n#CBroadcast_WebRTCStart_Notification\x12\x1c\n\x14\x62roadcast_session_id\x18\x01 \x01(\x06\x12\x19\n\x11webrtc_session_id\x18\x02 \x01(\x06\x12\x16\n\x0eviewer_steamid\x18\x03 \x01(\x06\x12\x14\n\x0cviewer_token\x18\x04 \x01(\x06\"r\n\'CBroadcast_WebRTCSetAnswer_Notification\x12\x1c\n\x14\x62roadcast_session_id\x18\x01 \x01(\x06\x12\x19\n\x11webrtc_session_id\x18\x02 \x01(\x06\x12\x0e\n\x06\x61nswer\x18\x03 \x01(\t\"\x9c\x01\n0CBroadcast_WebRTCAddViewerCandidate_Notification\x12\x1c\n\x14\x62roadcast_session_id\x18\x01 \x01(\x06\x12\x19\n\x11webrtc_session_id\x18\x02 \x01(\x06\x12/\n\tcandidate\x18\x03 \x01(\x0b\x32\x1c.CBroadcast_WebRTC_Candidate*\xf5\x04\n\x17\x45\x42roadcastWatchLocation\x12%\n!k_EBroadcastWatchLocation_Invalid\x10\x00\x12)\n%k_EBroadcastWatchLocation_SteamTV_Tab\x10\x01\x12\x30\n,k_EBroadcastWatchLocation_SteamTV_WatchParty\x10\x02\x12&\n\"k_EBroadcastWatchLocation_Chat_Tab\x10\x03\x12-\n)k_EBroadcastWatchLocation_Chat_WatchParty\x10\x04\x12+\n\'k_EBroadcastWatchLocation_CommunityPage\x10\x05\x12*\n&k_EBroadcastWatchLocation_StoreAppPage\x10\x06\x12$\n k_EBroadcastWatchLocation_InGame\x10\x07\x12(\n$k_EBroadcastWatchLocation_BigPicture\x10\x08\x12\'\n#k_EBroadcastWatchLocation_SalesPage\x10\t\x12)\n%k_EBroadcastWatchLocation_CuratorPage\x10\n\x12+\n\'k_EBroadcastWatchLocation_DeveloperPage\x10\x0b\x12*\n&k_EBroadcastWatchLocation_Chat_Friends\x10\x0c\x12)\n%k_EBroadcastWatchLocation_SteamTV_Web\x10\r*g\n\x18\x45\x42roadcastChatPermission\x12$\n k_EBroadcastChatPermissionPublic\x10\x00\x12%\n!k_EBroadcastChatPermissionOwnsApp\x10\x01\x32\x86+\n\tBroadcast\x12\xed\x01\n\x15\x42\x65ginBroadcastSession\x12).CBroadcast_BeginBroadcastSession_Request\x1a*.CBroadcast_BeginBroadcastSession_Response\"}\x82\xb5\x18yRequest from client to directory to begin a broadcast session. No data being sent to relay; just available for broadcast.\x12\xba\x01\n\x13\x45ndBroadcastSession\x12\'.CBroadcast_EndBroadcastSession_Request\x1a(.CBroadcast_EndBroadcastSession_Response\"P\x82\xb5\x18LRequest from client to stop a broadcast session. Any uploads will terminate.\x12\xac\x01\n\x14StartBroadcastUpload\x12(.CBroadcast_StartBroadcastUpload_Request\x1a).CBroadcast_StartBroadcastUpload_Response\"?\x82\xb5\x18;Request from client to begin sending video for a broadcast.\x12\x99\x01\n\x19NotifyBroadcastUploadStop\x12\x32.CBroadcast_NotifyBroadcastUploadStop_Notification\x1a\x0b.NoResponse\";\x82\xb5\x18\x37Tells directory that client stopped uploading broadcast\x12\x87\x01\n\x0eWatchBroadcast\x12\".CBroadcast_WatchBroadcast_Request\x1a#.CBroadcast_WatchBroadcast_Response\",\x82\xb5\x18(Request from viewer to watch a broadcast\x12\x81\x01\n\x12HeartbeatBroadcast\x12+.CBroadcast_HeartbeatBroadcast_Notification\x1a\x0b.NoResponse\"1\x82\xb5\x18-Notify directory that user is still watching.\x12\xc1\x01\n\x15StopWatchingBroadcast\x12..CBroadcast_StopWatchingBroadcast_Notification\x1a\x0b.NoResponse\"k\x82\xb5\x18gRequest to immediately stop watching a broadcast. Optional Method, if not called, viewer will time out.\x12\x96\x01\n\x12GetBroadcastStatus\x12&.CBroadcast_GetBroadcastStatus_Request\x1a\'.CBroadcast_GetBroadcastStatus_Response\"/\x82\xb5\x18+Request from viewer about broadcast details\x12\x97\x01\n\x15GetBroadcastThumbnail\x12).CBroadcast_GetBroadcastThumbnail_Request\x1a*.CBroadcast_GetBroadcastThumbnail_Response\"\'\x82\xb5\x18#Request thumbnail URL for broadcast\x12\xa2\x01\n\x11InviteToBroadcast\x12%.CBroadcast_InviteToBroadcast_Request\x1a&.CBroadcast_InviteToBroadcast_Response\">\x82\xb5\x18:Invites another steam user to watch the caller\'s broadcast\x12\xc8\x01\n\x1aSendBroadcastStateToServer\x12..CBroadcast_SendBroadcastStateToServer_Request\x1a/.CBroadcast_SendBroadcastStateToServer_Response\"I\x82\xb5\x18\x45Sends users current broadcast state (permissions, game) to the server\x12\xa2\x01\n\x1fNotifyBroadcastSessionHeartbeat\x12\x38.CBroadcast_NotifyBroadcastSessionHeartbeat_Notification\x1a\x0b.NoResponse\"8\x82\xb5\x18\x34Tells directory broadcast session is still available\x12\x94\x01\n\x14GetBroadcastChatInfo\x12(.CBroadcast_GetBroadcastChatInfo_Request\x1a).CBroadcast_GetBroadcastChatInfo_Response\"\'\x82\xb5\x18#Gets chat room info for a broadcast\x12\x8a\x01\n\x0fPostChatMessage\x12#.CBroadcast_PostChatMessage_Request\x1a$.CBroadcast_PostChatMessage_Response\",\x82\xb5\x18(Post chat message to specified chat room\x12\xab\x01\n\x16UpdateChatMessageFlair\x12*.CBroadcast_UpdateChatMessageFlair_Request\x1a+.CBroadcast_UpdateChatMessageFlair_Response\"8\x82\xb5\x18\x34Update chat message flair in the specified chat room\x12\x96\x01\n\x15MuteBroadcastChatUser\x12).CBroadcast_MuteBroadcastChatUser_Request\x1a*.CBroadcast_MuteBroadcastChatUser_Response\"&\x82\xb5\x18\"Mute a user in your broadcast chat\x12\x94\x01\n\x12RemoveUserChatText\x12&.CBroadcast_RemoveUserChatText_Request\x1a\'.CBroadcast_RemoveUserChatText_Response\"-\x82\xb5\x18)Tell all viewers to remove user chat text\x12\xa3\x01\n\x19GetBroadcastChatUserNames\x12-.CBroadcast_GetBroadcastChatUserNames_Request\x1a..CBroadcast_GetBroadcastChatUserNames_Response\"\'\x82\xb5\x18#Get names for list of users in chat\x12~\n\x0eStartBuildClip\x12\".CBroadcast_StartBuildClip_Request\x1a#.CBroadcast_StartBuildClip_Response\"#\x82\xb5\x18\x1fStart building a broadcast clip\x12\x8a\x01\n\x12GetBuildClipStatus\x12&.CBroadcast_GetBuildClipStatus_Request\x1a\'.CBroadcast_GetBuildClipStatus_Response\"#\x82\xb5\x18\x1fStart building a broadcast clip\x12w\n\x0eSetClipDetails\x12\".CBroadcast_SetClipDetails_Request\x1a#.CBroadcast_SetClipDetails_Response\"\x1c\x82\xb5\x18\x18Updates a broadcast clip\x12~\n\x0eGetClipDetails\x12\".CBroadcast_GetClipDetails_Request\x1a#.CBroadcast_GetClipDetails_Response\"#\x82\xb5\x18\x1fGet details for Broadcast Clips\x12n\n\x0bSetRTMPInfo\x12\x1f.CBroadcast_SetRTMPInfo_Request\x1a .CBroadcast_SetRTMPInfo_Response\"\x1c\x82\xb5\x18\x18Sets RTMP broadcast info\x12n\n\x0bGetRTMPInfo\x12\x1f.CBroadcast_GetRTMPInfo_Request\x1a .CBroadcast_GetRTMPInfo_Response\"\x1c\x82\xb5\x18\x18Gets RTMP broadcast info\x12\x9e\x01\n\x1aNotifyWebRTCHaveTURNServer\x12-.CBroadcast_WebRTCHaveTURNServer_Notification\x1a\x0b.NoResponse\"D\x82\xb5\x18@Notification from client to server with the client\'s TURN server\x12\xac\x01\n\x11WebRTCStartResult\x12%.CBroadcast_WebRTCStartResult_Request\x1a&.CBroadcast_WebRTCStartResult_Response\"H\x82\xb5\x18\x44Notify the server that a WebRTC session has been created by the host\x12\xa0\x01\n\rWebRTCStopped\x12!.CBroadcast_WebRTCStopped_Request\x1a\".CBroadcast_WebRTCStopped_Response\"H\x82\xb5\x18\x44Notify the server that a WebRTC session has been stopped by the host\x12\xa8\x01\n\x0fWebRTCSetAnswer\x12#.CBroadcast_WebRTCSetAnswer_Request\x1a$.CBroadcast_WebRTCSetAnswer_Response\"J\x82\xb5\x18\x46Notify the server that a WebRTC session has been created by the viewer\x12\xa2\x01\n\x16WebRTCLookupTURNServer\x12*.CBroadcast_WebRTCLookupTURNServer_Request\x1a+.CBroadcast_WebRTCLookupTURNServer_Response\"/\x82\xb5\x18+Lookup the best TURN server for this client\x12\xb1\x01\n\x16WebRTCAddHostCandidate\x12*.CBroadcast_WebRTCAddHostCandidate_Request\x1a+.CBroadcast_WebRTCAddHostCandidate_Response\">\x82\xb5\x18:Add an ICE candidate for the host side of a WebRTC session\x12\xb9\x01\n\x18WebRTCAddViewerCandidate\x12,.CBroadcast_WebRTCAddViewerCandidate_Request\x1a-.CBroadcast_WebRTCAddViewerCandidate_Response\"@\x82\xb5\x18<Add an ICE candidate for the viewer side of a WebRTC session\x12\xb6\x01\n\x17WebRTCGetHostCandidates\x12+.CBroadcast_WebRTCGetHostCandidates_Request\x1a,.CBroadcast_WebRTCGetHostCandidates_Response\"@\x82\xb5\x18<Get the ICE candidates for the host side of a WebRTC session\x12\x9e\x01\n\x17GetBroadcastUploadStats\x12+.CBroadcast_GetBroadcastUploadStats_Request\x1a,.CBroadcast_GetBroadcastUploadStats_Response\"(\x82\xb5\x18$Gets broadcast upload stats for user\x12\x9f\x01\n\x17GetBroadcastViewerStats\x12+.CBroadcast_GetBroadcastViewerStats_Request\x1a,.CBroadcast_GetBroadcastViewerStats_Response\")\x82\xb5\x18%Gets viewer stats for given broadcast\x1a*\x82\xb5\x18&Methods for Steam broadcast operations2\xc4\x11\n\x0f\x42roadcastClient\x12\xa1\x01\n\x1aNotifyBroadcastViewerState\x12-.CBroadcast_BroadcastViewerState_Notification\x1a\x0b.NoResponse\"G\x82\xb5\x18\x43Notification from server to client that a viewers state has changed\x12\xbd\x01\n\x1cNotifyWaitingBroadcastViewer\x12/.CBroadcast_WaitingBroadcastViewer_Notification\x1a\x0b.NoResponse\"_\x82\xb5\x18[Notification from server to client one or more users is waiting for user to start broadcast\x12\xa7\x01\n\x1cNotifyBroadcastUploadStarted\x12/.CBroadcast_BroadcastUploadStarted_Notification\x1a\x0b.NoResponse\"I\x82\xb5\x18\x45Notification from server to client with information about a broadcast\x12\xd6\x01\n\x19NotifyStopBroadcastUpload\x12,.CBroadcast_StopBroadcastUpload_Notification\x1a\x0b.NoResponse\"~\x82\xb5\x18zNotification from server to client telling it to stop uploading when the last viewer has disconnected from their broadcast\x12\xb5\x01\n\x13NotifySessionClosed\x12&.CBroadcast_SessionClosed_Notification\x1a\x0b.NoResponse\"i\x82\xb5\x18\x65Notification from server to client telling it a session has been closed unexpectedly by the directory\x12\xc3\x01\n\x1bNotifyViewerBroadcastInvite\x12..CBroadcast_ViewerBroadcastInvite_Notification\x1a\x0b.NoResponse\"g\x82\xb5\x18\x63Notification from server to client that a broadcaster is inviting a viewer to watch their broadcast\x12\x95\x01\n\x15NotifyBroadcastStatus\x12(.CBroadcast_BroadcastStatus_Notification\x1a\x0b.NoResponse\"E\x82\xb5\x18\x41Notification from server to client about current broadcast status\x12\x9f\x01\n\x1aNotifyBroadcastChannelLive\x12-.CBroadcast_BroadcastChannelLive_Notification\x1a\x0b.NoResponse\"E\x82\xb5\x18\x41Notification from server to client about current broadcast status\x12p\n\x14SendThumbnailToRelay\x12-.CBroadcast_SendThumbnailToRelay_Notification\x1a\x0b.NoResponse\"\x1c\x82\xb5\x18\x18Send thumbnails to relay\x12\xa7\x01\n\x1aNotifyWebRTCNeedTURNServer\x12-.CBroadcast_WebRTCNeedTURNServer_Notification\x1a\x0b.NoResponse\"M\x82\xb5\x18INotification from server to client that it needs the client\'s TURN server\x12\x94\x01\n\x11NotifyWebRTCStart\x12$.CBroadcast_WebRTCStart_Notification\x1a\x0b.NoResponse\"L\x82\xb5\x18HNotification from server to client that it should start a WebRTC session\x12\x9f\x01\n\x15NotifyWebRTCSetAnswer\x12(.CBroadcast_WebRTCSetAnswer_Notification\x1a\x0b.NoResponse\"O\x82\xb5\x18KNotification from server to client about the broadcast viewer WebRTC answer\x12\xb6\x01\n\x1eNotifyWebRTCAddViewerCandidate\x12\x31.CBroadcast_WebRTCAddViewerCandidate_Notification\x1a\x0b.NoResponse\"T\x82\xb5\x18PNotification from server to client about a broadcast viewer WebRTC ICE candidate\x1a\x04\xc0\xb5\x18\x02\x42\x03\x90\x01\x01')
+  serialized_pb=_b('\n\x1dsteammessages_broadcast.proto\x1a steammessages_unified_base.proto\"\xf1\x01\n(CBroadcast_BeginBroadcastSession_Request\x12\x12\n\npermission\x18\x01 \x01(\x05\x12\x0e\n\x06gameid\x18\x02 \x01(\x04\x12\x1a\n\x12\x63lient_instance_id\x18\x03 \x01(\x04\x12\r\n\x05title\x18\x04 \x01(\t\x12\x0e\n\x06\x63\x65llid\x18\x05 \x01(\r\x12\x12\n\nrtmp_token\x18\x06 \x01(\x04\x12\x18\n\x10thumbnail_upload\x18\x07 \x01(\x08\x12\x13\n\x0b\x63lient_beta\x18\x08 \x01(\t\x12\r\n\x05sysid\x18\t \x01(\r\x12\x14\n\x0c\x61llow_webrtc\x18\n \x01(\x08\"\x9c\x03\n)CBroadcast_BeginBroadcastSession_Response\x12\x14\n\x0c\x62roadcast_id\x18\x01 \x01(\x06\x12P\n\x18thumbnail_upload_address\x18\x02 \x01(\tB.\x82\xb5\x18*Http address to upload the thumbnail data.\x12\x65\n\x16thumbnail_upload_token\x18\x03 \x01(\tBE\x82\xb5\x18\x41token to authorize as broadcaster to upload content to the relay.\x12K\n\x1athumbnail_interval_seconds\x18\x04 \x01(\rB\'\x82\xb5\x18#how many seconds between thumbnails\x12S\n\x1aheartbeat_interval_seconds\x18\x05 \x01(\rB/\x82\xb5\x18+how many seconds between session heartbeats\">\n&CBroadcast_EndBroadcastSession_Request\x12\x14\n\x0c\x62roadcast_id\x18\x01 \x01(\x06\")\n\'CBroadcast_EndBroadcastSession_Response\"\x88\x02\n\'CBroadcast_StartBroadcastUpload_Request\x12\x14\n\x0c\x62roadcast_id\x18\x01 \x01(\x06\x12\x0e\n\x06\x63\x65llid\x18\x02 \x01(\r\x12\x0f\n\x07\x61s_rtmp\x18\x03 \x01(\x08\x12\x15\n\rdelay_seconds\x18\x04 \x01(\r\x12R\n\nrtmp_token\x18\x05 \x01(\x04:\x01\x30\x42;\x82\xb5\x18\x37Only set during RTMP uploads; secret key from the user.\x12\x19\n\x11upload_ip_address\x18\x06 \x01(\r\x12\x11\n\tis_replay\x18\x07 \x01(\x08\x12\r\n\x05sysid\x18\x08 \x01(\r\"\xa2\x01\n(CBroadcast_StartBroadcastUpload_Response\x12\x14\n\x0cupload_token\x18\x01 \x01(\t\x12\x16\n\x0eupload_address\x18\x02 \x01(\t\x12\x1b\n\x13\x62roadcast_upload_id\x18\x03 \x01(\x06\x12\x15\n\renable_replay\x18\x06 \x01(\x08\x12\x14\n\x0chttp_address\x18\x07 \x01(\t\"g\n1CBroadcast_NotifyBroadcastUploadStop_Notification\x12\x1b\n\x13\x62roadcast_upload_id\x18\x01 \x01(\x06\x12\x15\n\rupload_result\x18\x02 \x01(\r\"\x89\x03\n!CBroadcast_WatchBroadcast_Request\x12)\n\x07steamid\x18\x01 \x01(\x06\x42\x18\x82\xb5\x18\x14\x62roadcaster steamID.\x12X\n\x15\x65xisting_broadcast_id\x18\x02 \x01(\x06\x42\x39\x82\xb5\x18\x35\x62roadcast session ID (optional, rejoin if specified).\x12\x62\n\x0cviewer_token\x18\x03 \x01(\x06\x42L\x82\xb5\x18Hviewer token received from last WatchRequest call, from browser storage.\x12\x13\n\x0b\x63lient_cell\x18\x05 \x01(\r\x12S\n\x0ewatch_location\x18\x06 \x01(\x0e\x32\x18.EBroadcastWatchLocation:!k_EBroadcastWatchLocation_Invalid\x12\x11\n\tis_webrtc\x18\x07 \x01(\x08\"\xfa\x07\n\"CBroadcast_WatchBroadcast_Response\x12[\n\x08response\x18\x01 \x01(\x0e\x32\x32.CBroadcast_WatchBroadcast_Response.EWatchResponse:\x15k_EWatchResponseReady\x12\x0f\n\x07mpd_url\x18\x02 \x01(\t\x12\x14\n\x0c\x62roadcast_id\x18\x03 \x01(\x06\x12\x0e\n\x06gameid\x18\x04 \x01(\x04\x12\r\n\x05title\x18\x05 \x01(\t\x12\x13\n\x0bnum_viewers\x18\x06 \x01(\r\x12\x12\n\npermission\x18\x07 \x01(\x05\x12\x0f\n\x07is_rtmp\x18\x08 \x01(\x08\x12\x15\n\rseconds_delay\x18\t \x01(\x05\x12\x14\n\x0cviewer_token\x18\n \x01(\x06\x12\x1b\n\x13hls_m3u8_master_url\x18\x0b \x01(\t\x12\x1a\n\x12heartbeat_interval\x18\x0c \x01(\x05\x12\x15\n\rthumbnail_url\x18\r \x01(\t\x12\x11\n\tis_webrtc\x18\x0e \x01(\x08\x12\x19\n\x11webrtc_session_id\x18\x0f \x01(\x06\x12\x18\n\x10webrtc_offer_sdp\x18\x10 \x01(\t\x12\x1a\n\x12webrtc_turn_server\x18\x11 \x01(\t\x12\x11\n\tis_replay\x18\x12 \x01(\x08\x12\x10\n\x08\x64uration\x18\x13 \x01(\x05\x12\x1f\n\x17\x63\x64n_auth_url_parameters\x18\x14 \x01(\t\"\xcf\x03\n\x0e\x45WatchResponse\x12\x19\n\x15k_EWatchResponseReady\x10\x01\x12 \n\x1ck_EWatchResponseNotAvailable\x10\x02\x12&\n\"k_EWatchResponseWaitingForApproval\x10\x03\x12#\n\x1fk_EWatchResponseWaitingForStart\x10\x04\x12\"\n\x1ek_EWatchResponseInvalidSession\x10\x05\x12%\n!k_EWatchResponseTooManyBroadcasts\x10\x06\x12\'\n#k_EWatchResponseWaitingForReconnect\x10\x07\x12&\n\"k_EWatchResponseSystemNotSupported\x10\x08\x12\"\n\x1ek_EWatchResponseUserRestricted\x10\t\x12#\n\x1fk_EWatchResponseClientOutOfDate\x10\n\x12%\n!k_EWatchResponsePoorUploadQuality\x10\x0b\x12\'\n#k_EWatchResponseMissingSubscription\x10\x0c\"\xae\x02\n*CBroadcast_HeartbeatBroadcast_Notification\x12)\n\x07steamid\x18\x01 \x01(\x06\x42\x18\x82\xb5\x18\x14\x62roadcaster steamID.\x12/\n\x0c\x62roadcast_id\x18\x02 \x01(\x06\x42\x19\x82\xb5\x18\x15\x62roadcast session ID.\x12\x62\n\x0cviewer_token\x18\x03 \x01(\x06\x42L\x82\xb5\x18Hviewer token received from last WatchRequest call, from browser storage.\x12@\n\x0erepresentation\x18\x04 \x01(\rB(\x82\xb5\x18$video stream representation watching\"\xef\x01\n-CBroadcast_StopWatchingBroadcast_Notification\x12)\n\x07steamid\x18\x01 \x01(\x06\x42\x18\x82\xb5\x18\x14\x62roadcaster steamID.\x12/\n\x0c\x62roadcast_id\x18\x02 \x01(\x06\x42\x19\x82\xb5\x18\x15\x62roadcast session ID.\x12\x62\n\x0cviewer_token\x18\x03 \x01(\x06\x42L\x82\xb5\x18Hviewer token received from last WatchRequest call, from browser storage.\"\xb0\x01\n%CBroadcast_GetBroadcastStatus_Request\x12)\n\x07steamid\x18\x01 \x01(\x06\x42\x18\x82\xb5\x18\x14\x62roadcaster steamID.\x12\\\n\x0c\x62roadcast_id\x18\x02 \x01(\x06\x42\x46\x82\xb5\x18\x42\x62roadcast session ID to proof that user is allowed to see details.\"\xd1\x02\n&CBroadcast_GetBroadcastStatus_Response\x12\x0e\n\x06gameid\x18\x01 \x01(\x04\x12\r\n\x05title\x18\x02 \x01(\t\x12\x13\n\x0bnum_viewers\x18\x03 \x01(\r\x12\x12\n\npermission\x18\x04 \x01(\x05\x12\x0f\n\x07is_rtmp\x18\x05 \x01(\x08\x12\x15\n\rseconds_delay\x18\x06 \x01(\x05\x12\x14\n\x0cis_publisher\x18\x07 \x01(\x08\x12\x15\n\rthumbnail_url\x18\x08 \x01(\t\x12\x17\n\x0fupdate_interval\x18\t \x01(\x05\x12\x14\n\x0cis_uploading\x18\n \x01(\x08\x12\x10\n\x08\x64uration\x18\x0b \x01(\r\x12\x11\n\tis_replay\x18\x0c \x01(\x08\x12\x18\n\x10is_capturing_vod\x18\r \x01(\x08\x12\x1c\n\x14is_store_whitelisted\x18\x0e \x01(\x08\"Q\n(CBroadcast_GetBroadcastThumbnail_Request\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x14\n\x0c\x62roadcast_id\x18\x02 \x01(\x06\"\x82\x01\n)CBroadcast_GetBroadcastThumbnail_Response\x12\x15\n\rthumbnail_url\x18\x01 \x01(\t\x12\x17\n\x0fupdate_interval\x18\x02 \x01(\x05\x12\x13\n\x0bnum_viewers\x18\x03 \x01(\x05\x12\x10\n\x08\x64uration\x18\x04 \x01(\x05\"R\n$CBroadcast_InviteToBroadcast_Request\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x19\n\x11\x61pproval_response\x18\x02 \x01(\x08\"8\n%CBroadcast_InviteToBroadcast_Response\x12\x0f\n\x07success\x18\x01 \x01(\x08\"|\n-CBroadcast_SendBroadcastStateToServer_Request\x12\x12\n\npermission\x18\x01 \x01(\x05\x12\x0e\n\x06gameid\x18\x02 \x01(\x04\x12\r\n\x05title\x18\x03 \x01(\t\x12\x18\n\x10game_data_config\x18\x04 \x01(\t\"0\n.CBroadcast_SendBroadcastStateToServer_Response\"O\n7CBroadcast_NotifyBroadcastSessionHeartbeat_Notification\x12\x14\n\x0c\x62roadcast_id\x18\x01 \x01(\x06\"x\n\'CBroadcast_GetBroadcastChatInfo_Request\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x14\n\x0c\x62roadcast_id\x18\x02 \x01(\x06\x12\x11\n\tclient_ip\x18\x03 \x01(\r\x12\x13\n\x0b\x63lient_cell\x18\x04 \x01(\r\"o\n(CBroadcast_GetBroadcastChatInfo_Response\x12\x0f\n\x07\x63hat_id\x18\x01 \x01(\x06\x12\x19\n\x11view_url_template\x18\x03 \x01(\t\x12\x17\n\x0f\x66lair_group_ids\x18\x04 \x03(\r\"\xea\x01\n\"CBroadcast_PostChatMessage_Request\x12\x0f\n\x07\x63hat_id\x18\x01 \x01(\x06\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x13\n\x0binstance_id\x18\x03 \x01(\r\x12V\n\x08language\x18\x04 \x01(\r:\x01\x30\x42\x41\x82\xb5\x18=ELanguage of the user posting the message, default is english\x12\x35\n\x0c\x63ountry_code\x18\x05 \x01(\tB\x1f\x82\xb5\x18\x1bThe two letter country code\"{\n#CBroadcast_PostChatMessage_Response\x12\x14\n\x0cpersona_name\x18\x01 \x01(\t\x12\x0f\n\x07in_game\x18\x02 \x01(\x08\x12\x0e\n\x06result\x18\x03 \x01(\x05\x12\x1d\n\x15\x63ooldown_time_seconds\x18\x04 \x01(\x05\"K\n)CBroadcast_UpdateChatMessageFlair_Request\x12\x0f\n\x07\x63hat_id\x18\x01 \x01(\x06\x12\r\n\x05\x66lair\x18\x02 \x01(\t\"\\\n*CBroadcast_UpdateChatMessageFlair_Response\x12\x0e\n\x06result\x18\x01 \x01(\x05\x12\x0f\n\x07\x63hat_id\x18\x02 \x01(\x06\x12\r\n\x05\x66lair\x18\x03 \x01(\t\"`\n(CBroadcast_MuteBroadcastChatUser_Request\x12\x0f\n\x07\x63hat_id\x18\x01 \x01(\x06\x12\x14\n\x0cuser_steamid\x18\x02 \x01(\x06\x12\r\n\x05muted\x18\x03 \x01(\x08\"+\n)CBroadcast_MuteBroadcastChatUser_Response\"N\n%CBroadcast_RemoveUserChatText_Request\x12\x0f\n\x07\x63hat_id\x18\x01 \x01(\x06\x12\x14\n\x0cuser_steamid\x18\x02 \x01(\x06\"(\n&CBroadcast_RemoveUserChatText_Response\"U\n,CBroadcast_GetBroadcastChatUserNames_Request\x12\x0f\n\x07\x63hat_id\x18\x01 \x01(\x06\x12\x14\n\x0cuser_steamid\x18\x02 \x03(\x06\"\xb4\x01\n-CBroadcast_GetBroadcastChatUserNames_Response\x12Q\n\rpersona_names\x18\x01 \x03(\x0b\x32:.CBroadcast_GetBroadcastChatUserNames_Response.PersonaName\x1a\x30\n\x0bPersonaName\x12\x10\n\x08steam_id\x18\x01 \x01(\x06\x12\x0f\n\x07persona\x18\x02 \x01(\t\"\x99\x01\n!CBroadcast_StartBuildClip_Request\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x1c\n\x14\x62roadcast_session_id\x18\x02 \x01(\x06\x12\x15\n\rfirst_segment\x18\x03 \x01(\x05\x12\x14\n\x0cnum_segments\x18\x04 \x01(\x05\x12\x18\n\x10\x63lip_description\x18\x05 \x01(\t\"?\n\"CBroadcast_StartBuildClip_Response\x12\x19\n\x11\x62roadcast_clip_id\x18\x01 \x01(\x06\"B\n%CBroadcast_GetBuildClipStatus_Request\x12\x19\n\x11\x62roadcast_clip_id\x18\x01 \x01(\x06\"(\n&CBroadcast_GetBuildClipStatus_Response\"\xc2\x01\n!CBroadcast_SetClipDetails_Request\x12&\n\x11\x62roadcast_clip_id\x18\x01 \x01(\x04\x42\x0b\x82\xb5\x18\x07\x43lip ID\x12.\n\nstart_time\x18\x02 \x01(\rB\x1a\x82\xb5\x18\x16start time of the clip\x12*\n\x08\x65nd_time\x18\x03 \x01(\rB\x18\x82\xb5\x18\x14\x65nd time of the clip\x12\x19\n\x11video_description\x18\x04 \x01(\t\"$\n\"CBroadcast_SetClipDetails_Response\"h\n!CBroadcast_GetClipDetails_Request\x12\x43\n\x11\x62roadcast_clip_id\x18\x01 \x01(\x04\x42(\x82\xb5\x18$List of clip IDs we want details for\"\xcf\x04\n\"CBroadcast_GetClipDetails_Response\x12\x30\n\x11\x62roadcast_clip_id\x18\x01 \x01(\x04\x42\x15\x82\xb5\x18\x11\x62roadcast clip ID\x12.\n\x08video_id\x18\x02 \x01(\x04\x42\x1c\x82\xb5\x18\x18matching unique video ID\x12,\n\nchannel_id\x18\x03 \x01(\x04\x42\x18\x82\xb5\x18\x14\x42roadcast Channel ID\x12\x30\n\x06\x61pp_id\x18\x04 \x01(\rB \x82\xb5\x18\x1c\x41pp ID stream is tagged with\x12<\n\x15\x61\x63\x63ountid_broadcaster\x18\x05 \x01(\rB\x1d\x82\xb5\x18\x19\x41\x63\x63ount ID of broadcaster\x12\x39\n\x13\x61\x63\x63ountid_clipmaker\x18\x06 \x01(\rB\x1c\x82\xb5\x18\x18\x41\x63\x63ount ID of clip-maker\x12\x45\n\x11video_description\x18\x07 \x01(\tB*\x82\xb5\x18&Short name or description of this clip\x12;\n\nstart_time\x18\x08 \x01(\rB\'\x82\xb5\x18#Wall time clip was broadcasted live\x12\x36\n\x13length_milliseconds\x18\t \x01(\rB\x19\x82\xb5\x18\x15length of video in MS\x12\x32\n\x0ethumbnail_path\x18\n \x01(\tB\x1a\x82\xb5\x18\x16Path for thumbnail URL\"\xc3\x04\n\x1e\x43\x42roadcast_SetRTMPInfo_Request\x12\x1c\n\x14\x62roadcast_permission\x18\x01 \x01(\x05\x12\x14\n\x0cupdate_token\x18\x02 \x01(\x08\x12\x17\n\x0f\x62roadcast_delay\x18\x03 \x01(\x05\x12\x0e\n\x06\x61pp_id\x18\x04 \x01(\r\x12\x17\n\x0frequired_app_id\x18\x05 \x01(\r\x12\x9c\x01\n\x19\x62roadcast_chat_permission\x18\x06 \x01(\x0e\x32\x19.EBroadcastChatPermission: k_EBroadcastChatPermissionPublicB<\x82\xb5\x18\x38Who is permitted to send a chat message during broadcast\x12N\n\x10\x62roadcast_buffer\x18\x07 \x01(\x05\x42\x34\x82\xb5\x18\x30Previous seconds we keep of the stream available\x12>\n\x07steamid\x18\x08 \x01(\x06\x42-\x82\xb5\x18)broadcaster steamID if not logged-in user\x12\x43\n\x0f\x63hat_rate_limit\x18\t \x01(\rB*\x82\xb5\x18&Seconds required between chat messages\x12\x37\n\renable_replay\x18\n \x01(\x08\x42 \x82\xb5\x18\x1c\x45nable replay of last upload\"!\n\x1f\x43\x42roadcast_SetRTMPInfo_Response\"l\n\x1e\x43\x42roadcast_GetRTMPInfo_Request\x12\n\n\x02ip\x18\x01 \x01(\r\x12>\n\x07steamid\x18\x02 \x01(\x06\x42-\x82\xb5\x18)broadcaster steamID if not logged-in user\"\xb0\x04\n\x1f\x43\x42roadcast_GetRTMPInfo_Response\x12\x1c\n\x14\x62roadcast_permission\x18\x01 \x01(\x05\x12\x11\n\trtmp_host\x18\x02 \x01(\t\x12\x12\n\nrtmp_token\x18\x03 \x01(\t\x12\x17\n\x0f\x62roadcast_delay\x18\x04 \x01(\x05\x12\x0e\n\x06\x61pp_id\x18\x05 \x01(\r\x12\x17\n\x0frequired_app_id\x18\x06 \x01(\r\x12\x9c\x01\n\x19\x62roadcast_chat_permission\x18\x07 \x01(\x0e\x32\x19.EBroadcastChatPermission: k_EBroadcastChatPermissionPublicB<\x82\xb5\x18\x38Who is permitted to send a chat message during broadcast\x12?\n\x10\x62roadcast_buffer\x18\x08 \x01(\x05\x42%\x82\xb5\x18!Seconds we keep streams available\x12(\n\x07steamid\x18\t \x01(\x06\x42\x17\x82\xb5\x18\x13\x62roadcaster steamID\x12\x43\n\x0f\x63hat_rate_limit\x18\n \x01(\rB*\x82\xb5\x18&Seconds required between chat messages\x12\x37\n\renable_replay\x18\x0b \x01(\x08\x42 \x82\xb5\x18\x1c\x45nable replay of last upload\"a\n,CBroadcast_WebRTCHaveTURNServer_Notification\x12\x1c\n\x14\x62roadcast_session_id\x18\x01 \x01(\x06\x12\x13\n\x0bturn_server\x18\x02 \x01(\t\"\x9a\x01\n$CBroadcast_WebRTCStartResult_Request\x12\x19\n\x11webrtc_session_id\x18\x01 \x01(\x06\x12\x0f\n\x07started\x18\x02 \x01(\x08\x12\r\n\x05offer\x18\x03 \x01(\t\x12\x14\n\x0cresolution_x\x18\x04 \x01(\r\x12\x14\n\x0cresolution_y\x18\x05 \x01(\r\x12\x0b\n\x03\x66ps\x18\x06 \x01(\r\"\'\n%CBroadcast_WebRTCStartResult_Response\"=\n CBroadcast_WebRTCStopped_Request\x12\x19\n\x11webrtc_session_id\x18\x01 \x01(\x06\"#\n!CBroadcast_WebRTCStopped_Response\"l\n\"CBroadcast_WebRTCSetAnswer_Request\x12\x1b\n\x13\x62roadcaster_steamid\x18\x01 \x01(\x06\x12\x19\n\x11webrtc_session_id\x18\x02 \x01(\x06\x12\x0e\n\x06\x61nswer\x18\x03 \x01(\t\"%\n#CBroadcast_WebRTCSetAnswer_Response\";\n)CBroadcast_WebRTCLookupTURNServer_Request\x12\x0e\n\x06\x63\x65llid\x18\x01 \x01(\r\"A\n*CBroadcast_WebRTCLookupTURNServer_Response\x12\x13\n\x0bturn_server\x18\x01 \x01(\t\"Z\n\x1b\x43\x42roadcast_WebRTC_Candidate\x12\x0f\n\x07sdp_mid\x18\x01 \x01(\t\x12\x17\n\x0fsdp_mline_index\x18\x02 \x01(\x05\x12\x11\n\tcandidate\x18\x03 \x01(\t\"w\n)CBroadcast_WebRTCAddHostCandidate_Request\x12\x19\n\x11webrtc_session_id\x18\x01 \x01(\x06\x12/\n\tcandidate\x18\x02 \x01(\x0b\x32\x1c.CBroadcast_WebRTC_Candidate\",\n*CBroadcast_WebRTCAddHostCandidate_Response\"\x96\x01\n+CBroadcast_WebRTCAddViewerCandidate_Request\x12\x1b\n\x13\x62roadcaster_steamid\x18\x01 \x01(\x06\x12\x19\n\x11webrtc_session_id\x18\x02 \x01(\x06\x12/\n\tcandidate\x18\x03 \x01(\x0b\x32\x1c.CBroadcast_WebRTC_Candidate\".\n,CBroadcast_WebRTCAddViewerCandidate_Response\"\x82\x01\n*CBroadcast_WebRTCGetHostCandidates_Request\x12\x1b\n\x13\x62roadcaster_steamid\x18\x01 \x01(\x06\x12\x19\n\x11webrtc_session_id\x18\x02 \x01(\x06\x12\x1c\n\x14\x63\x61ndidate_generation\x18\x03 \x01(\r\"}\n+CBroadcast_WebRTCGetHostCandidates_Response\x12\x1c\n\x14\x63\x61ndidate_generation\x18\x01 \x01(\r\x12\x30\n\ncandidates\x18\x02 \x03(\x0b\x32\x1c.CBroadcast_WebRTC_Candidate\"\xa4\x03\n*CBroadcast_GetBroadcastUploadStats_Request\x12:\n\trow_limit\x18\x01 \x01(\r:\x03\x31\x30\x30\x42\"\x82\xb5\x18\x1eHow many at maximum to return.\x12%\n\nstart_time\x18\x02 \x01(\r:\x01\x30\x42\x0e\x82\xb5\x18\nStart time\x12P\n\tupload_id\x18\x03 \x01(\x04\x42=\x82\xb5\x18\x39Optional relay upload ID - not compatible with session_id\x12i\n\x07steamid\x18\x04 \x01(\x06\x42X\x82\xb5\x18TOptional the steamid whose stats you want, otherwise the user logged in - admin only\x12V\n\nsession_id\x18\x05 \x01(\x04\x42\x42\x82\xb5\x18>Optional broadcast session ID - not compatiable with upload_id\"\x89\t\n+CBroadcast_GetBroadcastUploadStats_Response\x12N\n\x0cupload_stats\x18\x01 \x03(\x0b\x32\x38.CBroadcast_GetBroadcastUploadStats_Response.UploadStats\x1a\x89\x08\n\x0bUploadStats\x12\x1b\n\rupload_result\x18\x01 \x01(\rB\x04\x82\xb5\x18\x00\x12\x37\n\x0ctime_stopped\x18\x02 \x01(\rB!\x82\xb5\x18\x1dtime broadcast upload stopped\x12\x36\n\x10seconds_uploaded\x18\x03 \x01(\rB\x1c\x82\xb5\x18\x18seconds of vido uploaded\x12/\n\x0bmax_viewers\x18\x04 \x01(\rB\x1a\x82\xb5\x18\x16max concurrent viewers\x12.\n\x0cresolution_x\x18\x05 \x01(\rB\x18\x82\xb5\x18\x14horizontal resultion\x12,\n\x0cresolution_y\x18\x06 \x01(\rB\x16\x82\xb5\x18\x12vertical resultion\x12\x1b\n\ravg_bandwidth\x18\x07 \x01(\rB\x04\x82\xb5\x18\x00\x12;\n\x0btotal_bytes\x18\x08 \x01(\x04\x42&\x82\xb5\x18\"total byte uploaded by broadcaster\x12$\n\x06\x61pp_id\x18\t \x01(\rB\x14\x82\xb5\x18\x10game broadcasted\x12;\n\x14total_unique_viewers\x18\n \x01(\rB\x1d\x82\xb5\x18\x19total unique viewers seen\x12Q\n\x15total_seconds_watched\x18\x0b \x01(\x04\x42\x32\x82\xb5\x18.total number of seconds watched by all viewers\x12\x37\n\x0ctime_started\x18\x0c \x01(\rB!\x82\xb5\x18\x1dtime broadcast upload started\x12\x30\n\tupload_id\x18\r \x01(\x04\x42\x1d\x82\xb5\x18\x19\x62roadcast relay upload id\x12\x33\n\rlocal_address\x18\x0e \x01(\tB\x1c\x82\xb5\x18\x18upload to server address\x12\x36\n\x0eremote_address\x18\x0f \x01(\tB\x1e\x82\xb5\x18\x1aupload from client address\x12\x30\n\x11\x66rames_per_second\x18\x10 \x01(\rB\x15\x82\xb5\x18\x11\x66rames per second\x12?\n\x13num_representations\x18\x11 \x01(\rB\"\x82\xb5\x18\x1enumber of video represetations\x12\x1f\n\x08\x61pp_name\x18\x12 \x01(\tB\r\x82\xb5\x18\tgame name\x12\x33\n\tis_replay\x18\x13 \x01(\x08\x42 \x82\xb5\x18\x1creplay of previous recording\x12,\n\nsession_id\x18\x14 \x01(\x04\x42\x18\x82\xb5\x18\x14\x62roadcast session id\"\xbd\x01\n*CBroadcast_GetBroadcastViewerStats_Request\x12\x30\n\tupload_id\x18\x01 \x01(\x04\x42\x1d\x82\xb5\x18\x19Get stats for this stream\x12]\n\x07steamid\x18\x02 \x01(\x06\x42L\x82\xb5\x18HOptional: The steamid of the broadcast whose details you are requesting.\"\x98\x03\n+CBroadcast_GetBroadcastViewerStats_Response\x12N\n\x0cviewer_stats\x18\x01 \x03(\x0b\x32\x38.CBroadcast_GetBroadcastViewerStats_Response.ViewerStats\x12P\n\rcountry_stats\x18\x02 \x03(\x0b\x32\x39.CBroadcast_GetBroadcastViewerStats_Response.CountryStats\x1a\x63\n\x0bViewerStats\x12 \n\x04time\x18\x01 \x01(\rB\x12\x82\xb5\x18\x0etime of record\x12\x32\n\x0bnum_viewers\x18\x02 \x01(\rB\x1d\x82\xb5\x18\x19\x63urrent number of viewers\x1a\x62\n\x0c\x43ountryStats\x12&\n\x0c\x63ountry_code\x18\x01 \x01(\tB\x10\x82\xb5\x18\x0c\x63ountry code\x12*\n\x0bnum_viewers\x18\x02 \x01(\rB\x15\x82\xb5\x18\x11number of viewers\"\xf8\x01\n,CBroadcast_BroadcastViewerState_Notification\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x61\n\x05state\x18\x02 \x01(\x0e\x32:.CBroadcast_BroadcastViewerState_Notification.EViewerState:\x16k_EViewerNeedsApproval\"T\n\x0c\x45ViewerState\x12\x1a\n\x16k_EViewerNeedsApproval\x10\x01\x12\x15\n\x11k_EViewerWatching\x10\x02\x12\x11\n\rk_EViewerLeft\x10\x03\"F\n.CBroadcast_WaitingBroadcastViewer_Notification\x12\x14\n\x0c\x62roadcast_id\x18\x01 \x01(\x06\"\x8d\x02\n.CBroadcast_BroadcastUploadStarted_Notification\x12\x14\n\x0c\x62roadcast_id\x18\x01 \x01(\x06\x12\x14\n\x0cupload_token\x18\x02 \x01(\t\x12\x16\n\x0eupload_address\x18\x03 \x01(\t\x12\x14\n\x0chttp_address\x18\x04 \x01(\t\x12\x1b\n\x13\x62roadcast_upload_id\x18\x05 \x01(\x06\x12S\n\x1aheartbeat_interval_seconds\x18\x06 \x01(\rB/\x82\xb5\x18+how many seconds between session heartbeats\x12\x0f\n\x07is_rtmp\x18\x07 \x01(\x08\"\x95\x01\n+CBroadcast_StopBroadcastUpload_Notification\x12\x14\n\x0c\x62roadcast_id\x18\x01 \x01(\x06\x12\x1a\n\x12\x62roadcast_relay_id\x18\x02 \x01(\x06\x12\x15\n\rupload_result\x18\x03 \x01(\r\x12\x1d\n\x15too_many_poor_uploads\x18\x04 \x01(\x08\"=\n%CBroadcast_SessionClosed_Notification\x12\x14\n\x0c\x62roadcast_id\x18\x01 \x01(\x06\"L\n-CBroadcast_ViewerBroadcastInvite_Notification\x12\x1b\n\x13\x62roadcaster_steamid\x18\x01 \x01(\x06\"T\n\'CBroadcast_BroadcastStatus_Notification\x12\x14\n\x0c\x62roadcast_id\x18\x01 \x01(\x06\x12\x13\n\x0bnum_viewers\x18\x02 \x01(\x05\"\x8e\x01\n,CBroadcast_BroadcastChannelLive_Notification\x12\x1c\n\x14\x62roadcast_channel_id\x18\x01 \x01(\x06\x12\x1e\n\x16\x62roadcast_channel_name\x18\x02 \x01(\t\x12 \n\x18\x62roadcast_channel_avatar\x18\x03 \x01(\t\"\xc1\x01\n,CBroadcast_SendThumbnailToRelay_Notification\x12\x1e\n\x16thumbnail_upload_token\x18\x01 \x01(\t\x12&\n\x1ethumbnail_broadcast_session_id\x18\x02 \x01(\x06\x12\x16\n\x0ethumbnail_data\x18\x03 \x01(\x0c\x12\x17\n\x0fthumbnail_width\x18\x04 \x01(\r\x12\x18\n\x10thumbnail_height\x18\x05 \x01(\r\"L\n,CBroadcast_WebRTCNeedTURNServer_Notification\x12\x1c\n\x14\x62roadcast_session_id\x18\x01 \x01(\x06\"\x8c\x01\n#CBroadcast_WebRTCStart_Notification\x12\x1c\n\x14\x62roadcast_session_id\x18\x01 \x01(\x06\x12\x19\n\x11webrtc_session_id\x18\x02 \x01(\x06\x12\x16\n\x0eviewer_steamid\x18\x03 \x01(\x06\x12\x14\n\x0cviewer_token\x18\x04 \x01(\x06\"r\n\'CBroadcast_WebRTCSetAnswer_Notification\x12\x1c\n\x14\x62roadcast_session_id\x18\x01 \x01(\x06\x12\x19\n\x11webrtc_session_id\x18\x02 \x01(\x06\x12\x0e\n\x06\x61nswer\x18\x03 \x01(\t\"\x9c\x01\n0CBroadcast_WebRTCAddViewerCandidate_Notification\x12\x1c\n\x14\x62roadcast_session_id\x18\x01 \x01(\x06\x12\x19\n\x11webrtc_session_id\x18\x02 \x01(\x06\x12/\n\tcandidate\x18\x03 \x01(\x0b\x32\x1c.CBroadcast_WebRTC_Candidate*\xf5\x04\n\x17\x45\x42roadcastWatchLocation\x12%\n!k_EBroadcastWatchLocation_Invalid\x10\x00\x12)\n%k_EBroadcastWatchLocation_SteamTV_Tab\x10\x01\x12\x30\n,k_EBroadcastWatchLocation_SteamTV_WatchParty\x10\x02\x12&\n\"k_EBroadcastWatchLocation_Chat_Tab\x10\x03\x12-\n)k_EBroadcastWatchLocation_Chat_WatchParty\x10\x04\x12+\n\'k_EBroadcastWatchLocation_CommunityPage\x10\x05\x12*\n&k_EBroadcastWatchLocation_StoreAppPage\x10\x06\x12$\n k_EBroadcastWatchLocation_InGame\x10\x07\x12(\n$k_EBroadcastWatchLocation_BigPicture\x10\x08\x12\'\n#k_EBroadcastWatchLocation_SalesPage\x10\t\x12)\n%k_EBroadcastWatchLocation_CuratorPage\x10\n\x12+\n\'k_EBroadcastWatchLocation_DeveloperPage\x10\x0b\x12*\n&k_EBroadcastWatchLocation_Chat_Friends\x10\x0c\x12)\n%k_EBroadcastWatchLocation_SteamTV_Web\x10\r*g\n\x18\x45\x42roadcastChatPermission\x12$\n k_EBroadcastChatPermissionPublic\x10\x00\x12%\n!k_EBroadcastChatPermissionOwnsApp\x10\x01\x32\x86+\n\tBroadcast\x12\xed\x01\n\x15\x42\x65ginBroadcastSession\x12).CBroadcast_BeginBroadcastSession_Request\x1a*.CBroadcast_BeginBroadcastSession_Response\"}\x82\xb5\x18yRequest from client to directory to begin a broadcast session. No data being sent to relay; just available for broadcast.\x12\xba\x01\n\x13\x45ndBroadcastSession\x12\'.CBroadcast_EndBroadcastSession_Request\x1a(.CBroadcast_EndBroadcastSession_Response\"P\x82\xb5\x18LRequest from client to stop a broadcast session. Any uploads will terminate.\x12\xac\x01\n\x14StartBroadcastUpload\x12(.CBroadcast_StartBroadcastUpload_Request\x1a).CBroadcast_StartBroadcastUpload_Response\"?\x82\xb5\x18;Request from client to begin sending video for a broadcast.\x12\x99\x01\n\x19NotifyBroadcastUploadStop\x12\x32.CBroadcast_NotifyBroadcastUploadStop_Notification\x1a\x0b.NoResponse\";\x82\xb5\x18\x37Tells directory that client stopped uploading broadcast\x12\x87\x01\n\x0eWatchBroadcast\x12\".CBroadcast_WatchBroadcast_Request\x1a#.CBroadcast_WatchBroadcast_Response\",\x82\xb5\x18(Request from viewer to watch a broadcast\x12\x81\x01\n\x12HeartbeatBroadcast\x12+.CBroadcast_HeartbeatBroadcast_Notification\x1a\x0b.NoResponse\"1\x82\xb5\x18-Notify directory that user is still watching.\x12\xc1\x01\n\x15StopWatchingBroadcast\x12..CBroadcast_StopWatchingBroadcast_Notification\x1a\x0b.NoResponse\"k\x82\xb5\x18gRequest to immediately stop watching a broadcast. Optional Method, if not called, viewer will time out.\x12\x96\x01\n\x12GetBroadcastStatus\x12&.CBroadcast_GetBroadcastStatus_Request\x1a\'.CBroadcast_GetBroadcastStatus_Response\"/\x82\xb5\x18+Request from viewer about broadcast details\x12\x97\x01\n\x15GetBroadcastThumbnail\x12).CBroadcast_GetBroadcastThumbnail_Request\x1a*.CBroadcast_GetBroadcastThumbnail_Response\"\'\x82\xb5\x18#Request thumbnail URL for broadcast\x12\xa2\x01\n\x11InviteToBroadcast\x12%.CBroadcast_InviteToBroadcast_Request\x1a&.CBroadcast_InviteToBroadcast_Response\">\x82\xb5\x18:Invites another steam user to watch the caller\'s broadcast\x12\xc8\x01\n\x1aSendBroadcastStateToServer\x12..CBroadcast_SendBroadcastStateToServer_Request\x1a/.CBroadcast_SendBroadcastStateToServer_Response\"I\x82\xb5\x18\x45Sends users current broadcast state (permissions, game) to the server\x12\xa2\x01\n\x1fNotifyBroadcastSessionHeartbeat\x12\x38.CBroadcast_NotifyBroadcastSessionHeartbeat_Notification\x1a\x0b.NoResponse\"8\x82\xb5\x18\x34Tells directory broadcast session is still available\x12\x94\x01\n\x14GetBroadcastChatInfo\x12(.CBroadcast_GetBroadcastChatInfo_Request\x1a).CBroadcast_GetBroadcastChatInfo_Response\"\'\x82\xb5\x18#Gets chat room info for a broadcast\x12\x8a\x01\n\x0fPostChatMessage\x12#.CBroadcast_PostChatMessage_Request\x1a$.CBroadcast_PostChatMessage_Response\",\x82\xb5\x18(Post chat message to specified chat room\x12\xab\x01\n\x16UpdateChatMessageFlair\x12*.CBroadcast_UpdateChatMessageFlair_Request\x1a+.CBroadcast_UpdateChatMessageFlair_Response\"8\x82\xb5\x18\x34Update chat message flair in the specified chat room\x12\x96\x01\n\x15MuteBroadcastChatUser\x12).CBroadcast_MuteBroadcastChatUser_Request\x1a*.CBroadcast_MuteBroadcastChatUser_Response\"&\x82\xb5\x18\"Mute a user in your broadcast chat\x12\x94\x01\n\x12RemoveUserChatText\x12&.CBroadcast_RemoveUserChatText_Request\x1a\'.CBroadcast_RemoveUserChatText_Response\"-\x82\xb5\x18)Tell all viewers to remove user chat text\x12\xa3\x01\n\x19GetBroadcastChatUserNames\x12-.CBroadcast_GetBroadcastChatUserNames_Request\x1a..CBroadcast_GetBroadcastChatUserNames_Response\"\'\x82\xb5\x18#Get names for list of users in chat\x12~\n\x0eStartBuildClip\x12\".CBroadcast_StartBuildClip_Request\x1a#.CBroadcast_StartBuildClip_Response\"#\x82\xb5\x18\x1fStart building a broadcast clip\x12\x8a\x01\n\x12GetBuildClipStatus\x12&.CBroadcast_GetBuildClipStatus_Request\x1a\'.CBroadcast_GetBuildClipStatus_Response\"#\x82\xb5\x18\x1fStart building a broadcast clip\x12w\n\x0eSetClipDetails\x12\".CBroadcast_SetClipDetails_Request\x1a#.CBroadcast_SetClipDetails_Response\"\x1c\x82\xb5\x18\x18Updates a broadcast clip\x12~\n\x0eGetClipDetails\x12\".CBroadcast_GetClipDetails_Request\x1a#.CBroadcast_GetClipDetails_Response\"#\x82\xb5\x18\x1fGet details for Broadcast Clips\x12n\n\x0bSetRTMPInfo\x12\x1f.CBroadcast_SetRTMPInfo_Request\x1a .CBroadcast_SetRTMPInfo_Response\"\x1c\x82\xb5\x18\x18Sets RTMP broadcast info\x12n\n\x0bGetRTMPInfo\x12\x1f.CBroadcast_GetRTMPInfo_Request\x1a .CBroadcast_GetRTMPInfo_Response\"\x1c\x82\xb5\x18\x18Gets RTMP broadcast info\x12\x9e\x01\n\x1aNotifyWebRTCHaveTURNServer\x12-.CBroadcast_WebRTCHaveTURNServer_Notification\x1a\x0b.NoResponse\"D\x82\xb5\x18@Notification from client to server with the client\'s TURN server\x12\xac\x01\n\x11WebRTCStartResult\x12%.CBroadcast_WebRTCStartResult_Request\x1a&.CBroadcast_WebRTCStartResult_Response\"H\x82\xb5\x18\x44Notify the server that a WebRTC session has been created by the host\x12\xa0\x01\n\rWebRTCStopped\x12!.CBroadcast_WebRTCStopped_Request\x1a\".CBroadcast_WebRTCStopped_Response\"H\x82\xb5\x18\x44Notify the server that a WebRTC session has been stopped by the host\x12\xa8\x01\n\x0fWebRTCSetAnswer\x12#.CBroadcast_WebRTCSetAnswer_Request\x1a$.CBroadcast_WebRTCSetAnswer_Response\"J\x82\xb5\x18\x46Notify the server that a WebRTC session has been created by the viewer\x12\xa2\x01\n\x16WebRTCLookupTURNServer\x12*.CBroadcast_WebRTCLookupTURNServer_Request\x1a+.CBroadcast_WebRTCLookupTURNServer_Response\"/\x82\xb5\x18+Lookup the best TURN server for this client\x12\xb1\x01\n\x16WebRTCAddHostCandidate\x12*.CBroadcast_WebRTCAddHostCandidate_Request\x1a+.CBroadcast_WebRTCAddHostCandidate_Response\">\x82\xb5\x18:Add an ICE candidate for the host side of a WebRTC session\x12\xb9\x01\n\x18WebRTCAddViewerCandidate\x12,.CBroadcast_WebRTCAddViewerCandidate_Request\x1a-.CBroadcast_WebRTCAddViewerCandidate_Response\"@\x82\xb5\x18<Add an ICE candidate for the viewer side of a WebRTC session\x12\xb6\x01\n\x17WebRTCGetHostCandidates\x12+.CBroadcast_WebRTCGetHostCandidates_Request\x1a,.CBroadcast_WebRTCGetHostCandidates_Response\"@\x82\xb5\x18<Get the ICE candidates for the host side of a WebRTC session\x12\x9e\x01\n\x17GetBroadcastUploadStats\x12+.CBroadcast_GetBroadcastUploadStats_Request\x1a,.CBroadcast_GetBroadcastUploadStats_Response\"(\x82\xb5\x18$Gets broadcast upload stats for user\x12\x9f\x01\n\x17GetBroadcastViewerStats\x12+.CBroadcast_GetBroadcastViewerStats_Request\x1a,.CBroadcast_GetBroadcastViewerStats_Response\")\x82\xb5\x18%Gets viewer stats for given broadcast\x1a*\x82\xb5\x18&Methods for Steam broadcast operations2\xc4\x11\n\x0f\x42roadcastClient\x12\xa1\x01\n\x1aNotifyBroadcastViewerState\x12-.CBroadcast_BroadcastViewerState_Notification\x1a\x0b.NoResponse\"G\x82\xb5\x18\x43Notification from server to client that a viewers state has changed\x12\xbd\x01\n\x1cNotifyWaitingBroadcastViewer\x12/.CBroadcast_WaitingBroadcastViewer_Notification\x1a\x0b.NoResponse\"_\x82\xb5\x18[Notification from server to client one or more users is waiting for user to start broadcast\x12\xa7\x01\n\x1cNotifyBroadcastUploadStarted\x12/.CBroadcast_BroadcastUploadStarted_Notification\x1a\x0b.NoResponse\"I\x82\xb5\x18\x45Notification from server to client with information about a broadcast\x12\xd6\x01\n\x19NotifyStopBroadcastUpload\x12,.CBroadcast_StopBroadcastUpload_Notification\x1a\x0b.NoResponse\"~\x82\xb5\x18zNotification from server to client telling it to stop uploading when the last viewer has disconnected from their broadcast\x12\xb5\x01\n\x13NotifySessionClosed\x12&.CBroadcast_SessionClosed_Notification\x1a\x0b.NoResponse\"i\x82\xb5\x18\x65Notification from server to client telling it a session has been closed unexpectedly by the directory\x12\xc3\x01\n\x1bNotifyViewerBroadcastInvite\x12..CBroadcast_ViewerBroadcastInvite_Notification\x1a\x0b.NoResponse\"g\x82\xb5\x18\x63Notification from server to client that a broadcaster is inviting a viewer to watch their broadcast\x12\x95\x01\n\x15NotifyBroadcastStatus\x12(.CBroadcast_BroadcastStatus_Notification\x1a\x0b.NoResponse\"E\x82\xb5\x18\x41Notification from server to client about current broadcast status\x12\x9f\x01\n\x1aNotifyBroadcastChannelLive\x12-.CBroadcast_BroadcastChannelLive_Notification\x1a\x0b.NoResponse\"E\x82\xb5\x18\x41Notification from server to client about current broadcast status\x12p\n\x14SendThumbnailToRelay\x12-.CBroadcast_SendThumbnailToRelay_Notification\x1a\x0b.NoResponse\"\x1c\x82\xb5\x18\x18Send thumbnails to relay\x12\xa7\x01\n\x1aNotifyWebRTCNeedTURNServer\x12-.CBroadcast_WebRTCNeedTURNServer_Notification\x1a\x0b.NoResponse\"M\x82\xb5\x18INotification from server to client that it needs the client\'s TURN server\x12\x94\x01\n\x11NotifyWebRTCStart\x12$.CBroadcast_WebRTCStart_Notification\x1a\x0b.NoResponse\"L\x82\xb5\x18HNotification from server to client that it should start a WebRTC session\x12\x9f\x01\n\x15NotifyWebRTCSetAnswer\x12(.CBroadcast_WebRTCSetAnswer_Notification\x1a\x0b.NoResponse\"O\x82\xb5\x18KNotification from server to client about the broadcast viewer WebRTC answer\x12\xb6\x01\n\x1eNotifyWebRTCAddViewerCandidate\x12\x31.CBroadcast_WebRTCAddViewerCandidate_Notification\x1a\x0b.NoResponse\"T\x82\xb5\x18PNotification from server to client about a broadcast viewer WebRTC ICE candidate\x1a\x04\xc0\xb5\x18\x02\x42\x03\x90\x01\x01')
   ,
   dependencies=[steammessages__unified__base__pb2.DESCRIPTOR,])
 
@@ -93,8 +93,8 @@ _EBROADCASTWATCHLOCATION = _descriptor.EnumDescriptor(
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=13687,
-  serialized_end=14316,
+  serialized_start=13723,
+  serialized_end=14352,
 )
 _sym_db.RegisterEnumDescriptor(_EBROADCASTWATCHLOCATION)
 
@@ -116,8 +116,8 @@ _EBROADCASTCHATPERMISSION = _descriptor.EnumDescriptor(
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=14318,
-  serialized_end=14421,
+  serialized_start=14354,
+  serialized_end=14457,
 )
 _sym_db.RegisterEnumDescriptor(_EBROADCASTCHATPERMISSION)
 
@@ -197,8 +197,8 @@ _CBROADCAST_WATCHBROADCAST_RESPONSE_EWATCHRESPONSE = _descriptor.EnumDescriptor(
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=2286,
-  serialized_end=2749,
+  serialized_start=2322,
+  serialized_end=2785,
 )
 _sym_db.RegisterEnumDescriptor(_CBROADCAST_WATCHBROADCAST_RESPONSE_EWATCHRESPONSE)
 
@@ -223,8 +223,8 @@ _CBROADCAST_BROADCASTVIEWERSTATE_NOTIFICATION_EVIEWERSTATE = _descriptor.EnumDes
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=12040,
-  serialized_end=12124,
+  serialized_start=12076,
+  serialized_end=12160,
 )
 _sym_db.RegisterEnumDescriptor(_CBROADCAST_BROADCASTVIEWERSTATE_NOTIFICATION_EVIEWERSTATE)
 
@@ -299,6 +299,13 @@ _CBROADCAST_BEGINBROADCASTSESSION_REQUEST = _descriptor.Descriptor(
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='allow_webrtc', full_name='CBroadcast_BeginBroadcastSession_Request.allow_webrtc', index=9,
+      number=10, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -312,7 +319,7 @@ _CBROADCAST_BEGINBROADCASTSESSION_REQUEST = _descriptor.Descriptor(
   oneofs=[
   ],
   serialized_start=68,
-  serialized_end=287,
+  serialized_end=309,
 )
 
 
@@ -370,8 +377,8 @@ _CBROADCAST_BEGINBROADCASTSESSION_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=290,
-  serialized_end=702,
+  serialized_start=312,
+  serialized_end=724,
 )
 
 
@@ -401,8 +408,8 @@ _CBROADCAST_ENDBROADCASTSESSION_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=704,
-  serialized_end=766,
+  serialized_start=726,
+  serialized_end=788,
 )
 
 
@@ -425,8 +432,8 @@ _CBROADCAST_ENDBROADCASTSESSION_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=768,
-  serialized_end=809,
+  serialized_start=790,
+  serialized_end=831,
 )
 
 
@@ -505,8 +512,8 @@ _CBROADCAST_STARTBROADCASTUPLOAD_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=812,
-  serialized_end=1076,
+  serialized_start=834,
+  serialized_end=1098,
 )
 
 
@@ -564,8 +571,8 @@ _CBROADCAST_STARTBROADCASTUPLOAD_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1079,
-  serialized_end=1241,
+  serialized_start=1101,
+  serialized_end=1263,
 )
 
 
@@ -602,8 +609,8 @@ _CBROADCAST_NOTIFYBROADCASTUPLOADSTOP_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1243,
-  serialized_end=1346,
+  serialized_start=1265,
+  serialized_end=1368,
 )
 
 
@@ -636,28 +643,21 @@ _CBROADCAST_WATCHBROADCAST_REQUEST = _descriptor.Descriptor(
       is_extension=False, extension_scope=None,
       serialized_options=_b('\202\265\030Hviewer token received from last WatchRequest call, from browser storage.'), file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='client_ip', full_name='CBroadcast_WatchBroadcast_Request.client_ip', index=3,
-      number=4, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='client_cell', full_name='CBroadcast_WatchBroadcast_Request.client_cell', index=4,
+      name='client_cell', full_name='CBroadcast_WatchBroadcast_Request.client_cell', index=3,
       number=5, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='watch_location', full_name='CBroadcast_WatchBroadcast_Request.watch_location', index=5,
+      name='watch_location', full_name='CBroadcast_WatchBroadcast_Request.watch_location', index=4,
       number=6, type=14, cpp_type=8, label=1,
       has_default_value=True, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='is_webrtc', full_name='CBroadcast_WatchBroadcast_Request.is_webrtc', index=6,
+      name='is_webrtc', full_name='CBroadcast_WatchBroadcast_Request.is_webrtc', index=5,
       number=7, type=8, cpp_type=7, label=1,
       has_default_value=False, default_value=False,
       message_type=None, enum_type=None, containing_type=None,
@@ -675,8 +675,8 @@ _CBROADCAST_WATCHBROADCAST_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1349,
-  serialized_end=1761,
+  serialized_start=1371,
+  serialized_end=1764,
 )
 
 
@@ -820,6 +820,13 @@ _CBROADCAST_WATCHBROADCAST_RESPONSE = _descriptor.Descriptor(
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='cdn_auth_url_parameters', full_name='CBroadcast_WatchBroadcast_Response.cdn_auth_url_parameters', index=19,
+      number=20, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -833,8 +840,8 @@ _CBROADCAST_WATCHBROADCAST_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1764,
-  serialized_end=2749,
+  serialized_start=1767,
+  serialized_end=2785,
 )
 
 
@@ -885,8 +892,8 @@ _CBROADCAST_HEARTBEATBROADCAST_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2752,
-  serialized_end=3054,
+  serialized_start=2788,
+  serialized_end=3090,
 )
 
 
@@ -930,8 +937,8 @@ _CBROADCAST_STOPWATCHINGBROADCAST_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3057,
-  serialized_end=3296,
+  serialized_start=3093,
+  serialized_end=3332,
 )
 
 
@@ -968,8 +975,8 @@ _CBROADCAST_GETBROADCASTSTATUS_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3299,
-  serialized_end=3475,
+  serialized_start=3335,
+  serialized_end=3511,
 )
 
 
@@ -1090,8 +1097,8 @@ _CBROADCAST_GETBROADCASTSTATUS_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3478,
-  serialized_end=3815,
+  serialized_start=3514,
+  serialized_end=3851,
 )
 
 
@@ -1128,8 +1135,8 @@ _CBROADCAST_GETBROADCASTTHUMBNAIL_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3817,
-  serialized_end=3898,
+  serialized_start=3853,
+  serialized_end=3934,
 )
 
 
@@ -1180,8 +1187,8 @@ _CBROADCAST_GETBROADCASTTHUMBNAIL_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3901,
-  serialized_end=4031,
+  serialized_start=3937,
+  serialized_end=4067,
 )
 
 
@@ -1218,8 +1225,8 @@ _CBROADCAST_INVITETOBROADCAST_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4033,
-  serialized_end=4115,
+  serialized_start=4069,
+  serialized_end=4151,
 )
 
 
@@ -1249,8 +1256,8 @@ _CBROADCAST_INVITETOBROADCAST_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4117,
-  serialized_end=4173,
+  serialized_start=4153,
+  serialized_end=4209,
 )
 
 
@@ -1301,8 +1308,8 @@ _CBROADCAST_SENDBROADCASTSTATETOSERVER_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4175,
-  serialized_end=4299,
+  serialized_start=4211,
+  serialized_end=4335,
 )
 
 
@@ -1325,8 +1332,8 @@ _CBROADCAST_SENDBROADCASTSTATETOSERVER_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4301,
-  serialized_end=4349,
+  serialized_start=4337,
+  serialized_end=4385,
 )
 
 
@@ -1356,8 +1363,8 @@ _CBROADCAST_NOTIFYBROADCASTSESSIONHEARTBEAT_NOTIFICATION = _descriptor.Descripto
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4351,
-  serialized_end=4430,
+  serialized_start=4387,
+  serialized_end=4466,
 )
 
 
@@ -1408,8 +1415,8 @@ _CBROADCAST_GETBROADCASTCHATINFO_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4432,
-  serialized_end=4552,
+  serialized_start=4468,
+  serialized_end=4588,
 )
 
 
@@ -1453,8 +1460,8 @@ _CBROADCAST_GETBROADCASTCHATINFO_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4554,
-  serialized_end=4665,
+  serialized_start=4590,
+  serialized_end=4701,
 )
 
 
@@ -1512,8 +1519,8 @@ _CBROADCAST_POSTCHATMESSAGE_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4668,
-  serialized_end=4902,
+  serialized_start=4704,
+  serialized_end=4938,
 )
 
 
@@ -1564,8 +1571,8 @@ _CBROADCAST_POSTCHATMESSAGE_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4904,
-  serialized_end=5027,
+  serialized_start=4940,
+  serialized_end=5063,
 )
 
 
@@ -1602,8 +1609,8 @@ _CBROADCAST_UPDATECHATMESSAGEFLAIR_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5029,
-  serialized_end=5104,
+  serialized_start=5065,
+  serialized_end=5140,
 )
 
 
@@ -1647,8 +1654,8 @@ _CBROADCAST_UPDATECHATMESSAGEFLAIR_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5106,
-  serialized_end=5198,
+  serialized_start=5142,
+  serialized_end=5234,
 )
 
 
@@ -1692,8 +1699,8 @@ _CBROADCAST_MUTEBROADCASTCHATUSER_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5200,
-  serialized_end=5296,
+  serialized_start=5236,
+  serialized_end=5332,
 )
 
 
@@ -1716,8 +1723,8 @@ _CBROADCAST_MUTEBROADCASTCHATUSER_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5298,
-  serialized_end=5341,
+  serialized_start=5334,
+  serialized_end=5377,
 )
 
 
@@ -1754,8 +1761,8 @@ _CBROADCAST_REMOVEUSERCHATTEXT_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5343,
-  serialized_end=5421,
+  serialized_start=5379,
+  serialized_end=5457,
 )
 
 
@@ -1778,8 +1785,8 @@ _CBROADCAST_REMOVEUSERCHATTEXT_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5423,
-  serialized_end=5463,
+  serialized_start=5459,
+  serialized_end=5499,
 )
 
 
@@ -1816,8 +1823,8 @@ _CBROADCAST_GETBROADCASTCHATUSERNAMES_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5465,
-  serialized_end=5550,
+  serialized_start=5501,
+  serialized_end=5586,
 )
 
 
@@ -1854,8 +1861,8 @@ _CBROADCAST_GETBROADCASTCHATUSERNAMES_RESPONSE_PERSONANAME = _descriptor.Descrip
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5685,
-  serialized_end=5733,
+  serialized_start=5721,
+  serialized_end=5769,
 )
 
 _CBROADCAST_GETBROADCASTCHATUSERNAMES_RESPONSE = _descriptor.Descriptor(
@@ -1884,8 +1891,8 @@ _CBROADCAST_GETBROADCASTCHATUSERNAMES_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5553,
-  serialized_end=5733,
+  serialized_start=5589,
+  serialized_end=5769,
 )
 
 
@@ -1943,8 +1950,8 @@ _CBROADCAST_STARTBUILDCLIP_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5736,
-  serialized_end=5889,
+  serialized_start=5772,
+  serialized_end=5925,
 )
 
 
@@ -1974,8 +1981,8 @@ _CBROADCAST_STARTBUILDCLIP_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5891,
-  serialized_end=5954,
+  serialized_start=5927,
+  serialized_end=5990,
 )
 
 
@@ -2005,8 +2012,8 @@ _CBROADCAST_GETBUILDCLIPSTATUS_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5956,
-  serialized_end=6022,
+  serialized_start=5992,
+  serialized_end=6058,
 )
 
 
@@ -2029,8 +2036,8 @@ _CBROADCAST_GETBUILDCLIPSTATUS_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6024,
-  serialized_end=6064,
+  serialized_start=6060,
+  serialized_end=6100,
 )
 
 
@@ -2081,8 +2088,8 @@ _CBROADCAST_SETCLIPDETAILS_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6067,
-  serialized_end=6261,
+  serialized_start=6103,
+  serialized_end=6297,
 )
 
 
@@ -2105,8 +2112,8 @@ _CBROADCAST_SETCLIPDETAILS_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6263,
-  serialized_end=6299,
+  serialized_start=6299,
+  serialized_end=6335,
 )
 
 
@@ -2136,8 +2143,8 @@ _CBROADCAST_GETCLIPDETAILS_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6301,
-  serialized_end=6405,
+  serialized_start=6337,
+  serialized_end=6441,
 )
 
 
@@ -2230,8 +2237,8 @@ _CBROADCAST_GETCLIPDETAILS_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6408,
-  serialized_end=6999,
+  serialized_start=6444,
+  serialized_end=7035,
 )
 
 
@@ -2324,8 +2331,8 @@ _CBROADCAST_SETRTMPINFO_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=7002,
-  serialized_end=7581,
+  serialized_start=7038,
+  serialized_end=7617,
 )
 
 
@@ -2348,8 +2355,8 @@ _CBROADCAST_SETRTMPINFO_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=7583,
-  serialized_end=7616,
+  serialized_start=7619,
+  serialized_end=7652,
 )
 
 
@@ -2386,8 +2393,8 @@ _CBROADCAST_GETRTMPINFO_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=7618,
-  serialized_end=7726,
+  serialized_start=7654,
+  serialized_end=7762,
 )
 
 
@@ -2487,8 +2494,8 @@ _CBROADCAST_GETRTMPINFO_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=7729,
-  serialized_end=8289,
+  serialized_start=7765,
+  serialized_end=8325,
 )
 
 
@@ -2525,8 +2532,8 @@ _CBROADCAST_WEBRTCHAVETURNSERVER_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8291,
-  serialized_end=8388,
+  serialized_start=8327,
+  serialized_end=8424,
 )
 
 
@@ -2591,8 +2598,8 @@ _CBROADCAST_WEBRTCSTARTRESULT_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8391,
-  serialized_end=8545,
+  serialized_start=8427,
+  serialized_end=8581,
 )
 
 
@@ -2615,8 +2622,8 @@ _CBROADCAST_WEBRTCSTARTRESULT_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8547,
-  serialized_end=8586,
+  serialized_start=8583,
+  serialized_end=8622,
 )
 
 
@@ -2646,8 +2653,8 @@ _CBROADCAST_WEBRTCSTOPPED_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8588,
-  serialized_end=8649,
+  serialized_start=8624,
+  serialized_end=8685,
 )
 
 
@@ -2670,8 +2677,8 @@ _CBROADCAST_WEBRTCSTOPPED_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8651,
-  serialized_end=8686,
+  serialized_start=8687,
+  serialized_end=8722,
 )
 
 
@@ -2715,8 +2722,8 @@ _CBROADCAST_WEBRTCSETANSWER_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8688,
-  serialized_end=8796,
+  serialized_start=8724,
+  serialized_end=8832,
 )
 
 
@@ -2739,8 +2746,8 @@ _CBROADCAST_WEBRTCSETANSWER_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8798,
-  serialized_end=8835,
+  serialized_start=8834,
+  serialized_end=8871,
 )
 
 
@@ -2770,8 +2777,8 @@ _CBROADCAST_WEBRTCLOOKUPTURNSERVER_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8837,
-  serialized_end=8896,
+  serialized_start=8873,
+  serialized_end=8932,
 )
 
 
@@ -2801,8 +2808,8 @@ _CBROADCAST_WEBRTCLOOKUPTURNSERVER_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8898,
-  serialized_end=8963,
+  serialized_start=8934,
+  serialized_end=8999,
 )
 
 
@@ -2846,8 +2853,8 @@ _CBROADCAST_WEBRTC_CANDIDATE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8965,
-  serialized_end=9055,
+  serialized_start=9001,
+  serialized_end=9091,
 )
 
 
@@ -2884,8 +2891,8 @@ _CBROADCAST_WEBRTCADDHOSTCANDIDATE_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9057,
-  serialized_end=9176,
+  serialized_start=9093,
+  serialized_end=9212,
 )
 
 
@@ -2908,8 +2915,8 @@ _CBROADCAST_WEBRTCADDHOSTCANDIDATE_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9178,
-  serialized_end=9222,
+  serialized_start=9214,
+  serialized_end=9258,
 )
 
 
@@ -2953,8 +2960,8 @@ _CBROADCAST_WEBRTCADDVIEWERCANDIDATE_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9225,
-  serialized_end=9375,
+  serialized_start=9261,
+  serialized_end=9411,
 )
 
 
@@ -2977,8 +2984,8 @@ _CBROADCAST_WEBRTCADDVIEWERCANDIDATE_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9377,
-  serialized_end=9423,
+  serialized_start=9413,
+  serialized_end=9459,
 )
 
 
@@ -3022,8 +3029,8 @@ _CBROADCAST_WEBRTCGETHOSTCANDIDATES_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9426,
-  serialized_end=9556,
+  serialized_start=9462,
+  serialized_end=9592,
 )
 
 
@@ -3060,8 +3067,8 @@ _CBROADCAST_WEBRTCGETHOSTCANDIDATES_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9558,
-  serialized_end=9683,
+  serialized_start=9594,
+  serialized_end=9719,
 )
 
 
@@ -3119,8 +3126,8 @@ _CBROADCAST_GETBROADCASTUPLOADSTATS_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9686,
-  serialized_end=10106,
+  serialized_start=9722,
+  serialized_end=10142,
 )
 
 
@@ -3283,8 +3290,8 @@ _CBROADCAST_GETBROADCASTUPLOADSTATS_RESPONSE_UPLOADSTATS = _descriptor.Descripto
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10237,
-  serialized_end=11270,
+  serialized_start=10273,
+  serialized_end=11306,
 )
 
 _CBROADCAST_GETBROADCASTUPLOADSTATS_RESPONSE = _descriptor.Descriptor(
@@ -3313,8 +3320,8 @@ _CBROADCAST_GETBROADCASTUPLOADSTATS_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10109,
-  serialized_end=11270,
+  serialized_start=10145,
+  serialized_end=11306,
 )
 
 
@@ -3351,8 +3358,8 @@ _CBROADCAST_GETBROADCASTVIEWERSTATS_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11273,
-  serialized_end=11462,
+  serialized_start=11309,
+  serialized_end=11498,
 )
 
 
@@ -3389,8 +3396,8 @@ _CBROADCAST_GETBROADCASTVIEWERSTATS_RESPONSE_VIEWERSTATS = _descriptor.Descripto
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11674,
-  serialized_end=11773,
+  serialized_start=11710,
+  serialized_end=11809,
 )
 
 _CBROADCAST_GETBROADCASTVIEWERSTATS_RESPONSE_COUNTRYSTATS = _descriptor.Descriptor(
@@ -3426,8 +3433,8 @@ _CBROADCAST_GETBROADCASTVIEWERSTATS_RESPONSE_COUNTRYSTATS = _descriptor.Descript
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11775,
-  serialized_end=11873,
+  serialized_start=11811,
+  serialized_end=11909,
 )
 
 _CBROADCAST_GETBROADCASTVIEWERSTATS_RESPONSE = _descriptor.Descriptor(
@@ -3463,8 +3470,8 @@ _CBROADCAST_GETBROADCASTVIEWERSTATS_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11465,
-  serialized_end=11873,
+  serialized_start=11501,
+  serialized_end=11909,
 )
 
 
@@ -3502,8 +3509,8 @@ _CBROADCAST_BROADCASTVIEWERSTATE_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11876,
-  serialized_end=12124,
+  serialized_start=11912,
+  serialized_end=12160,
 )
 
 
@@ -3533,8 +3540,8 @@ _CBROADCAST_WAITINGBROADCASTVIEWER_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12126,
-  serialized_end=12196,
+  serialized_start=12162,
+  serialized_end=12232,
 )
 
 
@@ -3606,8 +3613,8 @@ _CBROADCAST_BROADCASTUPLOADSTARTED_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12199,
-  serialized_end=12468,
+  serialized_start=12235,
+  serialized_end=12504,
 )
 
 
@@ -3658,8 +3665,8 @@ _CBROADCAST_STOPBROADCASTUPLOAD_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12471,
-  serialized_end=12620,
+  serialized_start=12507,
+  serialized_end=12656,
 )
 
 
@@ -3689,8 +3696,8 @@ _CBROADCAST_SESSIONCLOSED_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12622,
-  serialized_end=12683,
+  serialized_start=12658,
+  serialized_end=12719,
 )
 
 
@@ -3720,8 +3727,8 @@ _CBROADCAST_VIEWERBROADCASTINVITE_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12685,
-  serialized_end=12761,
+  serialized_start=12721,
+  serialized_end=12797,
 )
 
 
@@ -3758,8 +3765,8 @@ _CBROADCAST_BROADCASTSTATUS_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12763,
-  serialized_end=12847,
+  serialized_start=12799,
+  serialized_end=12883,
 )
 
 
@@ -3803,8 +3810,8 @@ _CBROADCAST_BROADCASTCHANNELLIVE_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12850,
-  serialized_end=12992,
+  serialized_start=12886,
+  serialized_end=13028,
 )
 
 
@@ -3862,8 +3869,8 @@ _CBROADCAST_SENDTHUMBNAILTORELAY_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12995,
-  serialized_end=13188,
+  serialized_start=13031,
+  serialized_end=13224,
 )
 
 
@@ -3893,8 +3900,8 @@ _CBROADCAST_WEBRTCNEEDTURNSERVER_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=13190,
-  serialized_end=13266,
+  serialized_start=13226,
+  serialized_end=13302,
 )
 
 
@@ -3945,8 +3952,8 @@ _CBROADCAST_WEBRTCSTART_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=13269,
-  serialized_end=13409,
+  serialized_start=13305,
+  serialized_end=13445,
 )
 
 
@@ -3990,8 +3997,8 @@ _CBROADCAST_WEBRTCSETANSWER_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=13411,
-  serialized_end=13525,
+  serialized_start=13447,
+  serialized_end=13561,
 )
 
 
@@ -4035,8 +4042,8 @@ _CBROADCAST_WEBRTCADDVIEWERCANDIDATE_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=13528,
-  serialized_end=13684,
+  serialized_start=13564,
+  serialized_end=13720,
 )
 
 _CBROADCAST_WATCHBROADCAST_REQUEST.fields_by_name['watch_location'].enum_type = _EBROADCASTWATCHLOCATION
@@ -4795,8 +4802,8 @@ _BROADCAST = _descriptor.ServiceDescriptor(
   file=DESCRIPTOR,
   index=0,
   serialized_options=_b('\202\265\030&Methods for Steam broadcast operations'),
-  serialized_start=14424,
-  serialized_end=19934,
+  serialized_start=14460,
+  serialized_end=19970,
   methods=[
   _descriptor.MethodDescriptor(
     name='BeginBroadcastSession',
@@ -5116,8 +5123,8 @@ _BROADCASTCLIENT = _descriptor.ServiceDescriptor(
   file=DESCRIPTOR,
   index=1,
   serialized_options=_b('\300\265\030\002'),
-  serialized_start=19937,
-  serialized_end=22181,
+  serialized_start=19973,
+  serialized_end=22217,
   methods=[
   _descriptor.MethodDescriptor(
     name='NotifyBroadcastViewerState',
diff --git a/steam/protobufs/steammessages_chat_pb2.py b/steam/protobufs/steammessages_chat_pb2.py
index 590de3e..c9da15a 100644
--- a/steam/protobufs/steammessages_chat_pb2.py
+++ b/steam/protobufs/steammessages_chat_pb2.py
@@ -25,7 +25,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
   package='',
   syntax='proto2',
   serialized_options=_b('\220\001\001'),
-  serialized_pb=_b('\n\x18steammessages_chat.proto\x1a steammessages_unified_base.proto\x1a(steammessages_clientserver_friends.proto\"*\n(CChat_RequestFriendPersonaStates_Request\"+\n)CChat_RequestFriendPersonaStates_Response\"\xce\x01\n%CChatRoom_CreateChatRoomGroup_Request\x12\x17\n\x0fsteamid_partner\x18\x01 \x01(\x06\x12\x17\n\x0fsteamid_invited\x18\x02 \x01(\x06\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x18\n\x10steamid_invitees\x18\x04 \x03(\x06\x12$\n\x1cwatching_broadcast_accountid\x18\x06 \x01(\r\x12%\n\x1dwatching_broadcast_channel_id\x18\x07 \x01(\x04\";\n\tCChatRole\x12\x0f\n\x07role_id\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0f\n\x07ordinal\x18\x03 \x01(\r\"\xd4\x02\n\x10\x43\x43hatRoleActions\x12\x0f\n\x07role_id\x18\x01 \x01(\x04\x12(\n can_create_rename_delete_channel\x18\x02 \x01(\x08\x12\x10\n\x08\x63\x61n_kick\x18\x03 \x01(\x08\x12\x0f\n\x07\x63\x61n_ban\x18\x04 \x01(\x08\x12\x12\n\ncan_invite\x18\x05 \x01(\x08\x12&\n\x1e\x63\x61n_change_tagline_avatar_name\x18\x06 \x01(\x08\x12\x10\n\x08\x63\x61n_chat\x18\x07 \x01(\x08\x12\x18\n\x10\x63\x61n_view_history\x18\x08 \x01(\x08\x12\x1e\n\x16\x63\x61n_change_group_roles\x18\t \x01(\x08\x12\x1d\n\x15\x63\x61n_change_user_roles\x18\n \x01(\x08\x12\x17\n\x0f\x63\x61n_mention_all\x18\x0b \x01(\x08\x12\"\n\x1a\x63\x61n_set_watching_broadcast\x18\x0c \x01(\x08\"c\n\x10\x43\x43hatPartyBeacon\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x15\n\rsteamid_owner\x18\x02 \x01(\x06\x12\x11\n\tbeacon_id\x18\x03 \x01(\x06\x12\x15\n\rgame_metadata\x18\x04 \x01(\t\"\xaa\x03\n\x19\x43\x43hatRoomGroupHeaderState\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x11\n\tchat_name\x18\x02 \x01(\t\x12\x0e\n\x06\x63lanid\x18\r \x01(\r\x12\x17\n\x0f\x61\x63\x63ountid_owner\x18\x0e \x01(\r\x12\r\n\x05\x61ppid\x18\x15 \x01(\r\x12\x0f\n\x07tagline\x18\x0f \x01(\t\x12\x12\n\navatar_sha\x18\x10 \x01(\x0c\x12\x17\n\x0f\x64\x65\x66\x61ult_role_id\x18\x11 \x01(\x04\x12\x19\n\x05roles\x18\x12 \x03(\x0b\x32\n.CChatRole\x12\'\n\x0crole_actions\x18\x13 \x03(\x0b\x32\x11.CChatRoleActions\x12$\n\x1cwatching_broadcast_accountid\x18\x14 \x01(\r\x12(\n\rparty_beacons\x18\x16 \x03(\x0b\x32\x11.CChatPartyBeacon\x12%\n\x1dwatching_broadcast_channel_id\x18\x17 \x01(\x04\x12\x1a\n\x12\x61\x63tive_minigame_id\x18\x18 \x01(\x04\x12\x16\n\x0e\x61vatar_ugc_url\x18\x19 \x01(\t\"\xd3\x01\n\x0f\x43\x43hatRoomMember\x12\x11\n\taccountid\x18\x01 \x01(\r\x12@\n\x05state\x18\x03 \x01(\x0e\x32\x13.EChatRoomJoinState:\x1ck_EChatRoomJoinState_Default\x12?\n\x04rank\x18\x04 \x01(\x0e\x32\x13.EChatRoomGroupRank:\x1ck_EChatRoomGroupRank_Default\x12\x18\n\x10time_kick_expire\x18\x06 \x01(\r\x12\x10\n\x08role_ids\x18\x07 \x03(\x04\"\xca\x01\n\x0e\x43\x43hatRoomState\x12\x0f\n\x07\x63hat_id\x18\x01 \x01(\x04\x12\x11\n\tchat_name\x18\x02 \x01(\t\x12\x15\n\rvoice_allowed\x18\x03 \x01(\x08\x12\x18\n\x10members_in_voice\x18\x04 \x03(\r\x12\x19\n\x11time_last_message\x18\x05 \x01(\r\x12\x12\n\nsort_order\x18\x06 \x01(\r\x12\x14\n\x0clast_message\x18\x07 \x01(\t\x12\x1e\n\x16\x61\x63\x63ountid_last_message\x18\x08 \x01(\r\"\xca\x01\n\x13\x43\x43hatRoomGroupState\x12\x30\n\x0cheader_state\x18\x01 \x01(\x0b\x32\x1a.CChatRoomGroupHeaderState\x12!\n\x07members\x18\x02 \x03(\x0b\x32\x10.CChatRoomMember\x12\x17\n\x0f\x64\x65\x66\x61ult_chat_id\x18\x04 \x01(\x04\x12#\n\nchat_rooms\x18\x05 \x03(\x0b\x32\x0f.CChatRoomState\x12 \n\x06kicked\x18\x07 \x03(\x0b\x32\x10.CChatRoomMember\"\xfb\x02\n\x12\x43UserChatRoomState\x12\x0f\n\x07\x63hat_id\x18\x01 \x01(\x04\x12\x13\n\x0btime_joined\x18\x02 \x01(\r\x12\x15\n\rtime_last_ack\x18\x03 \x01(\r\x12\x65\n\x1a\x64\x65sktop_notification_level\x18\x04 \x01(\x0e\x32\x1b.EChatRoomNotificationLevel:$k_EChatroomNotificationLevel_Invalid\x12\x64\n\x19mobile_notification_level\x18\x05 \x01(\x0e\x32\x1b.EChatRoomNotificationLevel:$k_EChatroomNotificationLevel_Invalid\x12\x19\n\x11time_last_mention\x18\x06 \x01(\r\x12%\n\x16unread_indicator_muted\x18\x07 \x01(\x08:\x05\x66\x61lse\x12\x19\n\x11time_first_unread\x18\x08 \x01(\r\"\x89\x03\n\x17\x43UserChatRoomGroupState\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x13\n\x0btime_joined\x18\x02 \x01(\r\x12\x31\n\x14user_chat_room_state\x18\x03 \x03(\x0b\x32\x13.CUserChatRoomState\x12\x65\n\x1a\x64\x65sktop_notification_level\x18\x04 \x01(\x0e\x32\x1b.EChatRoomNotificationLevel:$k_EChatroomNotificationLevel_Invalid\x12\x64\n\x19mobile_notification_level\x18\x05 \x01(\x0e\x32\x1b.EChatRoomNotificationLevel:$k_EChatroomNotificationLevel_Invalid\x12\x1b\n\x13time_last_group_ack\x18\x06 \x01(\r\x12%\n\x16unread_indicator_muted\x18\x07 \x01(\x08:\x05\x66\x61lse\"\x97\x01\n&CChatRoom_CreateChatRoomGroup_Response\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12#\n\x05state\x18\x02 \x01(\x0b\x32\x14.CChatRoomGroupState\x12\x31\n\x0fuser_chat_state\x18\x03 \x01(\x0b\x32\x18.CUserChatRoomGroupState\"J\n#CChatRoom_SaveChatRoomGroup_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\"&\n$CChatRoom_SaveChatRoomGroup_Response\"L\n%CChatRoom_RenameChatRoomGroup_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\"6\n&CChatRoom_RenameChatRoomGroup_Response\x12\x0c\n\x04name\x18\x01 \x01(\t\"S\n)CChatRoom_SetChatRoomGroupTagline_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07tagline\x18\x02 \x01(\t\",\n*CChatRoom_SetChatRoomGroupTagline_Response\"U\n(CChatRoom_SetChatRoomGroupAvatar_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x12\n\navatar_sha\x18\x02 \x01(\x0c\"+\n)CChatRoom_SetChatRoomGroupAvatar_Response\"\x99\x01\n3CChatRoom_SetChatRoomGroupWatchingBroadcast_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12$\n\x1cwatching_broadcast_accountid\x18\x02 \x01(\r\x12%\n\x1dwatching_broadcast_channel_id\x18\x03 \x01(\x04\"6\n4CChatRoom_SetChatRoomGroupWatchingBroadcast_Response\"X\n.CChatRoom_JoinMiniGameForChatRoomGroup_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07\x63hat_id\x18\x02 \x01(\x04\"F\n/CChatRoom_JoinMiniGameForChatRoomGroup_Response\x12\x13\n\x0bminigame_id\x18\x01 \x01(\x04\"l\n-CChatRoom_EndMiniGameForChatRoomGroup_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07\x63hat_id\x18\x02 \x01(\x04\x12\x13\n\x0bminigame_id\x18\x03 \x01(\x04\"0\n.CChatRoom_EndMiniGameForChatRoomGroup_Response\"X\n\x1a\x43\x43hatRoom_MuteUser_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07steamid\x18\x02 \x01(\x06\x12\x12\n\nexpiration\x18\x03 \x01(\x05\"\x1d\n\x1b\x43\x43hatRoom_MuteUser_Response\"X\n\x1a\x43\x43hatRoom_KickUser_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07steamid\x18\x02 \x01(\x06\x12\x12\n\nexpiration\x18\x03 \x01(\x05\"\x1d\n\x1b\x43\x43hatRoom_KickUser_Response\"^\n!CChatRoom_SetUserBanState_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07steamid\x18\x02 \x01(\x06\x12\x11\n\tban_state\x18\x03 \x01(\x08\"$\n\"CChatRoom_SetUserBanState_Response\"H\n\x1e\x43\x43hatRoom_RevokeInvite_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07steamid\x18\x02 \x01(\x06\"!\n\x1f\x43\x43hatRoom_RevokeInvite_Response\"C\n\x1c\x43\x43hatRoom_CreateRole_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\"C\n\x1d\x43\x43hatRoom_CreateRole_Response\x12\"\n\x07\x61\x63tions\x18\x02 \x01(\x0b\x32\x11.CChatRoleActions\"3\n\x1a\x43\x43hatRoom_GetRoles_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\"8\n\x1b\x43\x43hatRoom_GetRoles_Response\x12\x19\n\x05roles\x18\x01 \x03(\x0b\x32\n.CChatRole\"T\n\x1c\x43\x43hatRoom_RenameRole_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07role_id\x18\x02 \x01(\x04\x12\x0c\n\x04name\x18\x03 \x01(\t\"\x1f\n\x1d\x43\x43hatRoom_RenameRole_Response\"X\n\x1d\x43\x43hatRoom_ReorderRole_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07role_id\x18\x02 \x01(\x04\x12\x0f\n\x07ordinal\x18\x03 \x01(\r\" \n\x1e\x43\x43hatRoom_ReorderRole_Response\"F\n\x1c\x43\x43hatRoom_DeleteRole_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07role_id\x18\x02 \x01(\x04\"\x1f\n\x1d\x43\x43hatRoom_DeleteRole_Response\"J\n CChatRoom_GetRoleActions_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07role_id\x18\x02 \x01(\x04\"G\n!CChatRoom_GetRoleActions_Response\x12\"\n\x07\x61\x63tions\x18\x01 \x03(\x0b\x32\x11.CChatRoleActions\"r\n$CChatRoom_ReplaceRoleActions_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07role_id\x18\x02 \x01(\x04\x12\"\n\x07\x61\x63tions\x18\x04 \x01(\x0b\x32\x11.CChatRoleActions\"\'\n%CChatRoom_ReplaceRoleActions_Response\"Z\n\x1f\x43\x43hatRoom_AddRoleToUser_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07role_id\x18\x03 \x01(\x04\x12\x0f\n\x07steamid\x18\x04 \x01(\x06\"\"\n CChatRoom_AddRoleToUser_Response\"K\n!CChatRoom_GetRolesForUser_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07steamid\x18\x03 \x01(\x06\"6\n\"CChatRoom_GetRolesForUser_Response\x12\x10\n\x08role_ids\x18\x01 \x03(\x04\"_\n$CChatRoom_DeleteRoleFromUser_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07role_id\x18\x03 \x01(\x04\x12\x0f\n\x07steamid\x18\x04 \x01(\x06\"\'\n%CChatRoom_DeleteRoleFromUser_Response\"b\n#CChatRoom_JoinChatRoomGroup_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x13\n\x0binvite_code\x18\x02 \x01(\t\x12\x0f\n\x07\x63hat_id\x18\x03 \x01(\x04\"\xa9\x01\n$CChatRoom_JoinChatRoomGroup_Response\x12#\n\x05state\x18\x01 \x01(\x0b\x32\x14.CChatRoomGroupState\x12\x31\n\x0fuser_chat_state\x18\x03 \x01(\x0b\x32\x18.CUserChatRoomGroupState\x12\x14\n\x0cjoin_chat_id\x18\x04 \x01(\x04\x12\x13\n\x0btime_expire\x18\x05 \x01(\r\"\x86\x01\n-CChatRoom_InviteFriendToChatRoomGroup_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07steamid\x18\x02 \x01(\x06\x12\x0f\n\x07\x63hat_id\x18\x03 \x01(\x04\x12\x1c\n\x14skip_friendsui_check\x18\x04 \x01(\x08\"0\n.CChatRoom_InviteFriendToChatRoomGroup_Response\"=\n$CChatRoom_LeaveChatRoomGroup_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\"\'\n%CChatRoom_LeaveChatRoomGroup_Response\"\\\n CChatRoom_CreateChatRoom_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0b\x61llow_voice\x18\x03 \x01(\x08\"G\n!CChatRoom_CreateChatRoom_Response\x12\"\n\tchat_room\x18\x01 \x01(\x0b\x32\x0f.CChatRoomState\"J\n CChatRoom_DeleteChatRoom_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07\x63hat_id\x18\x02 \x01(\x04\"#\n!CChatRoom_DeleteChatRoom_Response\"X\n CChatRoom_RenameChatRoom_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07\x63hat_id\x18\x02 \x01(\x04\x12\x0c\n\x04name\x18\x03 \x01(\t\"#\n!CChatRoom_RenameChatRoom_Response\"g\n!CChatRoom_ReorderChatRoom_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07\x63hat_id\x18\x02 \x01(\x04\x12\x1a\n\x12move_after_chat_id\x18\x03 \x01(\x04\"$\n\"CChatRoom_ReorderChatRoom_Response\"t\n!CChatRoom_SendChatMessage_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07\x63hat_id\x18\x02 \x01(\x04\x12\x0f\n\x07message\x18\x03 \x01(\t\x12\x16\n\x0e\x65\x63ho_to_sender\x18\x04 \x01(\x08\"\x8a\x01\n\"CChatRoom_SendChatMessage_Response\x12\x18\n\x10modified_message\x18\x01 \x01(\t\x12\x18\n\x10server_timestamp\x18\x02 \x01(\r\x12\x0f\n\x07ordinal\x18\x03 \x01(\r\x12\x1f\n\x17message_without_bb_code\x18\x04 \x01(\t\"I\n\x1f\x43\x43hatRoom_JoinVoiceChat_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07\x63hat_id\x18\x02 \x01(\x04\"8\n CChatRoom_JoinVoiceChat_Response\x12\x14\n\x0cvoice_chatid\x18\x01 \x01(\x04\"J\n CChatRoom_LeaveVoiceChat_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07\x63hat_id\x18\x02 \x01(\x04\"#\n!CChatRoom_LeaveVoiceChat_Response\"\xb4\x01\n#CChatRoom_GetMessageHistory_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07\x63hat_id\x18\x02 \x01(\x04\x12\x11\n\tlast_time\x18\x03 \x01(\r\x12\x14\n\x0clast_ordinal\x18\x04 \x01(\r\x12\x12\n\nstart_time\x18\x05 \x01(\r\x12\x15\n\rstart_ordinal\x18\x06 \x01(\r\x12\x11\n\tmax_count\x18\x07 \x01(\r\"\x86\x01\n\rServerMessage\x12\x46\n\x07message\x18\x01 \x01(\x0e\x32\x17.EChatRoomServerMessage:\x1ck_EChatRoomServerMsg_Invalid\x12\x14\n\x0cstring_param\x18\x02 \x01(\t\x12\x17\n\x0f\x61\x63\x63ountid_param\x18\x03 \x01(\r\"\x98\x02\n$CChatRoom_GetMessageHistory_Response\x12\x43\n\x08messages\x18\x01 \x03(\x0b\x32\x31.CChatRoom_GetMessageHistory_Response.ChatMessage\x12\x16\n\x0emore_available\x18\x04 \x01(\x08\x1a\x92\x01\n\x0b\x43hatMessage\x12\x0e\n\x06sender\x18\x01 \x01(\r\x12\x18\n\x10server_timestamp\x18\x02 \x01(\r\x12\x0f\n\x07message\x18\x03 \x01(\t\x12\x0f\n\x07ordinal\x18\x04 \x01(\r\x12&\n\x0eserver_message\x18\x05 \x01(\x0b\x32\x0e.ServerMessage\x12\x0f\n\x07\x64\x65leted\x18\x06 \x01(\x08\"\'\n%CChatRoom_GetMyChatRoomGroups_Request\"\xa2\x05\n*CChatRoom_GetChatRoomGroupSummary_Response\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x17\n\x0f\x63hat_group_name\x18\x02 \x01(\t\x12\x1b\n\x13\x61\x63tive_member_count\x18\x03 \x01(\r\x12!\n\x19\x61\x63tive_voice_member_count\x18\x04 \x01(\r\x12\x17\n\x0f\x64\x65\x66\x61ult_chat_id\x18\x05 \x01(\x04\x12#\n\nchat_rooms\x18\x06 \x03(\x0b\x32\x0f.CChatRoomState\x12\x0e\n\x06\x63lanid\x18\x07 \x01(\r\x12\x1a\n\x12\x63hat_group_tagline\x18\x08 \x01(\t\x12\x17\n\x0f\x61\x63\x63ountid_owner\x18\t \x01(\r\x12\x13\n\x0btop_members\x18\n \x03(\r\x12\x1d\n\x15\x63hat_group_avatar_sha\x18\x0b \x01(\x0c\x12?\n\x04rank\x18\x0c \x01(\x0e\x32\x13.EChatRoomGroupRank:\x1ck_EChatRoomGroupRank_Default\x12\x17\n\x0f\x64\x65\x66\x61ult_role_id\x18\r \x01(\x04\x12\x10\n\x08role_ids\x18\x0e \x03(\x04\x12\'\n\x0crole_actions\x18\x0f \x03(\x0b\x32\x11.CChatRoleActions\x12$\n\x1cwatching_broadcast_accountid\x18\x10 \x01(\r\x12\r\n\x05\x61ppid\x18\x11 \x01(\r\x12(\n\rparty_beacons\x18\x12 \x03(\x0b\x32\x11.CChatPartyBeacon\x12%\n\x1dwatching_broadcast_channel_id\x18\x13 \x01(\x04\x12\x1a\n\x12\x61\x63tive_minigame_id\x18\x14 \x01(\x04\x12\x16\n\x0e\x61vatar_ugc_url\x18\x15 \x01(\t\"\x93\x01\n\x14\x43\x43hatRoomSummaryPair\x12\x37\n\x15user_chat_group_state\x18\x01 \x01(\x0b\x32\x18.CUserChatRoomGroupState\x12\x42\n\rgroup_summary\x18\x02 \x01(\x0b\x32+.CChatRoom_GetChatRoomGroupSummary_Response\"Y\n&CChatRoom_GetMyChatRoomGroups_Response\x12/\n\x10\x63hat_room_groups\x18\x01 \x03(\x0b\x32\x15.CChatRoomSummaryPair\"@\n\'CChatRoom_GetChatRoomGroupState_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\"O\n(CChatRoom_GetChatRoomGroupState_Response\x12#\n\x05state\x18\x01 \x01(\x0b\x32\x14.CChatRoomGroupState\"B\n)CChatRoom_GetChatRoomGroupSummary_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\"d\n0CChatRoom_SetAppChatRoomGroupForceActive_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x19\n\x11requesting_app_id\x18\x02 \x01(\r\"`\n1CChatRoom_SetAppChatRoomGroupForceActive_Response\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x1b\n\x13\x61\x63\x63ounts_in_channel\x18\x02 \x03(\r\"m\n9CChatRoom_SetAppChatRoomGroupStopForceActive_Notification\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x19\n\x11requesting_app_id\x18\x02 \x01(\r\"b\n%CChatRoom_AckChatMessage_Notification\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07\x63hat_id\x18\x02 \x01(\x04\x12\x11\n\ttimestamp\x18\x03 \x01(\r\"c\n\"CChatRoom_CreateInviteLink_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x15\n\rseconds_valid\x18\x02 \x01(\r\x12\x0f\n\x07\x63hat_id\x18\x03 \x01(\x04\"Q\n#CChatRoom_CreateInviteLink_Response\x12\x13\n\x0binvite_code\x18\x01 \x01(\t\x12\x15\n\rseconds_valid\x18\x02 \x01(\r\":\n#CChatRoom_GetInviteLinkInfo_Request\x12\x13\n\x0binvite_code\x18\x01 \x01(\t\"\x8c\x02\n$CChatRoom_GetInviteLinkInfo_Response\x12\x16\n\x0esteamid_sender\x18\x03 \x01(\x06\x12\x14\n\x0ctime_expires\x18\x04 \x01(\r\x12\x0f\n\x07\x63hat_id\x18\x06 \x01(\x04\x12\x42\n\rgroup_summary\x18\x08 \x01(\x0b\x32+.CChatRoom_GetChatRoomGroupSummary_Response\x12\x37\n\x15user_chat_group_state\x18\t \x01(\x0b\x32\x18.CUserChatRoomGroupState\x12\x18\n\x10time_kick_expire\x18\n \x01(\r\x12\x0e\n\x06\x62\x61nned\x18\x0b \x01(\x08\"w\n\x1f\x43\x43hatRoom_GetInviteInfo_Request\x12\x17\n\x0fsteamid_invitee\x18\x01 \x01(\x06\x12\x15\n\rchat_group_id\x18\x02 \x01(\x04\x12\x0f\n\x07\x63hat_id\x18\x03 \x01(\x04\x12\x13\n\x0binvite_code\x18\x04 \x01(\t\"\x90\x01\n CChatRoom_GetInviteInfo_Response\x12\x42\n\rgroup_summary\x18\x01 \x01(\x0b\x32+.CChatRoom_GetChatRoomGroupSummary_Response\x12\x18\n\x10time_kick_expire\x18\x02 \x01(\r\x12\x0e\n\x06\x62\x61nned\x18\x03 \x01(\x08\"A\n(CChatRoom_GetInviteLinksForGroup_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\"\xd7\x01\n)CChatRoom_GetInviteLinksForGroup_Response\x12I\n\x0cinvite_links\x18\x01 \x03(\x0b\x32\x33.CChatRoom_GetInviteLinksForGroup_Response.LinkInfo\x1a_\n\x08LinkInfo\x12\x13\n\x0binvite_code\x18\x01 \x01(\t\x12\x17\n\x0fsteamid_creator\x18\x02 \x01(\x06\x12\x14\n\x0ctime_expires\x18\x03 \x01(\r\x12\x0f\n\x07\x63hat_id\x18\x04 \x01(\x04\"5\n\x1c\x43\x43hatRoom_GetBanList_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\"\xb5\x01\n\x1d\x43\x43hatRoom_GetBanList_Response\x12\x34\n\x04\x62\x61ns\x18\x01 \x03(\x0b\x32&.CChatRoom_GetBanList_Response.BanInfo\x1a^\n\x07\x42\x61nInfo\x12\x11\n\taccountid\x18\x01 \x01(\r\x12\x17\n\x0f\x61\x63\x63ountid_actor\x18\x02 \x01(\r\x12\x13\n\x0btime_banned\x18\x03 \x01(\r\x12\x12\n\nban_reason\x18\x04 \x01(\t\"8\n\x1f\x43\x43hatRoom_GetInviteList_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\"X\n\x14\x43\x43hatRoomGroupInvite\x12\x11\n\taccountid\x18\x01 \x01(\r\x12\x17\n\x0f\x61\x63\x63ountid_actor\x18\x02 \x01(\r\x12\x14\n\x0ctime_invited\x18\x03 \x01(\r\"J\n CChatRoom_GetInviteList_Response\x12&\n\x07invites\x18\x01 \x03(\x0b\x32\x15.CChatRoomGroupInvite\"P\n\"CChatRoom_DeleteInviteLink_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x13\n\x0binvite_code\x18\x02 \x01(\t\"%\n#CChatRoom_DeleteInviteLink_Response\"\xf4\x01\n0CChatRoom_SetSessionActiveChatRoomGroups_Request\x12\x16\n\x0e\x63hat_group_ids\x18\x01 \x03(\x04\x12\"\n\x1a\x63hat_groups_data_requested\x18\x02 \x03(\x04\x12\x83\x01\n\x1cvirtualize_members_threshold\x18\x03 \x01(\x05\x42]\x82\xb5\x18YIf a chat room has more members than this threshold, we will opt in to a virtualized list\"\x89\x01\n1CChatRoom_SetSessionActiveChatRoomGroups_Response\x12)\n\x0b\x63hat_states\x18\x01 \x03(\x0b\x32\x14.CChatRoomGroupState\x12)\n!virtualize_members_chat_group_ids\x18\x02 \x03(\x04\"\xaa\x06\n-CChatRoom_SetUserChatGroupPreferences_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x63\n\x16\x63hat_group_preferences\x18\x02 \x01(\x0b\x32\x43.CChatRoom_SetUserChatGroupPreferences_Request.ChatGroupPreferences\x12\x61\n\x15\x63hat_room_preferences\x18\x03 \x03(\x0b\x32\x42.CChatRoom_SetUserChatGroupPreferences_Request.ChatRoomPreferences\x1a\x83\x02\n\x14\x43hatGroupPreferences\x12\x65\n\x1a\x64\x65sktop_notification_level\x18\x01 \x01(\x0e\x32\x1b.EChatRoomNotificationLevel:$k_EChatroomNotificationLevel_Invalid\x12\x64\n\x19mobile_notification_level\x18\x02 \x01(\x0e\x32\x1b.EChatRoomNotificationLevel:$k_EChatroomNotificationLevel_Invalid\x12\x1e\n\x16unread_indicator_muted\x18\x03 \x01(\x08\x1a\x93\x02\n\x13\x43hatRoomPreferences\x12\x0f\n\x07\x63hat_id\x18\x01 \x01(\x04\x12\x65\n\x1a\x64\x65sktop_notification_level\x18\x02 \x01(\x0e\x32\x1b.EChatRoomNotificationLevel:$k_EChatroomNotificationLevel_Invalid\x12\x64\n\x19mobile_notification_level\x18\x03 \x01(\x0e\x32\x1b.EChatRoomNotificationLevel:$k_EChatroomNotificationLevel_Invalid\x12\x1e\n\x16unread_indicator_muted\x18\x04 \x01(\x08\"0\n.CChatRoom_SetUserChatGroupPreferences_Response\"\xc5\x01\n$CChatRoom_DeleteChatMessages_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07\x63hat_id\x18\x02 \x01(\x04\x12?\n\x08messages\x18\x03 \x03(\x0b\x32-.CChatRoom_DeleteChatMessages_Request.Message\x1a\x34\n\x07Message\x12\x18\n\x10server_timestamp\x18\x01 \x01(\r\x12\x0f\n\x07ordinal\x18\x02 \x01(\r\"\'\n%CChatRoom_DeleteChatMessages_Response\"\xe9\x03\n+CChatRoom_UpdateMemberListView_Notification\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12g\n\x07view_id\x18\x02 \x01(\x04\x42V\x82\xb5\x18RClient-generated ID.  Should send the same value on all requests for the same view\x12\r\n\x05start\x18\x03 \x01(\x05\x12\x0b\n\x03\x65nd\x18\x04 \x01(\x05\x12\x8f\x01\n\x13\x63lient_changenumber\x18\x05 \x01(\x05\x42r\x82\xb5\x18nAny updates from this call on will have this changenumber present.  Can be used to guarantee in-order updates.\x12>\n\x0b\x64\x65lete_view\x18\x06 \x01(\x08\x42)\x82\xb5\x18%Indicates this view has been deleted.\x12$\n\x1cpersona_subscribe_accountids\x18\x07 \x03(\x05\x12&\n\x1epersona_unsubscribe_accountids\x18\x08 \x03(\x05\"\x97\x02\n\x1f\x43\x43hatRoom_SearchMembers_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\xb2\x01\n\tsearch_id\x18\x02 \x01(\x04\x42\x9e\x01\x82\xb5\x18\x99\x01\x43lient-supplied id.  For find-as-you-type searches, as search narrows the server will not return persona states previously returned for a given searchid.\x12\x13\n\x0bsearch_text\x18\x03 \x01(\t\x12\x13\n\x0bmax_results\x18\x04 \x01(\x05\"\xd4\x01\n CChatRoom_SearchMembers_Response\x12G\n\x10matching_members\x18\x01 \x03(\x0b\x32-.CChatRoom_SearchMembers_Response.MemberMatch\x12\x14\n\x0cstatus_flags\x18\x02 \x01(\r\x1aQ\n\x0bMemberMatch\x12\x11\n\taccountid\x18\x01 \x01(\x05\x12/\n\x07persona\x18\x02 \x01(\x0b\x32\x1e.CMsgClientPersonaState.Friend\"\x98\x01\n*CClanChatRooms_GetClanChatRoomInfo_Request\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12Y\n\nautocreate\x18\x02 \x01(\x08:\x04trueB?\x82\xb5\x18;Create a default chat room if none has been created before.\"v\n+CClanChatRooms_GetClanChatRoomInfo_Response\x12G\n\x12\x63hat_group_summary\x18\x01 \x01(\x0b\x32+.CChatRoom_GetChatRoomGroupSummary_Response\"[\n-CClanChatRooms_SetClanChatRoomPrivate_Request\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x19\n\x11\x63hat_room_private\x18\x02 \x01(\x08\"K\n.CClanChatRooms_SetClanChatRoomPrivate_Response\x12\x19\n\x11\x63hat_room_private\x18\x01 \x01(\x08\"V\n\rCChatMentions\x12\x13\n\x0bmention_all\x18\x01 \x01(\x08\x12\x14\n\x0cmention_here\x18\x02 \x01(\x08\x12\x1a\n\x12mention_accountids\x18\x03 \x03(\r\"\xd5\x02\n*CChatRoom_IncomingChatMessage_Notification\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07\x63hat_id\x18\x02 \x01(\x04\x12\x16\n\x0esteamid_sender\x18\x03 \x01(\x06\x12\x0f\n\x07message\x18\x04 \x01(\t\x12\x11\n\ttimestamp\x18\x05 \x01(\r\x12 \n\x08mentions\x18\x06 \x01(\x0b\x32\x0e.CChatMentions\x12\x0f\n\x07ordinal\x18\x07 \x01(\r\x12&\n\x0eserver_message\x18\x08 \x01(\x0b\x32\x0e.ServerMessage\x12\x19\n\x11message_no_bbcode\x18\t \x01(\t\x12M\n\tchat_name\x18\n \x01(\tB:\x82\xb5\x18\x36\x41 name to use for the chat, intended for notifications\"\xea\x01\n*CChatRoom_ChatMessageModified_Notification\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07\x63hat_id\x18\x02 \x01(\x04\x12I\n\x08messages\x18\x03 \x03(\x0b\x32\x37.CChatRoom_ChatMessageModified_Notification.ChatMessage\x1aI\n\x0b\x43hatMessage\x12\x18\n\x10server_timestamp\x18\x01 \x01(\r\x12\x0f\n\x07ordinal\x18\x02 \x01(\r\x12\x0f\n\x07\x64\x65leted\x18\x03 \x01(\x08\"\xb6\x01\n(CChatRoom_MemberStateChange_Notification\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12 \n\x06member\x18\x02 \x01(\x0b\x32\x10.CChatRoomMember\x12Q\n\x06\x63hange\x18\x03 \x01(\x0e\x32\x1b.EChatRoomMemberStateChange:$k_EChatRoomMemberStateChange_Invalid\"^\n*CChatRoom_ChatRoomHeaderState_Notification\x12\x30\n\x0cheader_state\x18\x01 \x01(\x0b\x32\x1a.CChatRoomGroupHeaderState\"\x86\x01\n/CChatRoom_ChatRoomGroupRoomsChange_Notification\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x17\n\x0f\x64\x65\x66\x61ult_chat_id\x18\x02 \x01(\x04\x12#\n\nchat_rooms\x18\x03 \x03(\x0b\x32\x0f.CChatRoomState\"d\n:CChatRoom_NotifyShouldRejoinChatRoomVoiceChat_Notification\x12\x0f\n\x07\x63hat_id\x18\x01 \x01(\x04\x12\x15\n\rchat_group_id\x18\x02 \x01(\x04\"\xa9\x02\n;ChatRoomClient_NotifyChatGroupUserStateChanged_Notification\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x37\n\x15user_chat_group_state\x18\x02 \x01(\x0b\x32\x18.CUserChatRoomGroupState\x12\x42\n\rgroup_summary\x18\x03 \x01(\x0b\x32+.CChatRoom_GetChatRoomGroupSummary_Response\x12V\n\x0buser_action\x18\x04 \x01(\x0e\x32\x1b.EChatRoomMemberStateChange:$k_EChatRoomMemberStateChange_Invalid\"N\n4ChatRoomClient_NotifyChatRoomDisconnect_Notification\x12\x16\n\x0e\x63hat_group_ids\x18\x01 \x03(\x04\"\x94\x02\n\x17\x43\x43hatRoomMemberListView\x12\r\n\x05start\x18\x03 \x01(\x05\x12\x0b\n\x03\x65nd\x18\x04 \x01(\x05\x12\x13\n\x0btotal_count\x18\x05 \x01(\x05\x12\x61\n\x13\x63lient_changenumber\x18\x06 \x01(\x05\x42\x44\x82\xb5\x18@Value sent by the client on the last UpdateMemberListView call. \x12\x65\n\x13server_changenumber\x18\x07 \x01(\x05\x42H\x82\xb5\x18\x44Value incremented by the server on each MemberListViewUpdated call. \"O\n\x1c\x43\x43hatRoomMemberSummaryCounts\x12\x0e\n\x06ingame\x18\x01 \x01(\x05\x12\x0e\n\x06online\x18\x02 \x01(\x05\x12\x0f\n\x07offline\x18\x03 \x01(\x05\"\x8f\x04\n2CChatRoomClient_MemberListViewUpdated_Notification\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12M\n\x07view_id\x18\x02 \x01(\x04\x42<\x82\xb5\x18\x38Thew view_id supplied when the client created the view. \x12&\n\x04view\x18\x03 \x01(\x0b\x32\x18.CChatRoomMemberListView\x12X\n\x07members\x18\x04 \x03(\x0b\x32G.CChatRoomClient_MemberListViewUpdated_Notification.MemberListViewEntry\x12\x14\n\x0cstatus_flags\x18\x05 \x01(\r\x12\x35\n\x0emember_summary\x18\x06 \x01(\x0b\x32\x1d.CChatRoomMemberSummaryCounts\x12;\n\x13subscribed_personas\x18\x07 \x03(\x0b\x32\x1e.CMsgClientPersonaState.Friend\x1ag\n\x13MemberListViewEntry\x12\x0c\n\x04rank\x18\x01 \x01(\x05\x12\x11\n\taccountid\x18\x02 \x01(\r\x12/\n\x07persona\x18\x03 \x01(\x0b\x32\x1e.CMsgClientPersonaState.Friend\"\xdf\x15\n2CChatUsability_ClientUsabilityMetrics_Notification\x12\x16\n\x0emetrics_run_id\x18\x01 \x01(\r\x12\x14\n\x0c\x63lient_build\x18\x02 \x01(\r\x12\x17\n\x0fmetrics_version\x18\x03 \x01(\r\x12\x0e\n\x06in_web\x18\x04 \x01(\x08\x12N\n\x08settings\x18\n \x01(\x0b\x32<.CChatUsability_ClientUsabilityMetrics_Notification.Settings\x12Y\n\x0evoice_settings\x18\x0b \x01(\x0b\x32\x41.CChatUsability_ClientUsabilityMetrics_Notification.VoiceSettings\x12M\n\x08ui_state\x18\x0c \x01(\x0b\x32;.CChatUsability_ClientUsabilityMetrics_Notification.UIState\x12L\n\x07metrics\x18\r \x01(\x0b\x32;.CChatUsability_ClientUsabilityMetrics_Notification.Metrics\x1a\xd9\x06\n\x08Settings\x12!\n\x19notifications_show_ingame\x18\x01 \x01(\x08\x12!\n\x19notifications_show_online\x18\x02 \x01(\x08\x12\"\n\x1anotifications_show_message\x18\x03 \x01(\x08\x12.\n&notifications_events_and_announcements\x18\x04 \x01(\x08\x12\x1a\n\x12sounds_play_ingame\x18\x05 \x01(\x08\x12\x1a\n\x12sounds_play_online\x18\x06 \x01(\x08\x12\x1b\n\x13sounds_play_message\x18\x07 \x01(\x08\x12\'\n\x1fsounds_events_and_announcements\x18\x08 \x01(\x08\x12\x1e\n\x16\x61lways_new_chat_window\x18\t \x01(\x08\x12\'\n\x1f\x66orce_alphabetic_friend_sorting\x18\n \x01(\x08\x12\x17\n\x0f\x63hat_flash_mode\x18\x0b \x01(\x05\x12\x1b\n\x13remember_open_chats\x18\x0c \x01(\x08\x12\x1c\n\x14\x63ompact_quick_access\x18\r \x01(\x08\x12\x1c\n\x14\x63ompact_friends_list\x18\x0e \x01(\x08\x12\x31\n)notifications_show_chat_room_notification\x18\x0f \x01(\x08\x12*\n\"sounds_play_chat_room_notification\x18\x10 \x01(\x08\x12*\n\"hide_offline_friends_in_tag_groups\x18\x11 \x01(\x08\x12 \n\x18hide_categorized_friends\x18\x12 \x01(\x08\x12*\n\"categorize_in_game_friends_by_game\x18\x13 \x01(\x08\x12\x16\n\x0e\x63hat_font_size\x18\x14 \x01(\x05\x12\x17\n\x0fuse24hour_clock\x18\x15 \x01(\x08\x12\x1b\n\x13\x64o_not_disturb_mode\x18\x16 \x01(\x08\x12\x1e\n\x16\x64isable_embed_inlining\x18\x17 \x01(\x08\x12\x19\n\x11sign_into_friends\x18\x18 \x01(\x08\x12\x18\n\x10\x61nimated_avatars\x18\x19 \x01(\x08\x1a\xea\x02\n\rVoiceSettings\x12\x18\n\x10voice_input_gain\x18\x01 \x01(\x02\x12\x19\n\x11voice_output_gain\x18\x02 \x01(\x02\x12\x18\n\x10noise_gate_level\x18\x03 \x01(\x05\x12#\n\x1bvoice_use_echo_cancellation\x18\x04 \x01(\x08\x12$\n\x1cvoice_use_noise_cancellation\x18\x05 \x01(\x08\x12#\n\x1bvoice_use_auto_gain_control\x18\x06 \x01(\x08\x12 \n\x18selected_non_default_mic\x18\x07 \x01(\x08\x12#\n\x1bselected_non_default_output\x18\x08 \x01(\x08\x12\x1c\n\x14push_to_talk_enabled\x18\t \x01(\x08\x12\x1c\n\x14push_to_mute_enabled\x18\n \x01(\x08\x12\x17\n\x0fplay_ptt_sounds\x18\x0b \x01(\x08\x1a\xfd\x05\n\x07UIState\x12\x1b\n\x13\x66riends_list_height\x18\x01 \x01(\x05\x12\x1a\n\x12\x66riends_list_width\x18\x02 \x01(\x05\x12\x1b\n\x13\x66riends_list_docked\x18\x03 \x01(\x08\x12\x1e\n\x16\x66riends_list_collapsed\x18\x04 \x01(\x08\x12\'\n\x1f\x66riends_list_group_chats_height\x18\x05 \x01(\x05\x12\x1c\n\x14\x66riends_list_visible\x18\x06 \x01(\x08\x12\x1a\n\x12\x63hat_popups_opened\x18\x07 \x01(\x05\x12\x1e\n\x16group_chat_tabs_opened\x18\x08 \x01(\x05\x12\x1f\n\x17\x66riend_chat_tabs_opened\x18\t \x01(\x05\x12\x19\n\x11\x63hat_window_width\x18\n \x01(\x05\x12\x1a\n\x12\x63hat_window_height\x18\x0b \x01(\x05\x12l\n\x11\x63\x61tegory_collapse\x18\x0c \x01(\x0b\x32Q.CChatUsability_ClientUsabilityMetrics_Notification.UIState.CategoryCollapseState\x12%\n\x1dgroup_chat_left_col_collapsed\x18\r \x01(\x05\x12&\n\x1egroup_chat_right_col_collapsed\x18\x0e \x01(\x05\x12 \n\x18in_one_on_one_voice_chat\x18\x0f \x01(\x08\x12\x1b\n\x13in_group_voice_chat\x18\x10 \x01(\x08\x1a\xa4\x01\n\x15\x43\x61tegoryCollapseState\x12\x19\n\x11in_game_collapsed\x18\x01 \x01(\x08\x12\x18\n\x10online_collapsed\x18\x02 \x01(\x08\x12\x19\n\x11offline_collapsed\x18\x03 \x01(\x08\x12\x1d\n\x15game_groups_collapsed\x18\x04 \x01(\x05\x12\x1c\n\x14\x63\x61tegories_collapsed\x18\x05 \x01(\x05\x1a\xc0\x02\n\x07Metrics\x12\x15\n\rfriends_count\x18\x01 \x01(\x05\x12\x1e\n\x16\x66riends_category_count\x18\x02 \x01(\x05\x12!\n\x19\x66riends_categorized_count\x18\x03 \x01(\x05\x12\x1c\n\x14\x66riends_online_count\x18\x04 \x01(\x05\x12\x1d\n\x15\x66riends_in_game_count\x18\x05 \x01(\x05\x12\'\n\x1f\x66riends_in_game_singleton_count\x18\x06 \x01(\x05\x12\x18\n\x10game_group_count\x18\x07 \x01(\x05\x12\x1e\n\x16\x66riends_favorite_count\x18\x08 \x01(\x05\x12\x18\n\x10group_chat_count\x18\t \x01(\x05\x12!\n\x19group_chat_favorite_count\x18\n \x01(\x05\"S\n9CChatUsability_RequestClientUsabilityMetrics_Notification\x12\x16\n\x0emetrics_run_id\x18\x01 \x01(\r*\x9c\x01\n\x12\x45\x43hatRoomJoinState\x12 \n\x1ck_EChatRoomJoinState_Default\x10\x00\x12\x1d\n\x19k_EChatRoomJoinState_None\x10\x01\x12\x1f\n\x1bk_EChatRoomJoinState_Joined\x10\x02\x12$\n k_EChatRoomJoinState_TestInvalid\x10\x63*\xa4\x02\n\x12\x45\x43hatRoomGroupRank\x12 \n\x1ck_EChatRoomGroupRank_Default\x10\x00\x12\x1f\n\x1bk_EChatRoomGroupRank_Viewer\x10\n\x12\x1e\n\x1ak_EChatRoomGroupRank_Guest\x10\x0f\x12\x1f\n\x1bk_EChatRoomGroupRank_Member\x10\x14\x12\"\n\x1ek_EChatRoomGroupRank_Moderator\x10\x1e\x12 \n\x1ck_EChatRoomGroupRank_Officer\x10(\x12\x1e\n\x1ak_EChatRoomGroupRank_Owner\x10\x32\x12$\n k_EChatRoomGroupRank_TestInvalid\x10\x63*\xf4\x01\n\x1a\x45\x43hatRoomNotificationLevel\x12(\n$k_EChatroomNotificationLevel_Invalid\x10\x00\x12%\n!k_EChatroomNotificationLevel_None\x10\x01\x12*\n&k_EChatroomNotificationLevel_MentionMe\x10\x02\x12+\n\'k_EChatroomNotificationLevel_MentionAll\x10\x03\x12,\n(k_EChatroomNotificationLevel_AllMessages\x10\x04*\x97\x03\n\x16\x45\x43hatRoomServerMessage\x12 \n\x1ck_EChatRoomServerMsg_Invalid\x10\x00\x12\'\n#k_EChatRoomServerMsg_RenameChatRoom\x10\x01\x12\x1f\n\x1bk_EChatRoomServerMsg_Joined\x10\x02\x12\x1f\n\x1bk_EChatRoomServerMsg_Parted\x10\x03\x12\x1f\n\x1bk_EChatRoomServerMsg_Kicked\x10\x04\x12 \n\x1ck_EChatRoomServerMsg_Invited\x10\x05\x12(\n$k_EChatRoomServerMsg_InviteDismissed\x10\x08\x12/\n+k_EChatRoomServerMsg_ChatRoomTaglineChanged\x10\t\x12.\n*k_EChatRoomServerMsg_ChatRoomAvatarChanged\x10\n\x12\"\n\x1ek_EChatRoomServerMsg_AppCustom\x10\x0b*\xcb\x03\n\x1a\x45\x43hatRoomMemberStateChange\x12(\n$k_EChatRoomMemberStateChange_Invalid\x10\x00\x12\'\n#k_EChatRoomMemberStateChange_Joined\x10\x01\x12\'\n#k_EChatRoomMemberStateChange_Parted\x10\x02\x12\'\n#k_EChatRoomMemberStateChange_Kicked\x10\x03\x12(\n$k_EChatRoomMemberStateChange_Invited\x10\x04\x12,\n(k_EChatRoomMemberStateChange_RankChanged\x10\x07\x12\x30\n,k_EChatRoomMemberStateChange_InviteDismissed\x10\x08\x12&\n\"k_EChatRoomMemberStateChange_Muted\x10\t\x12\'\n#k_EChatRoomMemberStateChange_Banned\x10\n\x12-\n)k_EChatRoomMemberStateChange_RolesChanged\x10\x0c\x32\x8b\x02\n\x04\x43hat\x12\xe7\x01\n\x1aRequestFriendPersonaStates\x12).CChat_RequestFriendPersonaStates_Request\x1a*.CChat_RequestFriendPersonaStates_Response\"r\x82\xb5\x18nRequest to be notified of online friend persona state information.  Responses sent via CMsgClientPersonaState.\x1a\x19\x82\xb5\x18\x15\x43hat-related services2\xda;\n\x08\x43hatRoom\x12\xa3\x01\n\x13\x43reateChatRoomGroup\x12&.CChatRoom_CreateChatRoomGroup_Request\x1a\'.CChatRoom_CreateChatRoomGroup_Response\";\x82\xb5\x18\x37\x43reate\'s a chat group that can contain other chat rooms\x12z\n\x11SaveChatRoomGroup\x12$.CChatRoom_SaveChatRoomGroup_Request\x1a%.CChatRoom_SaveChatRoomGroup_Response\"\x18\x82\xb5\x18\x14Saves\'s a chat group\x12\x84\x01\n\x13RenameChatRoomGroup\x12&.CChatRoom_RenameChatRoomGroup_Request\x1a\'.CChatRoom_RenameChatRoomGroup_Response\"\x1c\x82\xb5\x18\x18Rename a chat room group\x12\x99\x01\n\x17SetChatRoomGroupTagline\x12*.CChatRoom_SetChatRoomGroupTagline_Request\x1a+.CChatRoom_SetChatRoomGroupTagline_Response\"%\x82\xb5\x18!Set tagline for a chat room group\x12\x99\x01\n\x16SetChatRoomGroupAvatar\x12).CChatRoom_SetChatRoomGroupAvatar_Request\x1a*.CChatRoom_SetChatRoomGroupAvatar_Response\"(\x82\xb5\x18$Set avatar SHA for a chat room group\x12\xcb\x01\n!SetChatRoomGroupWatchingBroadcast\x12\x34.CChatRoom_SetChatRoomGroupWatchingBroadcast_Request\x1a\x35.CChatRoom_SetChatRoomGroupWatchingBroadcast_Response\"9\x82\xb5\x18\x35Sets a broadcast that the chat room group is watching\x12\xe3\x01\n\x1cJoinMiniGameForChatRoomGroup\x12/.CChatRoom_JoinMiniGameForChatRoomGroup_Request\x1a\x30.CChatRoom_JoinMiniGameForChatRoomGroup_Response\"`\x82\xb5\x18\\Joins the minigame for the chat room group or starts a new one (Winter 2019 sale party game)\x12\xac\x01\n\x1b\x45ndMiniGameForChatRoomGroup\x12..CChatRoom_EndMiniGameForChatRoomGroup_Request\x1a/.CChatRoom_EndMiniGameForChatRoomGroup_Response\",\x82\xb5\x18(Ends the minigame in the chat room group\x12\x64\n\x0fMuteUserInGroup\x12\x1b.CChatRoom_MuteUser_Request\x1a\x1c.CChatRoom_MuteUser_Response\"\x16\x82\xb5\x18\x12Mute user in group\x12h\n\x11KickUserFromGroup\x12\x1b.CChatRoom_KickUser_Request\x1a\x1c.CChatRoom_KickUser_Response\"\x18\x82\xb5\x18\x14Kick user from group\x12y\n\x0fSetUserBanState\x12\".CChatRoom_SetUserBanState_Request\x1a#.CChatRoom_SetUserBanState_Response\"\x1d\x82\xb5\x18\x19\x42\x61n/unban user from group\x12\x82\x01\n\x13RevokeInviteToGroup\x12\x1f.CChatRoom_RevokeInvite_Request\x1a .CChatRoom_RevokeInvite_Response\"(\x82\xb5\x18$Revoke a direct invitation of a user\x12\x65\n\nCreateRole\x12\x1d.CChatRoom_CreateRole_Request\x1a\x1e.CChatRoom_CreateRole_Response\"\x18\x82\xb5\x18\x14\x43reate role for goup\x12\x61\n\x08GetRoles\x12\x1b.CChatRoom_GetRoles_Request\x1a\x1c.CChatRoom_GetRoles_Response\"\x1a\x82\xb5\x18\x16Get all roles in group\x12\x65\n\nRenameRole\x12\x1d.CChatRoom_RenameRole_Request\x1a\x1e.CChatRoom_RenameRole_Response\"\x18\x82\xb5\x18\x14Rename role for goup\x12l\n\x0bReorderRole\x12\x1e.CChatRoom_ReorderRole_Request\x1a\x1f.CChatRoom_ReorderRole_Response\"\x1c\x82\xb5\x18\x18Reorder role with a goup\x12g\n\nDeleteRole\x12\x1d.CChatRoom_DeleteRole_Request\x1a\x1e.CChatRoom_DeleteRole_Response\"\x1a\x82\xb5\x18\x16\x44\x65lete role from group\x12\x87\x01\n\x0eGetRoleActions\x12!.CChatRoom_GetRoleActions_Request\x1a\".CChatRoom_GetRoleActions_Response\".\x82\xb5\x18*Get all defined roles and actions in group\x12\x86\x01\n\x12ReplaceRoleActions\x12%.CChatRoom_ReplaceRoleActions_Request\x1a&.CChatRoom_ReplaceRoleActions_Response\"!\x82\xb5\x18\x1dReplace role actions in group\x12s\n\rAddRoleToUser\x12 .CChatRoom_AddRoleToUser_Request\x1a!.CChatRoom_AddRoleToUser_Response\"\x1d\x82\xb5\x18\x19\x41\x64\x64 role to user in group\x12\x87\x01\n\x0fGetRolesForUser\x12\".CChatRoom_GetRolesForUser_Request\x1a#.CChatRoom_GetRolesForUser_Response\"+\x82\xb5\x18\'Get all roles assigned to user in group\x12\x87\x01\n\x12\x44\x65leteRoleFromUser\x12%.CChatRoom_DeleteRoleFromUser_Request\x1a&.CChatRoom_DeleteRoleFromUser_Response\"\"\x82\xb5\x18\x1e\x44\x65lete role from user in group\x12\x81\x01\n\x11JoinChatRoomGroup\x12$.CChatRoom_JoinChatRoomGroup_Request\x1a%.CChatRoom_JoinChatRoomGroup_Response\"\x1f\x82\xb5\x18\x1bJoin a multi-user chat room\x12\xad\x01\n\x1bInviteFriendToChatRoomGroup\x12..CChatRoom_InviteFriendToChatRoomGroup_Request\x1a/.CChatRoom_InviteFriendToChatRoomGroup_Response\"-\x82\xb5\x18)Invite a friend to a multi-user chat room\x12\x97\x01\n\x12LeaveChatRoomGroup\x12%.CChatRoom_LeaveChatRoomGroup_Request\x1a&.CChatRoom_LeaveChatRoomGroup_Response\"2\x82\xb5\x18.Leaves a chat room group and all related chats\x12\x89\x01\n\x0e\x43reateChatRoom\x12!.CChatRoom_CreateChatRoom_Request\x1a\".CChatRoom_CreateChatRoom_Response\"0\x82\xb5\x18,Creates a chat room inside a chat room group\x12\x89\x01\n\x0e\x44\x65leteChatRoom\x12!.CChatRoom_DeleteChatRoom_Request\x1a\".CChatRoom_DeleteChatRoom_Response\"0\x82\xb5\x18,Deletes a chat room inside a chat room group\x12\x89\x01\n\x0eRenameChatRoom\x12!.CChatRoom_RenameChatRoom_Request\x1a\".CChatRoom_RenameChatRoom_Response\"0\x82\xb5\x18,Renames a chat room inside a chat room group\x12\x8d\x01\n\x0fReorderChatRoom\x12\".CChatRoom_ReorderChatRoom_Request\x1a#.CChatRoom_ReorderChatRoom_Response\"1\x82\xb5\x18-Reorders a chat room inside a chat room group\x12\x8d\x01\n\x0fSendChatMessage\x12\".CChatRoom_SendChatMessage_Request\x1a#.CChatRoom_SendChatMessage_Response\"1\x82\xb5\x18-Send a chat message to a multi-user chat room\x12\xa7\x01\n\rJoinVoiceChat\x12 .CChatRoom_JoinVoiceChat_Request\x1a!.CChatRoom_JoinVoiceChat_Response\"Q\x82\xb5\x18MJoin the voice chat in a multi-room chat (should already be in the chat room)\x12\x86\x01\n\x0eLeaveVoiceChat\x12!.CChatRoom_LeaveVoiceChat_Request\x1a\".CChatRoom_LeaveVoiceChat_Response\"-\x82\xb5\x18)Leave the voice chat in a multi-room chat\x12\xc3\x01\n\x11GetMessageHistory\x12$.CChatRoom_GetMessageHistory_Request\x1a%.CChatRoom_GetMessageHistory_Response\"a\x82\xb5\x18]Get the history of messages in a chat room.  You must currently be a member of the chat room.\x12\x88\x01\n\x13GetMyChatRoomGroups\x12&.CChatRoom_GetMyChatRoomGroups_Request\x1a\'.CChatRoom_GetMyChatRoomGroups_Response\" \x82\xb5\x18\x1cGet a list of our chat rooms\x12\x9a\x01\n\x15GetChatRoomGroupState\x12(.CChatRoom_GetChatRoomGroupState_Request\x1a).CChatRoom_GetChatRoomGroupState_Response\",\x82\xb5\x18(Get information about a single chat room\x12\xa5\x01\n\x17GetChatRoomGroupSummary\x12*.CChatRoom_GetChatRoomGroupSummary_Request\x1a+.CChatRoom_GetChatRoomGroupSummary_Response\"1\x82\xb5\x18-Get basic information about a chat room group\x12\xd3\x01\n\x1eSetAppChatRoomGroupForceActive\x12\x31.CChatRoom_SetAppChatRoomGroupForceActive_Request\x1a\x32.CChatRoom_SetAppChatRoomGroupForceActive_Response\"J\x82\xb5\x18\x46\x46orce a group chat to be considered active on the server for this user\x12\xd3\x01\n\"SetAppChatRoomGroupStopForceActive\x12:.CChatRoom_SetAppChatRoomGroupStopForceActive_Notification\x1a\x0b.NoResponse\"d\x82\xb5\x18`If a group chat is forced active (see SetAppChatRoomGroupForceActive), decrement the force count\x12\x8f\x01\n\x0e\x41\x63kChatMessage\x12&.CChatRoom_AckChatMessage_Notification\x1a\x0b.NoResponse\"H\x82\xb5\x18\x44\x41\x63knowledge that we have seen the most recent chat message in a chat\x12\x81\x01\n\x10\x43reateInviteLink\x12#.CChatRoom_CreateInviteLink_Request\x1a$.CChatRoom_CreateInviteLink_Response\"\"\x82\xb5\x18\x1e\x43reates a chatroom invite link\x12\x90\x01\n\x11GetInviteLinkInfo\x12$.CChatRoom_GetInviteLinkInfo_Request\x1a%.CChatRoom_GetInviteLinkInfo_Response\".\x82\xb5\x18*Returns chat room info about provided link\x12\xaa\x01\n\rGetInviteInfo\x12 .CChatRoom_GetInviteInfo_Request\x1a!.CChatRoom_GetInviteInfo_Response\"T\x82\xb5\x18PReturns chat room info about any invite involving the sender and passed group id\x12\xa5\x01\n\x16GetInviteLinksForGroup\x12).CChatRoom_GetInviteLinksForGroup_Request\x1a*.CChatRoom_GetInviteLinksForGroup_Response\"4\x82\xb5\x18\x30Returns all invite links for the specified group\x12\x8b\x01\n\nGetBanList\x12\x1d.CChatRoom_GetBanList_Request\x1a\x1e.CChatRoom_GetBanList_Response\">\x82\xb5\x18:Gets a list of users who have been banned from a chat room\x12\x93\x01\n\rGetInviteList\x12 .CChatRoom_GetInviteList_Request\x1a!.CChatRoom_GetInviteList_Response\"=\x82\xb5\x18\x39Gets a list of users who have been invited to a chat room\x12\x80\x01\n\x10\x44\x65leteInviteLink\x12#.CChatRoom_DeleteInviteLink_Request\x1a$.CChatRoom_DeleteInviteLink_Response\"!\x82\xb5\x18\x1d\x44\x65letes specified invite link\x12\xc4\x01\n\x1eSetSessionActiveChatRoomGroups\x12\x31.CChatRoom_SetSessionActiveChatRoomGroups_Request\x1a\x32.CChatRoom_SetSessionActiveChatRoomGroups_Response\";\x82\xb5\x18\x37Set which chat rooms we are using in the active session\x12\xb9\x01\n\x1bSetUserChatGroupPreferences\x12..CChatRoom_SetUserChatGroupPreferences_Request\x1a/.CChatRoom_SetUserChatGroupPreferences_Response\"9\x82\xb5\x18\x35Set preferences around chat notifications for a group\x12\x88\x01\n\x12\x44\x65leteChatMessages\x12%.CChatRoom_DeleteChatMessages_Request\x1a&.CChatRoom_DeleteChatMessages_Response\"#\x82\xb5\x18\x1f\x44\x65letes specified chat messages\x12\x9a\x01\n\x14UpdateMemberListView\x12,.CChatRoom_UpdateMemberListView_Notification\x1a\x0b.NoResponse\"G\x82\xb5\x18\x43\x41 client is indicating it has an active view into the members list.\x12{\n\rSearchMembers\x12 .CChatRoom_SearchMembers_Request\x1a!.CChatRoom_SearchMembers_Response\"%\x82\xb5\x18!Search chat room members by name.\x1a\x42\x82\xb5\x18>Service for joining, managing, and using multi-user chat rooms2\xae\x03\n\rClanChatRooms\x12\xb8\x01\n\x13GetClanChatRoomInfo\x12+.CClanChatRooms_GetClanChatRoomInfo_Request\x1a,.CClanChatRooms_GetClanChatRoomInfo_Response\"F\x82\xb5\x18\x42Get a list of chat rooms for a clan, optionally creating a new one\x12\xb2\x01\n\x16SetClanChatRoomPrivate\x12..CClanChatRooms_SetClanChatRoomPrivate_Request\x1a/.CClanChatRooms_SetClanChatRoomPrivate_Response\"7\x82\xb5\x18\x33Set a clan chat room to be members only (or public)\x1a-\x82\xb5\x18)Methods for getting clan chat information2\x86\x0e\n\x0e\x43hatRoomClient\x12{\n\x19NotifyIncomingChatMessage\x12+.CChatRoom_IncomingChatMessage_Notification\x1a\x0b.NoResponse\"$\x82\xb5\x18 New chat message for a chat room\x12\x94\x01\n\x19NotifyChatMessageModified\x12+.CChatRoom_ChatMessageModified_Notification\x1a\x0b.NoResponse\"=\x82\xb5\x18\x39\x41n existing chat message has been modified on the backend\x12\x95\x01\n\x17NotifyMemberStateChange\x12).CChatRoom_MemberStateChange_Notification\x1a\x0b.NoResponse\"B\x82\xb5\x18>A chat room member\'s state has changed (join/part/permissions)\x12\x88\x01\n\x1fNotifyChatRoomHeaderStateChange\x12+.CChatRoom_ChatRoomHeaderState_Notification\x1a\x0b.NoResponse\"+\x82\xb5\x18\'Chat Room header / metadata has changed\x12\xa6\x01\n\x1eNotifyChatRoomGroupRoomsChange\x12\x30.CChatRoom_ChatRoomGroupRoomsChange_Notification\x1a\x0b.NoResponse\"E\x82\xb5\x18\x41Something about a chatroom group changed (created, deleted, etc.)\x12\xd5\x01\n#NotifyShouldRejoinChatRoomVoiceChat\x12;.CChatRoom_NotifyShouldRejoinChatRoomVoiceChat_Notification\x1a\x0b.NoResponse\"d\x82\xb5\x18`Voice chat was recreated or dropped on the backend and client needs to rejoin to remain in chat.\x12\xb3\x01\n\x1fNotifyChatGroupUserStateChanged\x12<.ChatRoomClient_NotifyChatGroupUserStateChanged_Notification\x1a\x0b.NoResponse\"E\x82\xb5\x18\x41User chat group state (preferences, ack state, etc) have changed.\x12\x8f\x01\n\x18NotifyAckChatMessageEcho\x12&.CChatRoom_AckChatMessage_Notification\x1a\x0b.NoResponse\">\x82\xb5\x18:A session acked an unread message, echo to other sessions.\x12\xed\x01\n\x18NotifyChatRoomDisconnect\x12\x35.ChatRoomClient_NotifyChatRoomDisconnect_Notification\x1a\x0b.NoResponse\"\x8c\x01\x82\xb5\x18\x87\x01The ChatRoom server hosting the chat rooms has reconnected to the user\'s Chat server (may have restarted), client should refresh state.\x12\xd5\x01\n\x1bNotifyMemberListViewUpdated\x12\x33.CChatRoomClient_MemberListViewUpdated_Notification\x1a\x0b.NoResponse\"t\x82\xb5\x18pThe list of members for a chat room with virtualized member list has changed on the server (or client requested)\x1a,\x82\xb5\x18$Client notifications for chat events\xc0\xb5\x18\x02\x32\xc2\x01\n\rChatUsability\x12\x86\x01\n\x1cNotifyClientUsabilityMetrics\x12\x33.CChatUsability_ClientUsabilityMetrics_Notification\x1a\x0b.NoResponse\"$\x82\xb5\x18 Incoming metrics from the client\x1a(\x82\xb5\x18$Client notifications for chat events2\xe2\x01\n\x13\x43hatUsabilityClient\x12\x99\x01\n#NotifyRequestClientUsabilityMetrics\x12:.CChatUsability_RequestClientUsabilityMetrics_Notification\x1a\x0b.NoResponse\")\x82\xb5\x18%Request client send usability metrics\x1a/\x82\xb5\x18\'Client notifications for chat usability\xc0\xb5\x18\x02\x42\x03\x90\x01\x01')
+  serialized_pb=_b('\n\x18steammessages_chat.proto\x1a steammessages_unified_base.proto\x1a(steammessages_clientserver_friends.proto\"*\n(CChat_RequestFriendPersonaStates_Request\"+\n)CChat_RequestFriendPersonaStates_Response\"\xce\x01\n%CChatRoom_CreateChatRoomGroup_Request\x12\x17\n\x0fsteamid_partner\x18\x01 \x01(\x06\x12\x17\n\x0fsteamid_invited\x18\x02 \x01(\x06\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x18\n\x10steamid_invitees\x18\x04 \x03(\x06\x12$\n\x1cwatching_broadcast_accountid\x18\x06 \x01(\r\x12%\n\x1dwatching_broadcast_channel_id\x18\x07 \x01(\x04\";\n\tCChatRole\x12\x0f\n\x07role_id\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0f\n\x07ordinal\x18\x03 \x01(\r\"\xd4\x02\n\x10\x43\x43hatRoleActions\x12\x0f\n\x07role_id\x18\x01 \x01(\x04\x12(\n can_create_rename_delete_channel\x18\x02 \x01(\x08\x12\x10\n\x08\x63\x61n_kick\x18\x03 \x01(\x08\x12\x0f\n\x07\x63\x61n_ban\x18\x04 \x01(\x08\x12\x12\n\ncan_invite\x18\x05 \x01(\x08\x12&\n\x1e\x63\x61n_change_tagline_avatar_name\x18\x06 \x01(\x08\x12\x10\n\x08\x63\x61n_chat\x18\x07 \x01(\x08\x12\x18\n\x10\x63\x61n_view_history\x18\x08 \x01(\x08\x12\x1e\n\x16\x63\x61n_change_group_roles\x18\t \x01(\x08\x12\x1d\n\x15\x63\x61n_change_user_roles\x18\n \x01(\x08\x12\x17\n\x0f\x63\x61n_mention_all\x18\x0b \x01(\x08\x12\"\n\x1a\x63\x61n_set_watching_broadcast\x18\x0c \x01(\x08\"c\n\x10\x43\x43hatPartyBeacon\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x15\n\rsteamid_owner\x18\x02 \x01(\x06\x12\x11\n\tbeacon_id\x18\x03 \x01(\x06\x12\x15\n\rgame_metadata\x18\x04 \x01(\t\"\xaa\x03\n\x19\x43\x43hatRoomGroupHeaderState\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x11\n\tchat_name\x18\x02 \x01(\t\x12\x0e\n\x06\x63lanid\x18\r \x01(\r\x12\x17\n\x0f\x61\x63\x63ountid_owner\x18\x0e \x01(\r\x12\r\n\x05\x61ppid\x18\x15 \x01(\r\x12\x0f\n\x07tagline\x18\x0f \x01(\t\x12\x12\n\navatar_sha\x18\x10 \x01(\x0c\x12\x17\n\x0f\x64\x65\x66\x61ult_role_id\x18\x11 \x01(\x04\x12\x19\n\x05roles\x18\x12 \x03(\x0b\x32\n.CChatRole\x12\'\n\x0crole_actions\x18\x13 \x03(\x0b\x32\x11.CChatRoleActions\x12$\n\x1cwatching_broadcast_accountid\x18\x14 \x01(\r\x12(\n\rparty_beacons\x18\x16 \x03(\x0b\x32\x11.CChatPartyBeacon\x12%\n\x1dwatching_broadcast_channel_id\x18\x17 \x01(\x04\x12\x1a\n\x12\x61\x63tive_minigame_id\x18\x18 \x01(\x04\x12\x16\n\x0e\x61vatar_ugc_url\x18\x19 \x01(\t\"\xd3\x01\n\x0f\x43\x43hatRoomMember\x12\x11\n\taccountid\x18\x01 \x01(\r\x12@\n\x05state\x18\x03 \x01(\x0e\x32\x13.EChatRoomJoinState:\x1ck_EChatRoomJoinState_Default\x12?\n\x04rank\x18\x04 \x01(\x0e\x32\x13.EChatRoomGroupRank:\x1ck_EChatRoomGroupRank_Default\x12\x18\n\x10time_kick_expire\x18\x06 \x01(\r\x12\x10\n\x08role_ids\x18\x07 \x03(\x04\"\xca\x01\n\x0e\x43\x43hatRoomState\x12\x0f\n\x07\x63hat_id\x18\x01 \x01(\x04\x12\x11\n\tchat_name\x18\x02 \x01(\t\x12\x15\n\rvoice_allowed\x18\x03 \x01(\x08\x12\x18\n\x10members_in_voice\x18\x04 \x03(\r\x12\x19\n\x11time_last_message\x18\x05 \x01(\r\x12\x12\n\nsort_order\x18\x06 \x01(\r\x12\x14\n\x0clast_message\x18\x07 \x01(\t\x12\x1e\n\x16\x61\x63\x63ountid_last_message\x18\x08 \x01(\r\"\xca\x01\n\x13\x43\x43hatRoomGroupState\x12\x30\n\x0cheader_state\x18\x01 \x01(\x0b\x32\x1a.CChatRoomGroupHeaderState\x12!\n\x07members\x18\x02 \x03(\x0b\x32\x10.CChatRoomMember\x12\x17\n\x0f\x64\x65\x66\x61ult_chat_id\x18\x04 \x01(\x04\x12#\n\nchat_rooms\x18\x05 \x03(\x0b\x32\x0f.CChatRoomState\x12 \n\x06kicked\x18\x07 \x03(\x0b\x32\x10.CChatRoomMember\"\xfb\x02\n\x12\x43UserChatRoomState\x12\x0f\n\x07\x63hat_id\x18\x01 \x01(\x04\x12\x13\n\x0btime_joined\x18\x02 \x01(\r\x12\x15\n\rtime_last_ack\x18\x03 \x01(\r\x12\x65\n\x1a\x64\x65sktop_notification_level\x18\x04 \x01(\x0e\x32\x1b.EChatRoomNotificationLevel:$k_EChatroomNotificationLevel_Invalid\x12\x64\n\x19mobile_notification_level\x18\x05 \x01(\x0e\x32\x1b.EChatRoomNotificationLevel:$k_EChatroomNotificationLevel_Invalid\x12\x19\n\x11time_last_mention\x18\x06 \x01(\r\x12%\n\x16unread_indicator_muted\x18\x07 \x01(\x08:\x05\x66\x61lse\x12\x19\n\x11time_first_unread\x18\x08 \x01(\r\"\x89\x03\n\x17\x43UserChatRoomGroupState\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x13\n\x0btime_joined\x18\x02 \x01(\r\x12\x31\n\x14user_chat_room_state\x18\x03 \x03(\x0b\x32\x13.CUserChatRoomState\x12\x65\n\x1a\x64\x65sktop_notification_level\x18\x04 \x01(\x0e\x32\x1b.EChatRoomNotificationLevel:$k_EChatroomNotificationLevel_Invalid\x12\x64\n\x19mobile_notification_level\x18\x05 \x01(\x0e\x32\x1b.EChatRoomNotificationLevel:$k_EChatroomNotificationLevel_Invalid\x12\x1b\n\x13time_last_group_ack\x18\x06 \x01(\r\x12%\n\x16unread_indicator_muted\x18\x07 \x01(\x08:\x05\x66\x61lse\"\x97\x01\n&CChatRoom_CreateChatRoomGroup_Response\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12#\n\x05state\x18\x02 \x01(\x0b\x32\x14.CChatRoomGroupState\x12\x31\n\x0fuser_chat_state\x18\x03 \x01(\x0b\x32\x18.CUserChatRoomGroupState\"J\n#CChatRoom_SaveChatRoomGroup_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\"&\n$CChatRoom_SaveChatRoomGroup_Response\"L\n%CChatRoom_RenameChatRoomGroup_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\"6\n&CChatRoom_RenameChatRoomGroup_Response\x12\x0c\n\x04name\x18\x01 \x01(\t\"S\n)CChatRoom_SetChatRoomGroupTagline_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07tagline\x18\x02 \x01(\t\",\n*CChatRoom_SetChatRoomGroupTagline_Response\"U\n(CChatRoom_SetChatRoomGroupAvatar_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x12\n\navatar_sha\x18\x02 \x01(\x0c\"+\n)CChatRoom_SetChatRoomGroupAvatar_Response\"\x99\x01\n3CChatRoom_SetChatRoomGroupWatchingBroadcast_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12$\n\x1cwatching_broadcast_accountid\x18\x02 \x01(\r\x12%\n\x1dwatching_broadcast_channel_id\x18\x03 \x01(\x04\"6\n4CChatRoom_SetChatRoomGroupWatchingBroadcast_Response\"X\n.CChatRoom_JoinMiniGameForChatRoomGroup_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07\x63hat_id\x18\x02 \x01(\x04\"F\n/CChatRoom_JoinMiniGameForChatRoomGroup_Response\x12\x13\n\x0bminigame_id\x18\x01 \x01(\x04\"l\n-CChatRoom_EndMiniGameForChatRoomGroup_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07\x63hat_id\x18\x02 \x01(\x04\x12\x13\n\x0bminigame_id\x18\x03 \x01(\x04\"0\n.CChatRoom_EndMiniGameForChatRoomGroup_Response\"X\n\x1a\x43\x43hatRoom_MuteUser_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07steamid\x18\x02 \x01(\x06\x12\x12\n\nexpiration\x18\x03 \x01(\x05\"\x1d\n\x1b\x43\x43hatRoom_MuteUser_Response\"X\n\x1a\x43\x43hatRoom_KickUser_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07steamid\x18\x02 \x01(\x06\x12\x12\n\nexpiration\x18\x03 \x01(\x05\"\x1d\n\x1b\x43\x43hatRoom_KickUser_Response\"^\n!CChatRoom_SetUserBanState_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07steamid\x18\x02 \x01(\x06\x12\x11\n\tban_state\x18\x03 \x01(\x08\"$\n\"CChatRoom_SetUserBanState_Response\"H\n\x1e\x43\x43hatRoom_RevokeInvite_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07steamid\x18\x02 \x01(\x06\"!\n\x1f\x43\x43hatRoom_RevokeInvite_Response\"C\n\x1c\x43\x43hatRoom_CreateRole_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\"C\n\x1d\x43\x43hatRoom_CreateRole_Response\x12\"\n\x07\x61\x63tions\x18\x02 \x01(\x0b\x32\x11.CChatRoleActions\"3\n\x1a\x43\x43hatRoom_GetRoles_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\"8\n\x1b\x43\x43hatRoom_GetRoles_Response\x12\x19\n\x05roles\x18\x01 \x03(\x0b\x32\n.CChatRole\"T\n\x1c\x43\x43hatRoom_RenameRole_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07role_id\x18\x02 \x01(\x04\x12\x0c\n\x04name\x18\x03 \x01(\t\"\x1f\n\x1d\x43\x43hatRoom_RenameRole_Response\"X\n\x1d\x43\x43hatRoom_ReorderRole_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07role_id\x18\x02 \x01(\x04\x12\x0f\n\x07ordinal\x18\x03 \x01(\r\" \n\x1e\x43\x43hatRoom_ReorderRole_Response\"F\n\x1c\x43\x43hatRoom_DeleteRole_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07role_id\x18\x02 \x01(\x04\"\x1f\n\x1d\x43\x43hatRoom_DeleteRole_Response\"J\n CChatRoom_GetRoleActions_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07role_id\x18\x02 \x01(\x04\"G\n!CChatRoom_GetRoleActions_Response\x12\"\n\x07\x61\x63tions\x18\x01 \x03(\x0b\x32\x11.CChatRoleActions\"r\n$CChatRoom_ReplaceRoleActions_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07role_id\x18\x02 \x01(\x04\x12\"\n\x07\x61\x63tions\x18\x04 \x01(\x0b\x32\x11.CChatRoleActions\"\'\n%CChatRoom_ReplaceRoleActions_Response\"Z\n\x1f\x43\x43hatRoom_AddRoleToUser_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07role_id\x18\x03 \x01(\x04\x12\x0f\n\x07steamid\x18\x04 \x01(\x06\"\"\n CChatRoom_AddRoleToUser_Response\"K\n!CChatRoom_GetRolesForUser_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07steamid\x18\x03 \x01(\x06\"6\n\"CChatRoom_GetRolesForUser_Response\x12\x10\n\x08role_ids\x18\x01 \x03(\x04\"_\n$CChatRoom_DeleteRoleFromUser_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07role_id\x18\x03 \x01(\x04\x12\x0f\n\x07steamid\x18\x04 \x01(\x06\"\'\n%CChatRoom_DeleteRoleFromUser_Response\"b\n#CChatRoom_JoinChatRoomGroup_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x13\n\x0binvite_code\x18\x02 \x01(\t\x12\x0f\n\x07\x63hat_id\x18\x03 \x01(\x04\"\xa9\x01\n$CChatRoom_JoinChatRoomGroup_Response\x12#\n\x05state\x18\x01 \x01(\x0b\x32\x14.CChatRoomGroupState\x12\x31\n\x0fuser_chat_state\x18\x03 \x01(\x0b\x32\x18.CUserChatRoomGroupState\x12\x14\n\x0cjoin_chat_id\x18\x04 \x01(\x04\x12\x13\n\x0btime_expire\x18\x05 \x01(\r\"\x86\x01\n-CChatRoom_InviteFriendToChatRoomGroup_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07steamid\x18\x02 \x01(\x06\x12\x0f\n\x07\x63hat_id\x18\x03 \x01(\x04\x12\x1c\n\x14skip_friendsui_check\x18\x04 \x01(\x08\"0\n.CChatRoom_InviteFriendToChatRoomGroup_Response\"=\n$CChatRoom_LeaveChatRoomGroup_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\"\'\n%CChatRoom_LeaveChatRoomGroup_Response\"\\\n CChatRoom_CreateChatRoom_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0b\x61llow_voice\x18\x03 \x01(\x08\"G\n!CChatRoom_CreateChatRoom_Response\x12\"\n\tchat_room\x18\x01 \x01(\x0b\x32\x0f.CChatRoomState\"J\n CChatRoom_DeleteChatRoom_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07\x63hat_id\x18\x02 \x01(\x04\"#\n!CChatRoom_DeleteChatRoom_Response\"X\n CChatRoom_RenameChatRoom_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07\x63hat_id\x18\x02 \x01(\x04\x12\x0c\n\x04name\x18\x03 \x01(\t\"#\n!CChatRoom_RenameChatRoom_Response\"g\n!CChatRoom_ReorderChatRoom_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07\x63hat_id\x18\x02 \x01(\x04\x12\x1a\n\x12move_after_chat_id\x18\x03 \x01(\x04\"$\n\"CChatRoom_ReorderChatRoom_Response\"t\n!CChatRoom_SendChatMessage_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07\x63hat_id\x18\x02 \x01(\x04\x12\x0f\n\x07message\x18\x03 \x01(\t\x12\x16\n\x0e\x65\x63ho_to_sender\x18\x04 \x01(\x08\"\x8a\x01\n\"CChatRoom_SendChatMessage_Response\x12\x18\n\x10modified_message\x18\x01 \x01(\t\x12\x18\n\x10server_timestamp\x18\x02 \x01(\r\x12\x0f\n\x07ordinal\x18\x03 \x01(\r\x12\x1f\n\x17message_without_bb_code\x18\x04 \x01(\t\"I\n\x1f\x43\x43hatRoom_JoinVoiceChat_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07\x63hat_id\x18\x02 \x01(\x04\"8\n CChatRoom_JoinVoiceChat_Response\x12\x14\n\x0cvoice_chatid\x18\x01 \x01(\x04\"J\n CChatRoom_LeaveVoiceChat_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07\x63hat_id\x18\x02 \x01(\x04\"#\n!CChatRoom_LeaveVoiceChat_Response\"\xb4\x01\n#CChatRoom_GetMessageHistory_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07\x63hat_id\x18\x02 \x01(\x04\x12\x11\n\tlast_time\x18\x03 \x01(\r\x12\x14\n\x0clast_ordinal\x18\x04 \x01(\r\x12\x12\n\nstart_time\x18\x05 \x01(\r\x12\x15\n\rstart_ordinal\x18\x06 \x01(\r\x12\x11\n\tmax_count\x18\x07 \x01(\r\"\x86\x01\n\rServerMessage\x12\x46\n\x07message\x18\x01 \x01(\x0e\x32\x17.EChatRoomServerMessage:\x1ck_EChatRoomServerMsg_Invalid\x12\x14\n\x0cstring_param\x18\x02 \x01(\t\x12\x17\n\x0f\x61\x63\x63ountid_param\x18\x03 \x01(\r\"\xa2\x04\n$CChatRoom_GetMessageHistory_Response\x12\x43\n\x08messages\x18\x01 \x03(\x0b\x32\x31.CChatRoom_GetMessageHistory_Response.ChatMessage\x12\x16\n\x0emore_available\x18\x04 \x01(\x08\x1a\x9c\x03\n\x0b\x43hatMessage\x12\x0e\n\x06sender\x18\x01 \x01(\r\x12\x18\n\x10server_timestamp\x18\x02 \x01(\r\x12\x0f\n\x07message\x18\x03 \x01(\t\x12\x0f\n\x07ordinal\x18\x04 \x01(\r\x12&\n\x0eserver_message\x18\x05 \x01(\x0b\x32\x0e.ServerMessage\x12\x0f\n\x07\x64\x65leted\x18\x06 \x01(\x08\x12T\n\treactions\x18\x07 \x03(\x0b\x32\x41.CChatRoom_GetMessageHistory_Response.ChatMessage.MessageReaction\x1a\xb1\x01\n\x0fMessageReaction\x12\\\n\rreaction_type\x18\x01 \x01(\x0e\x32\x1d.EChatRoomMessageReactionType:&k_EChatRoomMessageReactionType_Invalid\x12\x10\n\x08reaction\x18\x02 \x01(\t\x12\x14\n\x0cnum_reactors\x18\x03 \x01(\r\x12\x18\n\x10has_user_reacted\x18\x04 \x01(\x08\"\'\n%CChatRoom_GetMyChatRoomGroups_Request\"\xa2\x05\n*CChatRoom_GetChatRoomGroupSummary_Response\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x17\n\x0f\x63hat_group_name\x18\x02 \x01(\t\x12\x1b\n\x13\x61\x63tive_member_count\x18\x03 \x01(\r\x12!\n\x19\x61\x63tive_voice_member_count\x18\x04 \x01(\r\x12\x17\n\x0f\x64\x65\x66\x61ult_chat_id\x18\x05 \x01(\x04\x12#\n\nchat_rooms\x18\x06 \x03(\x0b\x32\x0f.CChatRoomState\x12\x0e\n\x06\x63lanid\x18\x07 \x01(\r\x12\x1a\n\x12\x63hat_group_tagline\x18\x08 \x01(\t\x12\x17\n\x0f\x61\x63\x63ountid_owner\x18\t \x01(\r\x12\x13\n\x0btop_members\x18\n \x03(\r\x12\x1d\n\x15\x63hat_group_avatar_sha\x18\x0b \x01(\x0c\x12?\n\x04rank\x18\x0c \x01(\x0e\x32\x13.EChatRoomGroupRank:\x1ck_EChatRoomGroupRank_Default\x12\x17\n\x0f\x64\x65\x66\x61ult_role_id\x18\r \x01(\x04\x12\x10\n\x08role_ids\x18\x0e \x03(\x04\x12\'\n\x0crole_actions\x18\x0f \x03(\x0b\x32\x11.CChatRoleActions\x12$\n\x1cwatching_broadcast_accountid\x18\x10 \x01(\r\x12\r\n\x05\x61ppid\x18\x11 \x01(\r\x12(\n\rparty_beacons\x18\x12 \x03(\x0b\x32\x11.CChatPartyBeacon\x12%\n\x1dwatching_broadcast_channel_id\x18\x13 \x01(\x04\x12\x1a\n\x12\x61\x63tive_minigame_id\x18\x14 \x01(\x04\x12\x16\n\x0e\x61vatar_ugc_url\x18\x15 \x01(\t\"\x93\x01\n\x14\x43\x43hatRoomSummaryPair\x12\x37\n\x15user_chat_group_state\x18\x01 \x01(\x0b\x32\x18.CUserChatRoomGroupState\x12\x42\n\rgroup_summary\x18\x02 \x01(\x0b\x32+.CChatRoom_GetChatRoomGroupSummary_Response\"Y\n&CChatRoom_GetMyChatRoomGroups_Response\x12/\n\x10\x63hat_room_groups\x18\x01 \x03(\x0b\x32\x15.CChatRoomSummaryPair\"@\n\'CChatRoom_GetChatRoomGroupState_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\"O\n(CChatRoom_GetChatRoomGroupState_Response\x12#\n\x05state\x18\x01 \x01(\x0b\x32\x14.CChatRoomGroupState\"B\n)CChatRoom_GetChatRoomGroupSummary_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\"d\n0CChatRoom_SetAppChatRoomGroupForceActive_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x19\n\x11requesting_app_id\x18\x02 \x01(\r\"`\n1CChatRoom_SetAppChatRoomGroupForceActive_Response\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x1b\n\x13\x61\x63\x63ounts_in_channel\x18\x02 \x03(\r\"m\n9CChatRoom_SetAppChatRoomGroupStopForceActive_Notification\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x19\n\x11requesting_app_id\x18\x02 \x01(\r\"b\n%CChatRoom_AckChatMessage_Notification\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07\x63hat_id\x18\x02 \x01(\x04\x12\x11\n\ttimestamp\x18\x03 \x01(\r\"c\n\"CChatRoom_CreateInviteLink_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x15\n\rseconds_valid\x18\x02 \x01(\r\x12\x0f\n\x07\x63hat_id\x18\x03 \x01(\x04\"Q\n#CChatRoom_CreateInviteLink_Response\x12\x13\n\x0binvite_code\x18\x01 \x01(\t\x12\x15\n\rseconds_valid\x18\x02 \x01(\r\":\n#CChatRoom_GetInviteLinkInfo_Request\x12\x13\n\x0binvite_code\x18\x01 \x01(\t\"\x8c\x02\n$CChatRoom_GetInviteLinkInfo_Response\x12\x16\n\x0esteamid_sender\x18\x03 \x01(\x06\x12\x14\n\x0ctime_expires\x18\x04 \x01(\r\x12\x0f\n\x07\x63hat_id\x18\x06 \x01(\x04\x12\x42\n\rgroup_summary\x18\x08 \x01(\x0b\x32+.CChatRoom_GetChatRoomGroupSummary_Response\x12\x37\n\x15user_chat_group_state\x18\t \x01(\x0b\x32\x18.CUserChatRoomGroupState\x12\x18\n\x10time_kick_expire\x18\n \x01(\r\x12\x0e\n\x06\x62\x61nned\x18\x0b \x01(\x08\"w\n\x1f\x43\x43hatRoom_GetInviteInfo_Request\x12\x17\n\x0fsteamid_invitee\x18\x01 \x01(\x06\x12\x15\n\rchat_group_id\x18\x02 \x01(\x04\x12\x0f\n\x07\x63hat_id\x18\x03 \x01(\x04\x12\x13\n\x0binvite_code\x18\x04 \x01(\t\"\x90\x01\n CChatRoom_GetInviteInfo_Response\x12\x42\n\rgroup_summary\x18\x01 \x01(\x0b\x32+.CChatRoom_GetChatRoomGroupSummary_Response\x12\x18\n\x10time_kick_expire\x18\x02 \x01(\r\x12\x0e\n\x06\x62\x61nned\x18\x03 \x01(\x08\"A\n(CChatRoom_GetInviteLinksForGroup_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\"\xd7\x01\n)CChatRoom_GetInviteLinksForGroup_Response\x12I\n\x0cinvite_links\x18\x01 \x03(\x0b\x32\x33.CChatRoom_GetInviteLinksForGroup_Response.LinkInfo\x1a_\n\x08LinkInfo\x12\x13\n\x0binvite_code\x18\x01 \x01(\t\x12\x17\n\x0fsteamid_creator\x18\x02 \x01(\x06\x12\x14\n\x0ctime_expires\x18\x03 \x01(\r\x12\x0f\n\x07\x63hat_id\x18\x04 \x01(\x04\"5\n\x1c\x43\x43hatRoom_GetBanList_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\"\xb5\x01\n\x1d\x43\x43hatRoom_GetBanList_Response\x12\x34\n\x04\x62\x61ns\x18\x01 \x03(\x0b\x32&.CChatRoom_GetBanList_Response.BanInfo\x1a^\n\x07\x42\x61nInfo\x12\x11\n\taccountid\x18\x01 \x01(\r\x12\x17\n\x0f\x61\x63\x63ountid_actor\x18\x02 \x01(\r\x12\x13\n\x0btime_banned\x18\x03 \x01(\r\x12\x12\n\nban_reason\x18\x04 \x01(\t\"8\n\x1f\x43\x43hatRoom_GetInviteList_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\"X\n\x14\x43\x43hatRoomGroupInvite\x12\x11\n\taccountid\x18\x01 \x01(\r\x12\x17\n\x0f\x61\x63\x63ountid_actor\x18\x02 \x01(\r\x12\x14\n\x0ctime_invited\x18\x03 \x01(\r\"J\n CChatRoom_GetInviteList_Response\x12&\n\x07invites\x18\x01 \x03(\x0b\x32\x15.CChatRoomGroupInvite\"P\n\"CChatRoom_DeleteInviteLink_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x13\n\x0binvite_code\x18\x02 \x01(\t\"%\n#CChatRoom_DeleteInviteLink_Response\"\xf4\x01\n0CChatRoom_SetSessionActiveChatRoomGroups_Request\x12\x16\n\x0e\x63hat_group_ids\x18\x01 \x03(\x04\x12\"\n\x1a\x63hat_groups_data_requested\x18\x02 \x03(\x04\x12\x83\x01\n\x1cvirtualize_members_threshold\x18\x03 \x01(\x05\x42]\x82\xb5\x18YIf a chat room has more members than this threshold, we will opt in to a virtualized list\"\x89\x01\n1CChatRoom_SetSessionActiveChatRoomGroups_Response\x12)\n\x0b\x63hat_states\x18\x01 \x03(\x0b\x32\x14.CChatRoomGroupState\x12)\n!virtualize_members_chat_group_ids\x18\x02 \x03(\x04\"\xaa\x06\n-CChatRoom_SetUserChatGroupPreferences_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x63\n\x16\x63hat_group_preferences\x18\x02 \x01(\x0b\x32\x43.CChatRoom_SetUserChatGroupPreferences_Request.ChatGroupPreferences\x12\x61\n\x15\x63hat_room_preferences\x18\x03 \x03(\x0b\x32\x42.CChatRoom_SetUserChatGroupPreferences_Request.ChatRoomPreferences\x1a\x83\x02\n\x14\x43hatGroupPreferences\x12\x65\n\x1a\x64\x65sktop_notification_level\x18\x01 \x01(\x0e\x32\x1b.EChatRoomNotificationLevel:$k_EChatroomNotificationLevel_Invalid\x12\x64\n\x19mobile_notification_level\x18\x02 \x01(\x0e\x32\x1b.EChatRoomNotificationLevel:$k_EChatroomNotificationLevel_Invalid\x12\x1e\n\x16unread_indicator_muted\x18\x03 \x01(\x08\x1a\x93\x02\n\x13\x43hatRoomPreferences\x12\x0f\n\x07\x63hat_id\x18\x01 \x01(\x04\x12\x65\n\x1a\x64\x65sktop_notification_level\x18\x02 \x01(\x0e\x32\x1b.EChatRoomNotificationLevel:$k_EChatroomNotificationLevel_Invalid\x12\x64\n\x19mobile_notification_level\x18\x03 \x01(\x0e\x32\x1b.EChatRoomNotificationLevel:$k_EChatroomNotificationLevel_Invalid\x12\x1e\n\x16unread_indicator_muted\x18\x04 \x01(\x08\"0\n.CChatRoom_SetUserChatGroupPreferences_Response\"\xc5\x01\n$CChatRoom_DeleteChatMessages_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07\x63hat_id\x18\x02 \x01(\x04\x12?\n\x08messages\x18\x03 \x03(\x0b\x32-.CChatRoom_DeleteChatMessages_Request.Message\x1a\x34\n\x07Message\x12\x18\n\x10server_timestamp\x18\x01 \x01(\r\x12\x0f\n\x07ordinal\x18\x02 \x01(\r\"\'\n%CChatRoom_DeleteChatMessages_Response\"\xe9\x03\n+CChatRoom_UpdateMemberListView_Notification\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12g\n\x07view_id\x18\x02 \x01(\x04\x42V\x82\xb5\x18RClient-generated ID.  Should send the same value on all requests for the same view\x12\r\n\x05start\x18\x03 \x01(\x05\x12\x0b\n\x03\x65nd\x18\x04 \x01(\x05\x12\x8f\x01\n\x13\x63lient_changenumber\x18\x05 \x01(\x05\x42r\x82\xb5\x18nAny updates from this call on will have this changenumber present.  Can be used to guarantee in-order updates.\x12>\n\x0b\x64\x65lete_view\x18\x06 \x01(\x08\x42)\x82\xb5\x18%Indicates this view has been deleted.\x12$\n\x1cpersona_subscribe_accountids\x18\x07 \x03(\x05\x12&\n\x1epersona_unsubscribe_accountids\x18\x08 \x03(\x05\"\x97\x02\n\x1f\x43\x43hatRoom_SearchMembers_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\xb2\x01\n\tsearch_id\x18\x02 \x01(\x04\x42\x9e\x01\x82\xb5\x18\x99\x01\x43lient-supplied id.  For find-as-you-type searches, as search narrows the server will not return persona states previously returned for a given searchid.\x12\x13\n\x0bsearch_text\x18\x03 \x01(\t\x12\x13\n\x0bmax_results\x18\x04 \x01(\x05\"\xd4\x01\n CChatRoom_SearchMembers_Response\x12G\n\x10matching_members\x18\x01 \x03(\x0b\x32-.CChatRoom_SearchMembers_Response.MemberMatch\x12\x14\n\x0cstatus_flags\x18\x02 \x01(\r\x1aQ\n\x0bMemberMatch\x12\x11\n\taccountid\x18\x01 \x01(\x05\x12/\n\x07persona\x18\x02 \x01(\x0b\x32\x1e.CMsgClientPersonaState.Friend\"\xfc\x01\n\'CChatRoom_UpdateMessageReaction_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07\x63hat_id\x18\x02 \x01(\x04\x12\x18\n\x10server_timestamp\x18\x03 \x01(\r\x12\x0f\n\x07ordinal\x18\x04 \x01(\r\x12\\\n\rreaction_type\x18\x05 \x01(\x0e\x32\x1d.EChatRoomMessageReactionType:&k_EChatRoomMessageReactionType_Invalid\x12\x10\n\x08reaction\x18\x06 \x01(\t\x12\x0e\n\x06is_add\x18\x07 \x01(\x08\"@\n(CChatRoom_UpdateMessageReaction_Response\x12\x14\n\x0cnum_reactors\x18\x01 \x01(\r\"\x80\x02\n,CChatRoom_GetMessageReactionReactors_Request\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07\x63hat_id\x18\x02 \x01(\x04\x12\x18\n\x10server_timestamp\x18\x03 \x01(\r\x12\x0f\n\x07ordinal\x18\x04 \x01(\r\x12\\\n\rreaction_type\x18\x05 \x01(\x0e\x32\x1d.EChatRoomMessageReactionType:&k_EChatRoomMessageReactionType_Invalid\x12\x10\n\x08reaction\x18\x06 \x01(\t\x12\r\n\x05limit\x18\x07 \x01(\r\"A\n-CChatRoom_GetMessageReactionReactors_Response\x12\x10\n\x08reactors\x18\x01 \x03(\r\"\x98\x01\n*CClanChatRooms_GetClanChatRoomInfo_Request\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12Y\n\nautocreate\x18\x02 \x01(\x08:\x04trueB?\x82\xb5\x18;Create a default chat room if none has been created before.\"v\n+CClanChatRooms_GetClanChatRoomInfo_Response\x12G\n\x12\x63hat_group_summary\x18\x01 \x01(\x0b\x32+.CChatRoom_GetChatRoomGroupSummary_Response\"[\n-CClanChatRooms_SetClanChatRoomPrivate_Request\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x19\n\x11\x63hat_room_private\x18\x02 \x01(\x08\"K\n.CClanChatRooms_SetClanChatRoomPrivate_Response\x12\x19\n\x11\x63hat_room_private\x18\x01 \x01(\x08\"V\n\rCChatMentions\x12\x13\n\x0bmention_all\x18\x01 \x01(\x08\x12\x14\n\x0cmention_here\x18\x02 \x01(\x08\x12\x1a\n\x12mention_accountids\x18\x03 \x03(\r\"\xd5\x02\n*CChatRoom_IncomingChatMessage_Notification\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07\x63hat_id\x18\x02 \x01(\x04\x12\x16\n\x0esteamid_sender\x18\x03 \x01(\x06\x12\x0f\n\x07message\x18\x04 \x01(\t\x12\x11\n\ttimestamp\x18\x05 \x01(\r\x12 \n\x08mentions\x18\x06 \x01(\x0b\x32\x0e.CChatMentions\x12\x0f\n\x07ordinal\x18\x07 \x01(\r\x12&\n\x0eserver_message\x18\x08 \x01(\x0b\x32\x0e.ServerMessage\x12\x19\n\x11message_no_bbcode\x18\t \x01(\t\x12M\n\tchat_name\x18\n \x01(\tB:\x82\xb5\x18\x36\x41 name to use for the chat, intended for notifications\"\xea\x01\n*CChatRoom_ChatMessageModified_Notification\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07\x63hat_id\x18\x02 \x01(\x04\x12I\n\x08messages\x18\x03 \x03(\x0b\x32\x37.CChatRoom_ChatMessageModified_Notification.ChatMessage\x1aI\n\x0b\x43hatMessage\x12\x18\n\x10server_timestamp\x18\x01 \x01(\r\x12\x0f\n\x07ordinal\x18\x02 \x01(\r\x12\x0f\n\x07\x64\x65leted\x18\x03 \x01(\x08\"\xb6\x01\n(CChatRoom_MemberStateChange_Notification\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12 \n\x06member\x18\x02 \x01(\x0b\x32\x10.CChatRoomMember\x12Q\n\x06\x63hange\x18\x03 \x01(\x0e\x32\x1b.EChatRoomMemberStateChange:$k_EChatRoomMemberStateChange_Invalid\"^\n*CChatRoom_ChatRoomHeaderState_Notification\x12\x30\n\x0cheader_state\x18\x01 \x01(\x0b\x32\x1a.CChatRoomGroupHeaderState\"\x86\x01\n/CChatRoom_ChatRoomGroupRoomsChange_Notification\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x17\n\x0f\x64\x65\x66\x61ult_chat_id\x18\x02 \x01(\x04\x12#\n\nchat_rooms\x18\x03 \x03(\x0b\x32\x0f.CChatRoomState\"d\n:CChatRoom_NotifyShouldRejoinChatRoomVoiceChat_Notification\x12\x0f\n\x07\x63hat_id\x18\x01 \x01(\x04\x12\x15\n\rchat_group_id\x18\x02 \x01(\x04\"\xa9\x02\n;ChatRoomClient_NotifyChatGroupUserStateChanged_Notification\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x37\n\x15user_chat_group_state\x18\x02 \x01(\x0b\x32\x18.CUserChatRoomGroupState\x12\x42\n\rgroup_summary\x18\x03 \x01(\x0b\x32+.CChatRoom_GetChatRoomGroupSummary_Response\x12V\n\x0buser_action\x18\x04 \x01(\x0e\x32\x1b.EChatRoomMemberStateChange:$k_EChatRoomMemberStateChange_Invalid\"N\n4ChatRoomClient_NotifyChatRoomDisconnect_Notification\x12\x16\n\x0e\x63hat_group_ids\x18\x01 \x03(\x04\"\x94\x02\n\x17\x43\x43hatRoomMemberListView\x12\r\n\x05start\x18\x03 \x01(\x05\x12\x0b\n\x03\x65nd\x18\x04 \x01(\x05\x12\x13\n\x0btotal_count\x18\x05 \x01(\x05\x12\x61\n\x13\x63lient_changenumber\x18\x06 \x01(\x05\x42\x44\x82\xb5\x18@Value sent by the client on the last UpdateMemberListView call. \x12\x65\n\x13server_changenumber\x18\x07 \x01(\x05\x42H\x82\xb5\x18\x44Value incremented by the server on each MemberListViewUpdated call. \"O\n\x1c\x43\x43hatRoomMemberSummaryCounts\x12\x0e\n\x06ingame\x18\x01 \x01(\x05\x12\x0e\n\x06online\x18\x02 \x01(\x05\x12\x0f\n\x07offline\x18\x03 \x01(\x05\"\x8f\x04\n2CChatRoomClient_MemberListViewUpdated_Notification\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12M\n\x07view_id\x18\x02 \x01(\x04\x42<\x82\xb5\x18\x38Thew view_id supplied when the client created the view. \x12&\n\x04view\x18\x03 \x01(\x0b\x32\x18.CChatRoomMemberListView\x12X\n\x07members\x18\x04 \x03(\x0b\x32G.CChatRoomClient_MemberListViewUpdated_Notification.MemberListViewEntry\x12\x14\n\x0cstatus_flags\x18\x05 \x01(\r\x12\x35\n\x0emember_summary\x18\x06 \x01(\x0b\x32\x1d.CChatRoomMemberSummaryCounts\x12;\n\x13subscribed_personas\x18\x07 \x03(\x0b\x32\x1e.CMsgClientPersonaState.Friend\x1ag\n\x13MemberListViewEntry\x12\x0c\n\x04rank\x18\x01 \x01(\x05\x12\x11\n\taccountid\x18\x02 \x01(\r\x12/\n\x07persona\x18\x03 \x01(\x0b\x32\x1e.CMsgClientPersonaState.Friend\"\x8c\x02\n&CChatRoom_MessageReaction_Notification\x12\x15\n\rchat_group_id\x18\x01 \x01(\x04\x12\x0f\n\x07\x63hat_id\x18\x02 \x01(\x04\x12\x18\n\x10server_timestamp\x18\x03 \x01(\r\x12\x0f\n\x07ordinal\x18\x04 \x01(\r\x12\x0f\n\x07reactor\x18\x05 \x01(\x06\x12\\\n\rreaction_type\x18\x06 \x01(\x0e\x32\x1d.EChatRoomMessageReactionType:&k_EChatRoomMessageReactionType_Invalid\x12\x10\n\x08reaction\x18\x07 \x01(\t\x12\x0e\n\x06is_add\x18\x08 \x01(\x08\"\xdf\x15\n2CChatUsability_ClientUsabilityMetrics_Notification\x12\x16\n\x0emetrics_run_id\x18\x01 \x01(\r\x12\x14\n\x0c\x63lient_build\x18\x02 \x01(\r\x12\x17\n\x0fmetrics_version\x18\x03 \x01(\r\x12\x0e\n\x06in_web\x18\x04 \x01(\x08\x12N\n\x08settings\x18\n \x01(\x0b\x32<.CChatUsability_ClientUsabilityMetrics_Notification.Settings\x12Y\n\x0evoice_settings\x18\x0b \x01(\x0b\x32\x41.CChatUsability_ClientUsabilityMetrics_Notification.VoiceSettings\x12M\n\x08ui_state\x18\x0c \x01(\x0b\x32;.CChatUsability_ClientUsabilityMetrics_Notification.UIState\x12L\n\x07metrics\x18\r \x01(\x0b\x32;.CChatUsability_ClientUsabilityMetrics_Notification.Metrics\x1a\xd9\x06\n\x08Settings\x12!\n\x19notifications_show_ingame\x18\x01 \x01(\x08\x12!\n\x19notifications_show_online\x18\x02 \x01(\x08\x12\"\n\x1anotifications_show_message\x18\x03 \x01(\x08\x12.\n&notifications_events_and_announcements\x18\x04 \x01(\x08\x12\x1a\n\x12sounds_play_ingame\x18\x05 \x01(\x08\x12\x1a\n\x12sounds_play_online\x18\x06 \x01(\x08\x12\x1b\n\x13sounds_play_message\x18\x07 \x01(\x08\x12\'\n\x1fsounds_events_and_announcements\x18\x08 \x01(\x08\x12\x1e\n\x16\x61lways_new_chat_window\x18\t \x01(\x08\x12\'\n\x1f\x66orce_alphabetic_friend_sorting\x18\n \x01(\x08\x12\x17\n\x0f\x63hat_flash_mode\x18\x0b \x01(\x05\x12\x1b\n\x13remember_open_chats\x18\x0c \x01(\x08\x12\x1c\n\x14\x63ompact_quick_access\x18\r \x01(\x08\x12\x1c\n\x14\x63ompact_friends_list\x18\x0e \x01(\x08\x12\x31\n)notifications_show_chat_room_notification\x18\x0f \x01(\x08\x12*\n\"sounds_play_chat_room_notification\x18\x10 \x01(\x08\x12*\n\"hide_offline_friends_in_tag_groups\x18\x11 \x01(\x08\x12 \n\x18hide_categorized_friends\x18\x12 \x01(\x08\x12*\n\"categorize_in_game_friends_by_game\x18\x13 \x01(\x08\x12\x16\n\x0e\x63hat_font_size\x18\x14 \x01(\x05\x12\x17\n\x0fuse24hour_clock\x18\x15 \x01(\x08\x12\x1b\n\x13\x64o_not_disturb_mode\x18\x16 \x01(\x08\x12\x1e\n\x16\x64isable_embed_inlining\x18\x17 \x01(\x08\x12\x19\n\x11sign_into_friends\x18\x18 \x01(\x08\x12\x18\n\x10\x61nimated_avatars\x18\x19 \x01(\x08\x1a\xea\x02\n\rVoiceSettings\x12\x18\n\x10voice_input_gain\x18\x01 \x01(\x02\x12\x19\n\x11voice_output_gain\x18\x02 \x01(\x02\x12\x18\n\x10noise_gate_level\x18\x03 \x01(\x05\x12#\n\x1bvoice_use_echo_cancellation\x18\x04 \x01(\x08\x12$\n\x1cvoice_use_noise_cancellation\x18\x05 \x01(\x08\x12#\n\x1bvoice_use_auto_gain_control\x18\x06 \x01(\x08\x12 \n\x18selected_non_default_mic\x18\x07 \x01(\x08\x12#\n\x1bselected_non_default_output\x18\x08 \x01(\x08\x12\x1c\n\x14push_to_talk_enabled\x18\t \x01(\x08\x12\x1c\n\x14push_to_mute_enabled\x18\n \x01(\x08\x12\x17\n\x0fplay_ptt_sounds\x18\x0b \x01(\x08\x1a\xfd\x05\n\x07UIState\x12\x1b\n\x13\x66riends_list_height\x18\x01 \x01(\x05\x12\x1a\n\x12\x66riends_list_width\x18\x02 \x01(\x05\x12\x1b\n\x13\x66riends_list_docked\x18\x03 \x01(\x08\x12\x1e\n\x16\x66riends_list_collapsed\x18\x04 \x01(\x08\x12\'\n\x1f\x66riends_list_group_chats_height\x18\x05 \x01(\x05\x12\x1c\n\x14\x66riends_list_visible\x18\x06 \x01(\x08\x12\x1a\n\x12\x63hat_popups_opened\x18\x07 \x01(\x05\x12\x1e\n\x16group_chat_tabs_opened\x18\x08 \x01(\x05\x12\x1f\n\x17\x66riend_chat_tabs_opened\x18\t \x01(\x05\x12\x19\n\x11\x63hat_window_width\x18\n \x01(\x05\x12\x1a\n\x12\x63hat_window_height\x18\x0b \x01(\x05\x12l\n\x11\x63\x61tegory_collapse\x18\x0c \x01(\x0b\x32Q.CChatUsability_ClientUsabilityMetrics_Notification.UIState.CategoryCollapseState\x12%\n\x1dgroup_chat_left_col_collapsed\x18\r \x01(\x05\x12&\n\x1egroup_chat_right_col_collapsed\x18\x0e \x01(\x05\x12 \n\x18in_one_on_one_voice_chat\x18\x0f \x01(\x08\x12\x1b\n\x13in_group_voice_chat\x18\x10 \x01(\x08\x1a\xa4\x01\n\x15\x43\x61tegoryCollapseState\x12\x19\n\x11in_game_collapsed\x18\x01 \x01(\x08\x12\x18\n\x10online_collapsed\x18\x02 \x01(\x08\x12\x19\n\x11offline_collapsed\x18\x03 \x01(\x08\x12\x1d\n\x15game_groups_collapsed\x18\x04 \x01(\x05\x12\x1c\n\x14\x63\x61tegories_collapsed\x18\x05 \x01(\x05\x1a\xc0\x02\n\x07Metrics\x12\x15\n\rfriends_count\x18\x01 \x01(\x05\x12\x1e\n\x16\x66riends_category_count\x18\x02 \x01(\x05\x12!\n\x19\x66riends_categorized_count\x18\x03 \x01(\x05\x12\x1c\n\x14\x66riends_online_count\x18\x04 \x01(\x05\x12\x1d\n\x15\x66riends_in_game_count\x18\x05 \x01(\x05\x12\'\n\x1f\x66riends_in_game_singleton_count\x18\x06 \x01(\x05\x12\x18\n\x10game_group_count\x18\x07 \x01(\x05\x12\x1e\n\x16\x66riends_favorite_count\x18\x08 \x01(\x05\x12\x18\n\x10group_chat_count\x18\t \x01(\x05\x12!\n\x19group_chat_favorite_count\x18\n \x01(\x05\"S\n9CChatUsability_RequestClientUsabilityMetrics_Notification\x12\x16\n\x0emetrics_run_id\x18\x01 \x01(\r*\x9c\x01\n\x12\x45\x43hatRoomJoinState\x12 \n\x1ck_EChatRoomJoinState_Default\x10\x00\x12\x1d\n\x19k_EChatRoomJoinState_None\x10\x01\x12\x1f\n\x1bk_EChatRoomJoinState_Joined\x10\x02\x12$\n k_EChatRoomJoinState_TestInvalid\x10\x63*\xa4\x02\n\x12\x45\x43hatRoomGroupRank\x12 \n\x1ck_EChatRoomGroupRank_Default\x10\x00\x12\x1f\n\x1bk_EChatRoomGroupRank_Viewer\x10\n\x12\x1e\n\x1ak_EChatRoomGroupRank_Guest\x10\x0f\x12\x1f\n\x1bk_EChatRoomGroupRank_Member\x10\x14\x12\"\n\x1ek_EChatRoomGroupRank_Moderator\x10\x1e\x12 \n\x1ck_EChatRoomGroupRank_Officer\x10(\x12\x1e\n\x1ak_EChatRoomGroupRank_Owner\x10\x32\x12$\n k_EChatRoomGroupRank_TestInvalid\x10\x63*\xf4\x01\n\x1a\x45\x43hatRoomNotificationLevel\x12(\n$k_EChatroomNotificationLevel_Invalid\x10\x00\x12%\n!k_EChatroomNotificationLevel_None\x10\x01\x12*\n&k_EChatroomNotificationLevel_MentionMe\x10\x02\x12+\n\'k_EChatroomNotificationLevel_MentionAll\x10\x03\x12,\n(k_EChatroomNotificationLevel_AllMessages\x10\x04*\x97\x03\n\x16\x45\x43hatRoomServerMessage\x12 \n\x1ck_EChatRoomServerMsg_Invalid\x10\x00\x12\'\n#k_EChatRoomServerMsg_RenameChatRoom\x10\x01\x12\x1f\n\x1bk_EChatRoomServerMsg_Joined\x10\x02\x12\x1f\n\x1bk_EChatRoomServerMsg_Parted\x10\x03\x12\x1f\n\x1bk_EChatRoomServerMsg_Kicked\x10\x04\x12 \n\x1ck_EChatRoomServerMsg_Invited\x10\x05\x12(\n$k_EChatRoomServerMsg_InviteDismissed\x10\x08\x12/\n+k_EChatRoomServerMsg_ChatRoomTaglineChanged\x10\t\x12.\n*k_EChatRoomServerMsg_ChatRoomAvatarChanged\x10\n\x12\"\n\x1ek_EChatRoomServerMsg_AppCustom\x10\x0b*w\n\x1c\x45\x43hatRoomMessageReactionType\x12*\n&k_EChatRoomMessageReactionType_Invalid\x10\x00\x12+\n\'k_EChatRoomMessageReactionType_Emoticon\x10\x01*\xcb\x03\n\x1a\x45\x43hatRoomMemberStateChange\x12(\n$k_EChatRoomMemberStateChange_Invalid\x10\x00\x12\'\n#k_EChatRoomMemberStateChange_Joined\x10\x01\x12\'\n#k_EChatRoomMemberStateChange_Parted\x10\x02\x12\'\n#k_EChatRoomMemberStateChange_Kicked\x10\x03\x12(\n$k_EChatRoomMemberStateChange_Invited\x10\x04\x12,\n(k_EChatRoomMemberStateChange_RankChanged\x10\x07\x12\x30\n,k_EChatRoomMemberStateChange_InviteDismissed\x10\x08\x12&\n\"k_EChatRoomMemberStateChange_Muted\x10\t\x12\'\n#k_EChatRoomMemberStateChange_Banned\x10\n\x12-\n)k_EChatRoomMemberStateChange_RolesChanged\x10\x0c\x32\x8b\x02\n\x04\x43hat\x12\xe7\x01\n\x1aRequestFriendPersonaStates\x12).CChat_RequestFriendPersonaStates_Request\x1a*.CChat_RequestFriendPersonaStates_Response\"r\x82\xb5\x18nRequest to be notified of online friend persona state information.  Responses sent via CMsgClientPersonaState.\x1a\x19\x82\xb5\x18\x15\x43hat-related services2\xb9>\n\x08\x43hatRoom\x12\xa3\x01\n\x13\x43reateChatRoomGroup\x12&.CChatRoom_CreateChatRoomGroup_Request\x1a\'.CChatRoom_CreateChatRoomGroup_Response\";\x82\xb5\x18\x37\x43reate\'s a chat group that can contain other chat rooms\x12z\n\x11SaveChatRoomGroup\x12$.CChatRoom_SaveChatRoomGroup_Request\x1a%.CChatRoom_SaveChatRoomGroup_Response\"\x18\x82\xb5\x18\x14Saves\'s a chat group\x12\x84\x01\n\x13RenameChatRoomGroup\x12&.CChatRoom_RenameChatRoomGroup_Request\x1a\'.CChatRoom_RenameChatRoomGroup_Response\"\x1c\x82\xb5\x18\x18Rename a chat room group\x12\x99\x01\n\x17SetChatRoomGroupTagline\x12*.CChatRoom_SetChatRoomGroupTagline_Request\x1a+.CChatRoom_SetChatRoomGroupTagline_Response\"%\x82\xb5\x18!Set tagline for a chat room group\x12\x99\x01\n\x16SetChatRoomGroupAvatar\x12).CChatRoom_SetChatRoomGroupAvatar_Request\x1a*.CChatRoom_SetChatRoomGroupAvatar_Response\"(\x82\xb5\x18$Set avatar SHA for a chat room group\x12\xcb\x01\n!SetChatRoomGroupWatchingBroadcast\x12\x34.CChatRoom_SetChatRoomGroupWatchingBroadcast_Request\x1a\x35.CChatRoom_SetChatRoomGroupWatchingBroadcast_Response\"9\x82\xb5\x18\x35Sets a broadcast that the chat room group is watching\x12\xe3\x01\n\x1cJoinMiniGameForChatRoomGroup\x12/.CChatRoom_JoinMiniGameForChatRoomGroup_Request\x1a\x30.CChatRoom_JoinMiniGameForChatRoomGroup_Response\"`\x82\xb5\x18\\Joins the minigame for the chat room group or starts a new one (Winter 2019 sale party game)\x12\xac\x01\n\x1b\x45ndMiniGameForChatRoomGroup\x12..CChatRoom_EndMiniGameForChatRoomGroup_Request\x1a/.CChatRoom_EndMiniGameForChatRoomGroup_Response\",\x82\xb5\x18(Ends the minigame in the chat room group\x12\x64\n\x0fMuteUserInGroup\x12\x1b.CChatRoom_MuteUser_Request\x1a\x1c.CChatRoom_MuteUser_Response\"\x16\x82\xb5\x18\x12Mute user in group\x12h\n\x11KickUserFromGroup\x12\x1b.CChatRoom_KickUser_Request\x1a\x1c.CChatRoom_KickUser_Response\"\x18\x82\xb5\x18\x14Kick user from group\x12y\n\x0fSetUserBanState\x12\".CChatRoom_SetUserBanState_Request\x1a#.CChatRoom_SetUserBanState_Response\"\x1d\x82\xb5\x18\x19\x42\x61n/unban user from group\x12\x82\x01\n\x13RevokeInviteToGroup\x12\x1f.CChatRoom_RevokeInvite_Request\x1a .CChatRoom_RevokeInvite_Response\"(\x82\xb5\x18$Revoke a direct invitation of a user\x12\x65\n\nCreateRole\x12\x1d.CChatRoom_CreateRole_Request\x1a\x1e.CChatRoom_CreateRole_Response\"\x18\x82\xb5\x18\x14\x43reate role for goup\x12\x61\n\x08GetRoles\x12\x1b.CChatRoom_GetRoles_Request\x1a\x1c.CChatRoom_GetRoles_Response\"\x1a\x82\xb5\x18\x16Get all roles in group\x12\x65\n\nRenameRole\x12\x1d.CChatRoom_RenameRole_Request\x1a\x1e.CChatRoom_RenameRole_Response\"\x18\x82\xb5\x18\x14Rename role for goup\x12l\n\x0bReorderRole\x12\x1e.CChatRoom_ReorderRole_Request\x1a\x1f.CChatRoom_ReorderRole_Response\"\x1c\x82\xb5\x18\x18Reorder role with a goup\x12g\n\nDeleteRole\x12\x1d.CChatRoom_DeleteRole_Request\x1a\x1e.CChatRoom_DeleteRole_Response\"\x1a\x82\xb5\x18\x16\x44\x65lete role from group\x12\x87\x01\n\x0eGetRoleActions\x12!.CChatRoom_GetRoleActions_Request\x1a\".CChatRoom_GetRoleActions_Response\".\x82\xb5\x18*Get all defined roles and actions in group\x12\x86\x01\n\x12ReplaceRoleActions\x12%.CChatRoom_ReplaceRoleActions_Request\x1a&.CChatRoom_ReplaceRoleActions_Response\"!\x82\xb5\x18\x1dReplace role actions in group\x12s\n\rAddRoleToUser\x12 .CChatRoom_AddRoleToUser_Request\x1a!.CChatRoom_AddRoleToUser_Response\"\x1d\x82\xb5\x18\x19\x41\x64\x64 role to user in group\x12\x87\x01\n\x0fGetRolesForUser\x12\".CChatRoom_GetRolesForUser_Request\x1a#.CChatRoom_GetRolesForUser_Response\"+\x82\xb5\x18\'Get all roles assigned to user in group\x12\x87\x01\n\x12\x44\x65leteRoleFromUser\x12%.CChatRoom_DeleteRoleFromUser_Request\x1a&.CChatRoom_DeleteRoleFromUser_Response\"\"\x82\xb5\x18\x1e\x44\x65lete role from user in group\x12\x81\x01\n\x11JoinChatRoomGroup\x12$.CChatRoom_JoinChatRoomGroup_Request\x1a%.CChatRoom_JoinChatRoomGroup_Response\"\x1f\x82\xb5\x18\x1bJoin a multi-user chat room\x12\xad\x01\n\x1bInviteFriendToChatRoomGroup\x12..CChatRoom_InviteFriendToChatRoomGroup_Request\x1a/.CChatRoom_InviteFriendToChatRoomGroup_Response\"-\x82\xb5\x18)Invite a friend to a multi-user chat room\x12\x97\x01\n\x12LeaveChatRoomGroup\x12%.CChatRoom_LeaveChatRoomGroup_Request\x1a&.CChatRoom_LeaveChatRoomGroup_Response\"2\x82\xb5\x18.Leaves a chat room group and all related chats\x12\x89\x01\n\x0e\x43reateChatRoom\x12!.CChatRoom_CreateChatRoom_Request\x1a\".CChatRoom_CreateChatRoom_Response\"0\x82\xb5\x18,Creates a chat room inside a chat room group\x12\x89\x01\n\x0e\x44\x65leteChatRoom\x12!.CChatRoom_DeleteChatRoom_Request\x1a\".CChatRoom_DeleteChatRoom_Response\"0\x82\xb5\x18,Deletes a chat room inside a chat room group\x12\x89\x01\n\x0eRenameChatRoom\x12!.CChatRoom_RenameChatRoom_Request\x1a\".CChatRoom_RenameChatRoom_Response\"0\x82\xb5\x18,Renames a chat room inside a chat room group\x12\x8d\x01\n\x0fReorderChatRoom\x12\".CChatRoom_ReorderChatRoom_Request\x1a#.CChatRoom_ReorderChatRoom_Response\"1\x82\xb5\x18-Reorders a chat room inside a chat room group\x12\x8d\x01\n\x0fSendChatMessage\x12\".CChatRoom_SendChatMessage_Request\x1a#.CChatRoom_SendChatMessage_Response\"1\x82\xb5\x18-Send a chat message to a multi-user chat room\x12\xa7\x01\n\rJoinVoiceChat\x12 .CChatRoom_JoinVoiceChat_Request\x1a!.CChatRoom_JoinVoiceChat_Response\"Q\x82\xb5\x18MJoin the voice chat in a multi-room chat (should already be in the chat room)\x12\x86\x01\n\x0eLeaveVoiceChat\x12!.CChatRoom_LeaveVoiceChat_Request\x1a\".CChatRoom_LeaveVoiceChat_Response\"-\x82\xb5\x18)Leave the voice chat in a multi-room chat\x12\xc3\x01\n\x11GetMessageHistory\x12$.CChatRoom_GetMessageHistory_Request\x1a%.CChatRoom_GetMessageHistory_Response\"a\x82\xb5\x18]Get the history of messages in a chat room.  You must currently be a member of the chat room.\x12\x88\x01\n\x13GetMyChatRoomGroups\x12&.CChatRoom_GetMyChatRoomGroups_Request\x1a\'.CChatRoom_GetMyChatRoomGroups_Response\" \x82\xb5\x18\x1cGet a list of our chat rooms\x12\x9a\x01\n\x15GetChatRoomGroupState\x12(.CChatRoom_GetChatRoomGroupState_Request\x1a).CChatRoom_GetChatRoomGroupState_Response\",\x82\xb5\x18(Get information about a single chat room\x12\xa5\x01\n\x17GetChatRoomGroupSummary\x12*.CChatRoom_GetChatRoomGroupSummary_Request\x1a+.CChatRoom_GetChatRoomGroupSummary_Response\"1\x82\xb5\x18-Get basic information about a chat room group\x12\xd3\x01\n\x1eSetAppChatRoomGroupForceActive\x12\x31.CChatRoom_SetAppChatRoomGroupForceActive_Request\x1a\x32.CChatRoom_SetAppChatRoomGroupForceActive_Response\"J\x82\xb5\x18\x46\x46orce a group chat to be considered active on the server for this user\x12\xd3\x01\n\"SetAppChatRoomGroupStopForceActive\x12:.CChatRoom_SetAppChatRoomGroupStopForceActive_Notification\x1a\x0b.NoResponse\"d\x82\xb5\x18`If a group chat is forced active (see SetAppChatRoomGroupForceActive), decrement the force count\x12\x8f\x01\n\x0e\x41\x63kChatMessage\x12&.CChatRoom_AckChatMessage_Notification\x1a\x0b.NoResponse\"H\x82\xb5\x18\x44\x41\x63knowledge that we have seen the most recent chat message in a chat\x12\x81\x01\n\x10\x43reateInviteLink\x12#.CChatRoom_CreateInviteLink_Request\x1a$.CChatRoom_CreateInviteLink_Response\"\"\x82\xb5\x18\x1e\x43reates a chatroom invite link\x12\x90\x01\n\x11GetInviteLinkInfo\x12$.CChatRoom_GetInviteLinkInfo_Request\x1a%.CChatRoom_GetInviteLinkInfo_Response\".\x82\xb5\x18*Returns chat room info about provided link\x12\xaa\x01\n\rGetInviteInfo\x12 .CChatRoom_GetInviteInfo_Request\x1a!.CChatRoom_GetInviteInfo_Response\"T\x82\xb5\x18PReturns chat room info about any invite involving the sender and passed group id\x12\xa5\x01\n\x16GetInviteLinksForGroup\x12).CChatRoom_GetInviteLinksForGroup_Request\x1a*.CChatRoom_GetInviteLinksForGroup_Response\"4\x82\xb5\x18\x30Returns all invite links for the specified group\x12\x8b\x01\n\nGetBanList\x12\x1d.CChatRoom_GetBanList_Request\x1a\x1e.CChatRoom_GetBanList_Response\">\x82\xb5\x18:Gets a list of users who have been banned from a chat room\x12\x93\x01\n\rGetInviteList\x12 .CChatRoom_GetInviteList_Request\x1a!.CChatRoom_GetInviteList_Response\"=\x82\xb5\x18\x39Gets a list of users who have been invited to a chat room\x12\x80\x01\n\x10\x44\x65leteInviteLink\x12#.CChatRoom_DeleteInviteLink_Request\x1a$.CChatRoom_DeleteInviteLink_Response\"!\x82\xb5\x18\x1d\x44\x65letes specified invite link\x12\xc4\x01\n\x1eSetSessionActiveChatRoomGroups\x12\x31.CChatRoom_SetSessionActiveChatRoomGroups_Request\x1a\x32.CChatRoom_SetSessionActiveChatRoomGroups_Response\";\x82\xb5\x18\x37Set which chat rooms we are using in the active session\x12\xb9\x01\n\x1bSetUserChatGroupPreferences\x12..CChatRoom_SetUserChatGroupPreferences_Request\x1a/.CChatRoom_SetUserChatGroupPreferences_Response\"9\x82\xb5\x18\x35Set preferences around chat notifications for a group\x12\x88\x01\n\x12\x44\x65leteChatMessages\x12%.CChatRoom_DeleteChatMessages_Request\x1a&.CChatRoom_DeleteChatMessages_Response\"#\x82\xb5\x18\x1f\x44\x65letes specified chat messages\x12\x9a\x01\n\x14UpdateMemberListView\x12,.CChatRoom_UpdateMemberListView_Notification\x1a\x0b.NoResponse\"G\x82\xb5\x18\x43\x41 client is indicating it has an active view into the members list.\x12{\n\rSearchMembers\x12 .CChatRoom_SearchMembers_Request\x1a!.CChatRoom_SearchMembers_Response\"%\x82\xb5\x18!Search chat room members by name.\x12\xa5\x01\n\x15UpdateMessageReaction\x12(.CChatRoom_UpdateMessageReaction_Request\x1a).CChatRoom_UpdateMessageReaction_Response\"7\x82\xb5\x18\x33\x41\x64\x64s/removes a reaction to/from a chat room message\x12\xb4\x01\n\x1aGetMessageReactionReactors\x12-.CChatRoom_GetMessageReactionReactors_Request\x1a..CChatRoom_GetMessageReactionReactors_Response\"7\x82\xb5\x18\x33\x46\x65tches a list of reactors for a specified reaction\x1a\x42\x82\xb5\x18>Service for joining, managing, and using multi-user chat rooms2\xae\x03\n\rClanChatRooms\x12\xb8\x01\n\x13GetClanChatRoomInfo\x12+.CClanChatRooms_GetClanChatRoomInfo_Request\x1a,.CClanChatRooms_GetClanChatRoomInfo_Response\"F\x82\xb5\x18\x42Get a list of chat rooms for a clan, optionally creating a new one\x12\xb2\x01\n\x16SetClanChatRoomPrivate\x12..CClanChatRooms_SetClanChatRoomPrivate_Request\x1a/.CClanChatRooms_SetClanChatRoomPrivate_Response\"7\x82\xb5\x18\x33Set a clan chat room to be members only (or public)\x1a-\x82\xb5\x18)Methods for getting clan chat information2\xef\x0e\n\x0e\x43hatRoomClient\x12{\n\x19NotifyIncomingChatMessage\x12+.CChatRoom_IncomingChatMessage_Notification\x1a\x0b.NoResponse\"$\x82\xb5\x18 New chat message for a chat room\x12\x94\x01\n\x19NotifyChatMessageModified\x12+.CChatRoom_ChatMessageModified_Notification\x1a\x0b.NoResponse\"=\x82\xb5\x18\x39\x41n existing chat message has been modified on the backend\x12\x95\x01\n\x17NotifyMemberStateChange\x12).CChatRoom_MemberStateChange_Notification\x1a\x0b.NoResponse\"B\x82\xb5\x18>A chat room member\'s state has changed (join/part/permissions)\x12\x88\x01\n\x1fNotifyChatRoomHeaderStateChange\x12+.CChatRoom_ChatRoomHeaderState_Notification\x1a\x0b.NoResponse\"+\x82\xb5\x18\'Chat Room header / metadata has changed\x12\xa6\x01\n\x1eNotifyChatRoomGroupRoomsChange\x12\x30.CChatRoom_ChatRoomGroupRoomsChange_Notification\x1a\x0b.NoResponse\"E\x82\xb5\x18\x41Something about a chatroom group changed (created, deleted, etc.)\x12\xd5\x01\n#NotifyShouldRejoinChatRoomVoiceChat\x12;.CChatRoom_NotifyShouldRejoinChatRoomVoiceChat_Notification\x1a\x0b.NoResponse\"d\x82\xb5\x18`Voice chat was recreated or dropped on the backend and client needs to rejoin to remain in chat.\x12\xb3\x01\n\x1fNotifyChatGroupUserStateChanged\x12<.ChatRoomClient_NotifyChatGroupUserStateChanged_Notification\x1a\x0b.NoResponse\"E\x82\xb5\x18\x41User chat group state (preferences, ack state, etc) have changed.\x12\x8f\x01\n\x18NotifyAckChatMessageEcho\x12&.CChatRoom_AckChatMessage_Notification\x1a\x0b.NoResponse\">\x82\xb5\x18:A session acked an unread message, echo to other sessions.\x12\xed\x01\n\x18NotifyChatRoomDisconnect\x12\x35.ChatRoomClient_NotifyChatRoomDisconnect_Notification\x1a\x0b.NoResponse\"\x8c\x01\x82\xb5\x18\x87\x01The ChatRoom server hosting the chat rooms has reconnected to the user\'s Chat server (may have restarted), client should refresh state.\x12\xd5\x01\n\x1bNotifyMemberListViewUpdated\x12\x33.CChatRoomClient_MemberListViewUpdated_Notification\x1a\x0b.NoResponse\"t\x82\xb5\x18pThe list of members for a chat room with virtualized member list has changed on the server (or client requested)\x12g\n\x15NotifyMessageReaction\x12\'.CChatRoom_MessageReaction_Notification\x1a\x0b.NoResponse\"\x18\x82\xb5\x18\x14New message reaction\x1a,\x82\xb5\x18$Client notifications for chat events\xc0\xb5\x18\x02\x32\xc2\x01\n\rChatUsability\x12\x86\x01\n\x1cNotifyClientUsabilityMetrics\x12\x33.CChatUsability_ClientUsabilityMetrics_Notification\x1a\x0b.NoResponse\"$\x82\xb5\x18 Incoming metrics from the client\x1a(\x82\xb5\x18$Client notifications for chat events2\xe2\x01\n\x13\x43hatUsabilityClient\x12\x99\x01\n#NotifyRequestClientUsabilityMetrics\x12:.CChatUsability_RequestClientUsabilityMetrics_Notification\x1a\x0b.NoResponse\")\x82\xb5\x18%Request client send usability metrics\x1a/\x82\xb5\x18\'Client notifications for chat usability\xc0\xb5\x18\x02\x42\x03\x90\x01\x01')
   ,
   dependencies=[steammessages__unified__base__pb2.DESCRIPTOR,steammessages__clientserver__friends__pb2.DESCRIPTOR,])
 
@@ -54,8 +54,8 @@ _ECHATROOMJOINSTATE = _descriptor.EnumDescriptor(
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=19440,
-  serialized_end=19596,
+  serialized_start=20624,
+  serialized_end=20780,
 )
 _sym_db.RegisterEnumDescriptor(_ECHATROOMJOINSTATE)
 
@@ -101,8 +101,8 @@ _ECHATROOMGROUPRANK = _descriptor.EnumDescriptor(
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=19599,
-  serialized_end=19891,
+  serialized_start=20783,
+  serialized_end=21075,
 )
 _sym_db.RegisterEnumDescriptor(_ECHATROOMGROUPRANK)
 
@@ -136,8 +136,8 @@ _ECHATROOMNOTIFICATIONLEVEL = _descriptor.EnumDescriptor(
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=19894,
-  serialized_end=20138,
+  serialized_start=21078,
+  serialized_end=21322,
 )
 _sym_db.RegisterEnumDescriptor(_ECHATROOMNOTIFICATIONLEVEL)
 
@@ -191,12 +191,35 @@ _ECHATROOMSERVERMESSAGE = _descriptor.EnumDescriptor(
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=20141,
-  serialized_end=20548,
+  serialized_start=21325,
+  serialized_end=21732,
 )
 _sym_db.RegisterEnumDescriptor(_ECHATROOMSERVERMESSAGE)
 
 EChatRoomServerMessage = enum_type_wrapper.EnumTypeWrapper(_ECHATROOMSERVERMESSAGE)
+_ECHATROOMMESSAGEREACTIONTYPE = _descriptor.EnumDescriptor(
+  name='EChatRoomMessageReactionType',
+  full_name='EChatRoomMessageReactionType',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='k_EChatRoomMessageReactionType_Invalid', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EChatRoomMessageReactionType_Emoticon', index=1, number=1,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=21734,
+  serialized_end=21853,
+)
+_sym_db.RegisterEnumDescriptor(_ECHATROOMMESSAGEREACTIONTYPE)
+
+EChatRoomMessageReactionType = enum_type_wrapper.EnumTypeWrapper(_ECHATROOMMESSAGEREACTIONTYPE)
 _ECHATROOMMEMBERSTATECHANGE = _descriptor.EnumDescriptor(
   name='EChatRoomMemberStateChange',
   full_name='EChatRoomMemberStateChange',
@@ -246,8 +269,8 @@ _ECHATROOMMEMBERSTATECHANGE = _descriptor.EnumDescriptor(
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=20551,
-  serialized_end=21010,
+  serialized_start=21856,
+  serialized_end=22315,
 )
 _sym_db.RegisterEnumDescriptor(_ECHATROOMMEMBERSTATECHANGE)
 
@@ -279,6 +302,8 @@ k_EChatRoomServerMsg_InviteDismissed = 8
 k_EChatRoomServerMsg_ChatRoomTaglineChanged = 9
 k_EChatRoomServerMsg_ChatRoomAvatarChanged = 10
 k_EChatRoomServerMsg_AppCustom = 11
+k_EChatRoomMessageReactionType_Invalid = 0
+k_EChatRoomMessageReactionType_Emoticon = 1
 k_EChatRoomMemberStateChange_Invalid = 0
 k_EChatRoomMemberStateChange_Joined = 1
 k_EChatRoomMemberStateChange_Parted = 2
@@ -3400,6 +3425,57 @@ _SERVERMESSAGE = _descriptor.Descriptor(
 )
 
 
+_CCHATROOM_GETMESSAGEHISTORY_RESPONSE_CHATMESSAGE_MESSAGEREACTION = _descriptor.Descriptor(
+  name='MessageReaction',
+  full_name='CChatRoom_GetMessageHistory_Response.ChatMessage.MessageReaction',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='reaction_type', full_name='CChatRoom_GetMessageHistory_Response.ChatMessage.MessageReaction.reaction_type', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=True, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='reaction', full_name='CChatRoom_GetMessageHistory_Response.ChatMessage.MessageReaction.reaction', index=1,
+      number=2, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='num_reactors', full_name='CChatRoom_GetMessageHistory_Response.ChatMessage.MessageReaction.num_reactors', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='has_user_reacted', full_name='CChatRoom_GetMessageHistory_Response.ChatMessage.MessageReaction.has_user_reacted', index=3,
+      number=4, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=8034,
+  serialized_end=8211,
+)
+
 _CCHATROOM_GETMESSAGEHISTORY_RESPONSE_CHATMESSAGE = _descriptor.Descriptor(
   name='ChatMessage',
   full_name='CChatRoom_GetMessageHistory_Response.ChatMessage',
@@ -3449,10 +3525,17 @@ _CCHATROOM_GETMESSAGEHISTORY_RESPONSE_CHATMESSAGE = _descriptor.Descriptor(
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='reactions', full_name='CChatRoom_GetMessageHistory_Response.ChatMessage.reactions', index=6,
+      number=7, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
-  nested_types=[],
+  nested_types=[_CCHATROOM_GETMESSAGEHISTORY_RESPONSE_CHATMESSAGE_MESSAGEREACTION, ],
   enum_types=[
   ],
   serialized_options=None,
@@ -3462,7 +3545,7 @@ _CCHATROOM_GETMESSAGEHISTORY_RESPONSE_CHATMESSAGE = _descriptor.Descriptor(
   oneofs=[
   ],
   serialized_start=7799,
-  serialized_end=7945,
+  serialized_end=8211,
 )
 
 _CCHATROOM_GETMESSAGEHISTORY_RESPONSE = _descriptor.Descriptor(
@@ -3499,7 +3582,7 @@ _CCHATROOM_GETMESSAGEHISTORY_RESPONSE = _descriptor.Descriptor(
   oneofs=[
   ],
   serialized_start=7665,
-  serialized_end=7945,
+  serialized_end=8211,
 )
 
 
@@ -3522,8 +3605,8 @@ _CCHATROOM_GETMYCHATROOMGROUPS_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=7947,
-  serialized_end=7986,
+  serialized_start=8213,
+  serialized_end=8252,
 )
 
 
@@ -3693,8 +3776,8 @@ _CCHATROOM_GETCHATROOMGROUPSUMMARY_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=7989,
-  serialized_end=8663,
+  serialized_start=8255,
+  serialized_end=8929,
 )
 
 
@@ -3731,8 +3814,8 @@ _CCHATROOMSUMMARYPAIR = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8666,
-  serialized_end=8813,
+  serialized_start=8932,
+  serialized_end=9079,
 )
 
 
@@ -3762,8 +3845,8 @@ _CCHATROOM_GETMYCHATROOMGROUPS_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8815,
-  serialized_end=8904,
+  serialized_start=9081,
+  serialized_end=9170,
 )
 
 
@@ -3793,8 +3876,8 @@ _CCHATROOM_GETCHATROOMGROUPSTATE_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8906,
-  serialized_end=8970,
+  serialized_start=9172,
+  serialized_end=9236,
 )
 
 
@@ -3824,8 +3907,8 @@ _CCHATROOM_GETCHATROOMGROUPSTATE_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8972,
-  serialized_end=9051,
+  serialized_start=9238,
+  serialized_end=9317,
 )
 
 
@@ -3855,8 +3938,8 @@ _CCHATROOM_GETCHATROOMGROUPSUMMARY_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9053,
-  serialized_end=9119,
+  serialized_start=9319,
+  serialized_end=9385,
 )
 
 
@@ -3893,8 +3976,8 @@ _CCHATROOM_SETAPPCHATROOMGROUPFORCEACTIVE_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9121,
-  serialized_end=9221,
+  serialized_start=9387,
+  serialized_end=9487,
 )
 
 
@@ -3931,8 +4014,8 @@ _CCHATROOM_SETAPPCHATROOMGROUPFORCEACTIVE_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9223,
-  serialized_end=9319,
+  serialized_start=9489,
+  serialized_end=9585,
 )
 
 
@@ -3969,8 +4052,8 @@ _CCHATROOM_SETAPPCHATROOMGROUPSTOPFORCEACTIVE_NOTIFICATION = _descriptor.Descrip
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9321,
-  serialized_end=9430,
+  serialized_start=9587,
+  serialized_end=9696,
 )
 
 
@@ -4014,8 +4097,8 @@ _CCHATROOM_ACKCHATMESSAGE_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9432,
-  serialized_end=9530,
+  serialized_start=9698,
+  serialized_end=9796,
 )
 
 
@@ -4059,8 +4142,8 @@ _CCHATROOM_CREATEINVITELINK_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9532,
-  serialized_end=9631,
+  serialized_start=9798,
+  serialized_end=9897,
 )
 
 
@@ -4097,8 +4180,8 @@ _CCHATROOM_CREATEINVITELINK_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9633,
-  serialized_end=9714,
+  serialized_start=9899,
+  serialized_end=9980,
 )
 
 
@@ -4128,8 +4211,8 @@ _CCHATROOM_GETINVITELINKINFO_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9716,
-  serialized_end=9774,
+  serialized_start=9982,
+  serialized_end=10040,
 )
 
 
@@ -4201,8 +4284,8 @@ _CCHATROOM_GETINVITELINKINFO_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9777,
-  serialized_end=10045,
+  serialized_start=10043,
+  serialized_end=10311,
 )
 
 
@@ -4253,8 +4336,8 @@ _CCHATROOM_GETINVITEINFO_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10047,
-  serialized_end=10166,
+  serialized_start=10313,
+  serialized_end=10432,
 )
 
 
@@ -4298,8 +4381,8 @@ _CCHATROOM_GETINVITEINFO_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10169,
-  serialized_end=10313,
+  serialized_start=10435,
+  serialized_end=10579,
 )
 
 
@@ -4329,8 +4412,8 @@ _CCHATROOM_GETINVITELINKSFORGROUP_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10315,
-  serialized_end=10380,
+  serialized_start=10581,
+  serialized_end=10646,
 )
 
 
@@ -4381,8 +4464,8 @@ _CCHATROOM_GETINVITELINKSFORGROUP_RESPONSE_LINKINFO = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10503,
-  serialized_end=10598,
+  serialized_start=10769,
+  serialized_end=10864,
 )
 
 _CCHATROOM_GETINVITELINKSFORGROUP_RESPONSE = _descriptor.Descriptor(
@@ -4411,8 +4494,8 @@ _CCHATROOM_GETINVITELINKSFORGROUP_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10383,
-  serialized_end=10598,
+  serialized_start=10649,
+  serialized_end=10864,
 )
 
 
@@ -4442,8 +4525,8 @@ _CCHATROOM_GETBANLIST_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10600,
-  serialized_end=10653,
+  serialized_start=10866,
+  serialized_end=10919,
 )
 
 
@@ -4494,8 +4577,8 @@ _CCHATROOM_GETBANLIST_RESPONSE_BANINFO = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10743,
-  serialized_end=10837,
+  serialized_start=11009,
+  serialized_end=11103,
 )
 
 _CCHATROOM_GETBANLIST_RESPONSE = _descriptor.Descriptor(
@@ -4524,8 +4607,8 @@ _CCHATROOM_GETBANLIST_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10656,
-  serialized_end=10837,
+  serialized_start=10922,
+  serialized_end=11103,
 )
 
 
@@ -4555,8 +4638,8 @@ _CCHATROOM_GETINVITELIST_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10839,
-  serialized_end=10895,
+  serialized_start=11105,
+  serialized_end=11161,
 )
 
 
@@ -4600,8 +4683,8 @@ _CCHATROOMGROUPINVITE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10897,
-  serialized_end=10985,
+  serialized_start=11163,
+  serialized_end=11251,
 )
 
 
@@ -4631,8 +4714,8 @@ _CCHATROOM_GETINVITELIST_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10987,
-  serialized_end=11061,
+  serialized_start=11253,
+  serialized_end=11327,
 )
 
 
@@ -4669,8 +4752,8 @@ _CCHATROOM_DELETEINVITELINK_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11063,
-  serialized_end=11143,
+  serialized_start=11329,
+  serialized_end=11409,
 )
 
 
@@ -4693,8 +4776,8 @@ _CCHATROOM_DELETEINVITELINK_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11145,
-  serialized_end=11182,
+  serialized_start=11411,
+  serialized_end=11448,
 )
 
 
@@ -4738,8 +4821,8 @@ _CCHATROOM_SETSESSIONACTIVECHATROOMGROUPS_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11185,
-  serialized_end=11429,
+  serialized_start=11451,
+  serialized_end=11695,
 )
 
 
@@ -4776,8 +4859,8 @@ _CCHATROOM_SETSESSIONACTIVECHATROOMGROUPS_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11432,
-  serialized_end=11569,
+  serialized_start=11698,
+  serialized_end=11835,
 )
 
 
@@ -4821,8 +4904,8 @@ _CCHATROOM_SETUSERCHATGROUPPREFERENCES_REQUEST_CHATGROUPPREFERENCES = _descripto
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11845,
-  serialized_end=12104,
+  serialized_start=12111,
+  serialized_end=12370,
 )
 
 _CCHATROOM_SETUSERCHATGROUPPREFERENCES_REQUEST_CHATROOMPREFERENCES = _descriptor.Descriptor(
@@ -4872,8 +4955,8 @@ _CCHATROOM_SETUSERCHATGROUPPREFERENCES_REQUEST_CHATROOMPREFERENCES = _descriptor
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12107,
-  serialized_end=12382,
+  serialized_start=12373,
+  serialized_end=12648,
 )
 
 _CCHATROOM_SETUSERCHATGROUPPREFERENCES_REQUEST = _descriptor.Descriptor(
@@ -4916,8 +4999,8 @@ _CCHATROOM_SETUSERCHATGROUPPREFERENCES_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11572,
-  serialized_end=12382,
+  serialized_start=11838,
+  serialized_end=12648,
 )
 
 
@@ -4940,8 +5023,8 @@ _CCHATROOM_SETUSERCHATGROUPPREFERENCES_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12384,
-  serialized_end=12432,
+  serialized_start=12650,
+  serialized_end=12698,
 )
 
 
@@ -4978,8 +5061,8 @@ _CCHATROOM_DELETECHATMESSAGES_REQUEST_MESSAGE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12580,
-  serialized_end=12632,
+  serialized_start=12846,
+  serialized_end=12898,
 )
 
 _CCHATROOM_DELETECHATMESSAGES_REQUEST = _descriptor.Descriptor(
@@ -5022,8 +5105,8 @@ _CCHATROOM_DELETECHATMESSAGES_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12435,
-  serialized_end=12632,
+  serialized_start=12701,
+  serialized_end=12898,
 )
 
 
@@ -5046,8 +5129,8 @@ _CCHATROOM_DELETECHATMESSAGES_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12634,
-  serialized_end=12673,
+  serialized_start=12900,
+  serialized_end=12939,
 )
 
 
@@ -5126,8 +5209,8 @@ _CCHATROOM_UPDATEMEMBERLISTVIEW_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12676,
-  serialized_end=13165,
+  serialized_start=12942,
+  serialized_end=13431,
 )
 
 
@@ -5178,8 +5261,8 @@ _CCHATROOM_SEARCHMEMBERS_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=13168,
-  serialized_end=13447,
+  serialized_start=13434,
+  serialized_end=13713,
 )
 
 
@@ -5216,8 +5299,8 @@ _CCHATROOM_SEARCHMEMBERS_RESPONSE_MEMBERMATCH = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=13581,
-  serialized_end=13662,
+  serialized_start=13847,
+  serialized_end=13928,
 )
 
 _CCHATROOM_SEARCHMEMBERS_RESPONSE = _descriptor.Descriptor(
@@ -5253,8 +5336,216 @@ _CCHATROOM_SEARCHMEMBERS_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=13450,
-  serialized_end=13662,
+  serialized_start=13716,
+  serialized_end=13928,
+)
+
+
+_CCHATROOM_UPDATEMESSAGEREACTION_REQUEST = _descriptor.Descriptor(
+  name='CChatRoom_UpdateMessageReaction_Request',
+  full_name='CChatRoom_UpdateMessageReaction_Request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='chat_group_id', full_name='CChatRoom_UpdateMessageReaction_Request.chat_group_id', index=0,
+      number=1, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='chat_id', full_name='CChatRoom_UpdateMessageReaction_Request.chat_id', index=1,
+      number=2, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='server_timestamp', full_name='CChatRoom_UpdateMessageReaction_Request.server_timestamp', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='ordinal', full_name='CChatRoom_UpdateMessageReaction_Request.ordinal', index=3,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='reaction_type', full_name='CChatRoom_UpdateMessageReaction_Request.reaction_type', index=4,
+      number=5, type=14, cpp_type=8, label=1,
+      has_default_value=True, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='reaction', full_name='CChatRoom_UpdateMessageReaction_Request.reaction', index=5,
+      number=6, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='is_add', full_name='CChatRoom_UpdateMessageReaction_Request.is_add', index=6,
+      number=7, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=13931,
+  serialized_end=14183,
+)
+
+
+_CCHATROOM_UPDATEMESSAGEREACTION_RESPONSE = _descriptor.Descriptor(
+  name='CChatRoom_UpdateMessageReaction_Response',
+  full_name='CChatRoom_UpdateMessageReaction_Response',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='num_reactors', full_name='CChatRoom_UpdateMessageReaction_Response.num_reactors', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=14185,
+  serialized_end=14249,
+)
+
+
+_CCHATROOM_GETMESSAGEREACTIONREACTORS_REQUEST = _descriptor.Descriptor(
+  name='CChatRoom_GetMessageReactionReactors_Request',
+  full_name='CChatRoom_GetMessageReactionReactors_Request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='chat_group_id', full_name='CChatRoom_GetMessageReactionReactors_Request.chat_group_id', index=0,
+      number=1, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='chat_id', full_name='CChatRoom_GetMessageReactionReactors_Request.chat_id', index=1,
+      number=2, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='server_timestamp', full_name='CChatRoom_GetMessageReactionReactors_Request.server_timestamp', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='ordinal', full_name='CChatRoom_GetMessageReactionReactors_Request.ordinal', index=3,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='reaction_type', full_name='CChatRoom_GetMessageReactionReactors_Request.reaction_type', index=4,
+      number=5, type=14, cpp_type=8, label=1,
+      has_default_value=True, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='reaction', full_name='CChatRoom_GetMessageReactionReactors_Request.reaction', index=5,
+      number=6, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='limit', full_name='CChatRoom_GetMessageReactionReactors_Request.limit', index=6,
+      number=7, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=14252,
+  serialized_end=14508,
+)
+
+
+_CCHATROOM_GETMESSAGEREACTIONREACTORS_RESPONSE = _descriptor.Descriptor(
+  name='CChatRoom_GetMessageReactionReactors_Response',
+  full_name='CChatRoom_GetMessageReactionReactors_Response',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='reactors', full_name='CChatRoom_GetMessageReactionReactors_Response.reactors', index=0,
+      number=1, type=13, cpp_type=3, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=14510,
+  serialized_end=14575,
 )
 
 
@@ -5291,8 +5582,8 @@ _CCLANCHATROOMS_GETCLANCHATROOMINFO_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=13665,
-  serialized_end=13817,
+  serialized_start=14578,
+  serialized_end=14730,
 )
 
 
@@ -5322,8 +5613,8 @@ _CCLANCHATROOMS_GETCLANCHATROOMINFO_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=13819,
-  serialized_end=13937,
+  serialized_start=14732,
+  serialized_end=14850,
 )
 
 
@@ -5360,8 +5651,8 @@ _CCLANCHATROOMS_SETCLANCHATROOMPRIVATE_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=13939,
-  serialized_end=14030,
+  serialized_start=14852,
+  serialized_end=14943,
 )
 
 
@@ -5391,8 +5682,8 @@ _CCLANCHATROOMS_SETCLANCHATROOMPRIVATE_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=14032,
-  serialized_end=14107,
+  serialized_start=14945,
+  serialized_end=15020,
 )
 
 
@@ -5436,8 +5727,8 @@ _CCHATMENTIONS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=14109,
-  serialized_end=14195,
+  serialized_start=15022,
+  serialized_end=15108,
 )
 
 
@@ -5530,8 +5821,8 @@ _CCHATROOM_INCOMINGCHATMESSAGE_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=14198,
-  serialized_end=14539,
+  serialized_start=15111,
+  serialized_end=15452,
 )
 
 
@@ -5575,8 +5866,8 @@ _CCHATROOM_CHATMESSAGEMODIFIED_NOTIFICATION_CHATMESSAGE = _descriptor.Descriptor
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=14703,
-  serialized_end=14776,
+  serialized_start=15616,
+  serialized_end=15689,
 )
 
 _CCHATROOM_CHATMESSAGEMODIFIED_NOTIFICATION = _descriptor.Descriptor(
@@ -5619,8 +5910,8 @@ _CCHATROOM_CHATMESSAGEMODIFIED_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=14542,
-  serialized_end=14776,
+  serialized_start=15455,
+  serialized_end=15689,
 )
 
 
@@ -5664,8 +5955,8 @@ _CCHATROOM_MEMBERSTATECHANGE_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=14779,
-  serialized_end=14961,
+  serialized_start=15692,
+  serialized_end=15874,
 )
 
 
@@ -5695,8 +5986,8 @@ _CCHATROOM_CHATROOMHEADERSTATE_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=14963,
-  serialized_end=15057,
+  serialized_start=15876,
+  serialized_end=15970,
 )
 
 
@@ -5740,8 +6031,8 @@ _CCHATROOM_CHATROOMGROUPROOMSCHANGE_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=15060,
-  serialized_end=15194,
+  serialized_start=15973,
+  serialized_end=16107,
 )
 
 
@@ -5778,8 +6069,8 @@ _CCHATROOM_NOTIFYSHOULDREJOINCHATROOMVOICECHAT_NOTIFICATION = _descriptor.Descri
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=15196,
-  serialized_end=15296,
+  serialized_start=16109,
+  serialized_end=16209,
 )
 
 
@@ -5830,8 +6121,8 @@ _CHATROOMCLIENT_NOTIFYCHATGROUPUSERSTATECHANGED_NOTIFICATION = _descriptor.Descr
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=15299,
-  serialized_end=15596,
+  serialized_start=16212,
+  serialized_end=16509,
 )
 
 
@@ -5861,8 +6152,8 @@ _CHATROOMCLIENT_NOTIFYCHATROOMDISCONNECT_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=15598,
-  serialized_end=15676,
+  serialized_start=16511,
+  serialized_end=16589,
 )
 
 
@@ -5920,8 +6211,8 @@ _CCHATROOMMEMBERLISTVIEW = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=15679,
-  serialized_end=15955,
+  serialized_start=16592,
+  serialized_end=16868,
 )
 
 
@@ -5965,8 +6256,8 @@ _CCHATROOMMEMBERSUMMARYCOUNTS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=15957,
-  serialized_end=16036,
+  serialized_start=16870,
+  serialized_end=16949,
 )
 
 
@@ -6010,8 +6301,8 @@ _CCHATROOMCLIENT_MEMBERLISTVIEWUPDATED_NOTIFICATION_MEMBERLISTVIEWENTRY = _descr
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=16463,
-  serialized_end=16566,
+  serialized_start=17376,
+  serialized_end=17479,
 )
 
 _CCHATROOMCLIENT_MEMBERLISTVIEWUPDATED_NOTIFICATION = _descriptor.Descriptor(
@@ -6082,8 +6373,88 @@ _CCHATROOMCLIENT_MEMBERLISTVIEWUPDATED_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=16039,
-  serialized_end=16566,
+  serialized_start=16952,
+  serialized_end=17479,
+)
+
+
+_CCHATROOM_MESSAGEREACTION_NOTIFICATION = _descriptor.Descriptor(
+  name='CChatRoom_MessageReaction_Notification',
+  full_name='CChatRoom_MessageReaction_Notification',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='chat_group_id', full_name='CChatRoom_MessageReaction_Notification.chat_group_id', index=0,
+      number=1, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='chat_id', full_name='CChatRoom_MessageReaction_Notification.chat_id', index=1,
+      number=2, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='server_timestamp', full_name='CChatRoom_MessageReaction_Notification.server_timestamp', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='ordinal', full_name='CChatRoom_MessageReaction_Notification.ordinal', index=3,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='reactor', full_name='CChatRoom_MessageReaction_Notification.reactor', index=4,
+      number=5, type=6, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='reaction_type', full_name='CChatRoom_MessageReaction_Notification.reaction_type', index=5,
+      number=6, type=14, cpp_type=8, label=1,
+      has_default_value=True, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='reaction', full_name='CChatRoom_MessageReaction_Notification.reaction', index=6,
+      number=7, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='is_add', full_name='CChatRoom_MessageReaction_Notification.is_add', index=7,
+      number=8, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=17482,
+  serialized_end=17750,
 )
 
 
@@ -6281,8 +6652,8 @@ _CCHATUSABILITY_CLIENTUSABILITYMETRICS_NOTIFICATION_SETTINGS = _descriptor.Descr
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17039,
-  serialized_end=17896,
+  serialized_start=18223,
+  serialized_end=19080,
 )
 
 _CCHATUSABILITY_CLIENTUSABILITYMETRICS_NOTIFICATION_VOICESETTINGS = _descriptor.Descriptor(
@@ -6381,8 +6752,8 @@ _CCHATUSABILITY_CLIENTUSABILITYMETRICS_NOTIFICATION_VOICESETTINGS = _descriptor.
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17899,
-  serialized_end=18261,
+  serialized_start=19083,
+  serialized_end=19445,
 )
 
 _CCHATUSABILITY_CLIENTUSABILITYMETRICS_NOTIFICATION_UISTATE_CATEGORYCOLLAPSESTATE = _descriptor.Descriptor(
@@ -6439,8 +6810,8 @@ _CCHATUSABILITY_CLIENTUSABILITYMETRICS_NOTIFICATION_UISTATE_CATEGORYCOLLAPSESTAT
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=18865,
-  serialized_end=19029,
+  serialized_start=20049,
+  serialized_end=20213,
 )
 
 _CCHATUSABILITY_CLIENTUSABILITYMETRICS_NOTIFICATION_UISTATE = _descriptor.Descriptor(
@@ -6574,8 +6945,8 @@ _CCHATUSABILITY_CLIENTUSABILITYMETRICS_NOTIFICATION_UISTATE = _descriptor.Descri
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=18264,
-  serialized_end=19029,
+  serialized_start=19448,
+  serialized_end=20213,
 )
 
 _CCHATUSABILITY_CLIENTUSABILITYMETRICS_NOTIFICATION_METRICS = _descriptor.Descriptor(
@@ -6667,8 +7038,8 @@ _CCHATUSABILITY_CLIENTUSABILITYMETRICS_NOTIFICATION_METRICS = _descriptor.Descri
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=19032,
-  serialized_end=19352,
+  serialized_start=20216,
+  serialized_end=20536,
 )
 
 _CCHATUSABILITY_CLIENTUSABILITYMETRICS_NOTIFICATION = _descriptor.Descriptor(
@@ -6746,8 +7117,8 @@ _CCHATUSABILITY_CLIENTUSABILITYMETRICS_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=16569,
-  serialized_end=19352,
+  serialized_start=17753,
+  serialized_end=20536,
 )
 
 
@@ -6777,8 +7148,8 @@ _CCHATUSABILITY_REQUESTCLIENTUSABILITYMETRICS_NOTIFICATION = _descriptor.Descrip
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=19354,
-  serialized_end=19437,
+  serialized_start=20538,
+  serialized_end=20621,
 )
 
 _CCHATROOMGROUPHEADERSTATE.fields_by_name['roles'].message_type = _CCHATROLE
@@ -6805,7 +7176,10 @@ _CCHATROOM_JOINCHATROOMGROUP_RESPONSE.fields_by_name['state'].message_type = _CC
 _CCHATROOM_JOINCHATROOMGROUP_RESPONSE.fields_by_name['user_chat_state'].message_type = _CUSERCHATROOMGROUPSTATE
 _CCHATROOM_CREATECHATROOM_RESPONSE.fields_by_name['chat_room'].message_type = _CCHATROOMSTATE
 _SERVERMESSAGE.fields_by_name['message'].enum_type = _ECHATROOMSERVERMESSAGE
+_CCHATROOM_GETMESSAGEHISTORY_RESPONSE_CHATMESSAGE_MESSAGEREACTION.fields_by_name['reaction_type'].enum_type = _ECHATROOMMESSAGEREACTIONTYPE
+_CCHATROOM_GETMESSAGEHISTORY_RESPONSE_CHATMESSAGE_MESSAGEREACTION.containing_type = _CCHATROOM_GETMESSAGEHISTORY_RESPONSE_CHATMESSAGE
 _CCHATROOM_GETMESSAGEHISTORY_RESPONSE_CHATMESSAGE.fields_by_name['server_message'].message_type = _SERVERMESSAGE
+_CCHATROOM_GETMESSAGEHISTORY_RESPONSE_CHATMESSAGE.fields_by_name['reactions'].message_type = _CCHATROOM_GETMESSAGEHISTORY_RESPONSE_CHATMESSAGE_MESSAGEREACTION
 _CCHATROOM_GETMESSAGEHISTORY_RESPONSE_CHATMESSAGE.containing_type = _CCHATROOM_GETMESSAGEHISTORY_RESPONSE
 _CCHATROOM_GETMESSAGEHISTORY_RESPONSE.fields_by_name['messages'].message_type = _CCHATROOM_GETMESSAGEHISTORY_RESPONSE_CHATMESSAGE
 _CCHATROOM_GETCHATROOMGROUPSUMMARY_RESPONSE.fields_by_name['chat_rooms'].message_type = _CCHATROOMSTATE
@@ -6838,6 +7212,8 @@ _CCHATROOM_DELETECHATMESSAGES_REQUEST.fields_by_name['messages'].message_type =
 _CCHATROOM_SEARCHMEMBERS_RESPONSE_MEMBERMATCH.fields_by_name['persona'].message_type = steammessages__clientserver__friends__pb2._CMSGCLIENTPERSONASTATE_FRIEND
 _CCHATROOM_SEARCHMEMBERS_RESPONSE_MEMBERMATCH.containing_type = _CCHATROOM_SEARCHMEMBERS_RESPONSE
 _CCHATROOM_SEARCHMEMBERS_RESPONSE.fields_by_name['matching_members'].message_type = _CCHATROOM_SEARCHMEMBERS_RESPONSE_MEMBERMATCH
+_CCHATROOM_UPDATEMESSAGEREACTION_REQUEST.fields_by_name['reaction_type'].enum_type = _ECHATROOMMESSAGEREACTIONTYPE
+_CCHATROOM_GETMESSAGEREACTIONREACTORS_REQUEST.fields_by_name['reaction_type'].enum_type = _ECHATROOMMESSAGEREACTIONTYPE
 _CCLANCHATROOMS_GETCLANCHATROOMINFO_RESPONSE.fields_by_name['chat_group_summary'].message_type = _CCHATROOM_GETCHATROOMGROUPSUMMARY_RESPONSE
 _CCHATROOM_INCOMINGCHATMESSAGE_NOTIFICATION.fields_by_name['mentions'].message_type = _CCHATMENTIONS
 _CCHATROOM_INCOMINGCHATMESSAGE_NOTIFICATION.fields_by_name['server_message'].message_type = _SERVERMESSAGE
@@ -6856,6 +7232,7 @@ _CCHATROOMCLIENT_MEMBERLISTVIEWUPDATED_NOTIFICATION.fields_by_name['view'].messa
 _CCHATROOMCLIENT_MEMBERLISTVIEWUPDATED_NOTIFICATION.fields_by_name['members'].message_type = _CCHATROOMCLIENT_MEMBERLISTVIEWUPDATED_NOTIFICATION_MEMBERLISTVIEWENTRY
 _CCHATROOMCLIENT_MEMBERLISTVIEWUPDATED_NOTIFICATION.fields_by_name['member_summary'].message_type = _CCHATROOMMEMBERSUMMARYCOUNTS
 _CCHATROOMCLIENT_MEMBERLISTVIEWUPDATED_NOTIFICATION.fields_by_name['subscribed_personas'].message_type = steammessages__clientserver__friends__pb2._CMSGCLIENTPERSONASTATE_FRIEND
+_CCHATROOM_MESSAGEREACTION_NOTIFICATION.fields_by_name['reaction_type'].enum_type = _ECHATROOMMESSAGEREACTIONTYPE
 _CCHATUSABILITY_CLIENTUSABILITYMETRICS_NOTIFICATION_SETTINGS.containing_type = _CCHATUSABILITY_CLIENTUSABILITYMETRICS_NOTIFICATION
 _CCHATUSABILITY_CLIENTUSABILITYMETRICS_NOTIFICATION_VOICESETTINGS.containing_type = _CCHATUSABILITY_CLIENTUSABILITYMETRICS_NOTIFICATION
 _CCHATUSABILITY_CLIENTUSABILITYMETRICS_NOTIFICATION_UISTATE_CATEGORYCOLLAPSESTATE.containing_type = _CCHATUSABILITY_CLIENTUSABILITYMETRICS_NOTIFICATION_UISTATE
@@ -6979,6 +7356,10 @@ DESCRIPTOR.message_types_by_name['CChatRoom_DeleteChatMessages_Response'] = _CCH
 DESCRIPTOR.message_types_by_name['CChatRoom_UpdateMemberListView_Notification'] = _CCHATROOM_UPDATEMEMBERLISTVIEW_NOTIFICATION
 DESCRIPTOR.message_types_by_name['CChatRoom_SearchMembers_Request'] = _CCHATROOM_SEARCHMEMBERS_REQUEST
 DESCRIPTOR.message_types_by_name['CChatRoom_SearchMembers_Response'] = _CCHATROOM_SEARCHMEMBERS_RESPONSE
+DESCRIPTOR.message_types_by_name['CChatRoom_UpdateMessageReaction_Request'] = _CCHATROOM_UPDATEMESSAGEREACTION_REQUEST
+DESCRIPTOR.message_types_by_name['CChatRoom_UpdateMessageReaction_Response'] = _CCHATROOM_UPDATEMESSAGEREACTION_RESPONSE
+DESCRIPTOR.message_types_by_name['CChatRoom_GetMessageReactionReactors_Request'] = _CCHATROOM_GETMESSAGEREACTIONREACTORS_REQUEST
+DESCRIPTOR.message_types_by_name['CChatRoom_GetMessageReactionReactors_Response'] = _CCHATROOM_GETMESSAGEREACTIONREACTORS_RESPONSE
 DESCRIPTOR.message_types_by_name['CClanChatRooms_GetClanChatRoomInfo_Request'] = _CCLANCHATROOMS_GETCLANCHATROOMINFO_REQUEST
 DESCRIPTOR.message_types_by_name['CClanChatRooms_GetClanChatRoomInfo_Response'] = _CCLANCHATROOMS_GETCLANCHATROOMINFO_RESPONSE
 DESCRIPTOR.message_types_by_name['CClanChatRooms_SetClanChatRoomPrivate_Request'] = _CCLANCHATROOMS_SETCLANCHATROOMPRIVATE_REQUEST
@@ -6995,12 +7376,14 @@ DESCRIPTOR.message_types_by_name['ChatRoomClient_NotifyChatRoomDisconnect_Notifi
 DESCRIPTOR.message_types_by_name['CChatRoomMemberListView'] = _CCHATROOMMEMBERLISTVIEW
 DESCRIPTOR.message_types_by_name['CChatRoomMemberSummaryCounts'] = _CCHATROOMMEMBERSUMMARYCOUNTS
 DESCRIPTOR.message_types_by_name['CChatRoomClient_MemberListViewUpdated_Notification'] = _CCHATROOMCLIENT_MEMBERLISTVIEWUPDATED_NOTIFICATION
+DESCRIPTOR.message_types_by_name['CChatRoom_MessageReaction_Notification'] = _CCHATROOM_MESSAGEREACTION_NOTIFICATION
 DESCRIPTOR.message_types_by_name['CChatUsability_ClientUsabilityMetrics_Notification'] = _CCHATUSABILITY_CLIENTUSABILITYMETRICS_NOTIFICATION
 DESCRIPTOR.message_types_by_name['CChatUsability_RequestClientUsabilityMetrics_Notification'] = _CCHATUSABILITY_REQUESTCLIENTUSABILITYMETRICS_NOTIFICATION
 DESCRIPTOR.enum_types_by_name['EChatRoomJoinState'] = _ECHATROOMJOINSTATE
 DESCRIPTOR.enum_types_by_name['EChatRoomGroupRank'] = _ECHATROOMGROUPRANK
 DESCRIPTOR.enum_types_by_name['EChatRoomNotificationLevel'] = _ECHATROOMNOTIFICATIONLEVEL
 DESCRIPTOR.enum_types_by_name['EChatRoomServerMessage'] = _ECHATROOMSERVERMESSAGE
+DESCRIPTOR.enum_types_by_name['EChatRoomMessageReactionType'] = _ECHATROOMMESSAGEREACTIONTYPE
 DESCRIPTOR.enum_types_by_name['EChatRoomMemberStateChange'] = _ECHATROOMMEMBERSTATECHANGE
 _sym_db.RegisterFileDescriptor(DESCRIPTOR)
 
@@ -7546,6 +7929,13 @@ _sym_db.RegisterMessage(ServerMessage)
 CChatRoom_GetMessageHistory_Response = _reflection.GeneratedProtocolMessageType('CChatRoom_GetMessageHistory_Response', (_message.Message,), dict(
 
   ChatMessage = _reflection.GeneratedProtocolMessageType('ChatMessage', (_message.Message,), dict(
+
+    MessageReaction = _reflection.GeneratedProtocolMessageType('MessageReaction', (_message.Message,), dict(
+      DESCRIPTOR = _CCHATROOM_GETMESSAGEHISTORY_RESPONSE_CHATMESSAGE_MESSAGEREACTION,
+      __module__ = 'steammessages_chat_pb2'
+      # @@protoc_insertion_point(class_scope:CChatRoom_GetMessageHistory_Response.ChatMessage.MessageReaction)
+      ))
+    ,
     DESCRIPTOR = _CCHATROOM_GETMESSAGEHISTORY_RESPONSE_CHATMESSAGE,
     __module__ = 'steammessages_chat_pb2'
     # @@protoc_insertion_point(class_scope:CChatRoom_GetMessageHistory_Response.ChatMessage)
@@ -7557,6 +7947,7 @@ CChatRoom_GetMessageHistory_Response = _reflection.GeneratedProtocolMessageType(
   ))
 _sym_db.RegisterMessage(CChatRoom_GetMessageHistory_Response)
 _sym_db.RegisterMessage(CChatRoom_GetMessageHistory_Response.ChatMessage)
+_sym_db.RegisterMessage(CChatRoom_GetMessageHistory_Response.ChatMessage.MessageReaction)
 
 CChatRoom_GetMyChatRoomGroups_Request = _reflection.GeneratedProtocolMessageType('CChatRoom_GetMyChatRoomGroups_Request', (_message.Message,), dict(
   DESCRIPTOR = _CCHATROOM_GETMYCHATROOMGROUPS_REQUEST,
@@ -7851,6 +8242,34 @@ CChatRoom_SearchMembers_Response = _reflection.GeneratedProtocolMessageType('CCh
 _sym_db.RegisterMessage(CChatRoom_SearchMembers_Response)
 _sym_db.RegisterMessage(CChatRoom_SearchMembers_Response.MemberMatch)
 
+CChatRoom_UpdateMessageReaction_Request = _reflection.GeneratedProtocolMessageType('CChatRoom_UpdateMessageReaction_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CCHATROOM_UPDATEMESSAGEREACTION_REQUEST,
+  __module__ = 'steammessages_chat_pb2'
+  # @@protoc_insertion_point(class_scope:CChatRoom_UpdateMessageReaction_Request)
+  ))
+_sym_db.RegisterMessage(CChatRoom_UpdateMessageReaction_Request)
+
+CChatRoom_UpdateMessageReaction_Response = _reflection.GeneratedProtocolMessageType('CChatRoom_UpdateMessageReaction_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CCHATROOM_UPDATEMESSAGEREACTION_RESPONSE,
+  __module__ = 'steammessages_chat_pb2'
+  # @@protoc_insertion_point(class_scope:CChatRoom_UpdateMessageReaction_Response)
+  ))
+_sym_db.RegisterMessage(CChatRoom_UpdateMessageReaction_Response)
+
+CChatRoom_GetMessageReactionReactors_Request = _reflection.GeneratedProtocolMessageType('CChatRoom_GetMessageReactionReactors_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CCHATROOM_GETMESSAGEREACTIONREACTORS_REQUEST,
+  __module__ = 'steammessages_chat_pb2'
+  # @@protoc_insertion_point(class_scope:CChatRoom_GetMessageReactionReactors_Request)
+  ))
+_sym_db.RegisterMessage(CChatRoom_GetMessageReactionReactors_Request)
+
+CChatRoom_GetMessageReactionReactors_Response = _reflection.GeneratedProtocolMessageType('CChatRoom_GetMessageReactionReactors_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CCHATROOM_GETMESSAGEREACTIONREACTORS_RESPONSE,
+  __module__ = 'steammessages_chat_pb2'
+  # @@protoc_insertion_point(class_scope:CChatRoom_GetMessageReactionReactors_Response)
+  ))
+_sym_db.RegisterMessage(CChatRoom_GetMessageReactionReactors_Response)
+
 CClanChatRooms_GetClanChatRoomInfo_Request = _reflection.GeneratedProtocolMessageType('CClanChatRooms_GetClanChatRoomInfo_Request', (_message.Message,), dict(
   DESCRIPTOR = _CCLANCHATROOMS_GETCLANCHATROOMINFO_REQUEST,
   __module__ = 'steammessages_chat_pb2'
@@ -7979,6 +8398,13 @@ CChatRoomClient_MemberListViewUpdated_Notification = _reflection.GeneratedProtoc
 _sym_db.RegisterMessage(CChatRoomClient_MemberListViewUpdated_Notification)
 _sym_db.RegisterMessage(CChatRoomClient_MemberListViewUpdated_Notification.MemberListViewEntry)
 
+CChatRoom_MessageReaction_Notification = _reflection.GeneratedProtocolMessageType('CChatRoom_MessageReaction_Notification', (_message.Message,), dict(
+  DESCRIPTOR = _CCHATROOM_MESSAGEREACTION_NOTIFICATION,
+  __module__ = 'steammessages_chat_pb2'
+  # @@protoc_insertion_point(class_scope:CChatRoom_MessageReaction_Notification)
+  ))
+_sym_db.RegisterMessage(CChatRoom_MessageReaction_Notification)
+
 CChatUsability_ClientUsabilityMetrics_Notification = _reflection.GeneratedProtocolMessageType('CChatUsability_ClientUsabilityMetrics_Notification', (_message.Message,), dict(
 
   Settings = _reflection.GeneratedProtocolMessageType('Settings', (_message.Message,), dict(
@@ -8052,8 +8478,8 @@ _CHAT = _descriptor.ServiceDescriptor(
   file=DESCRIPTOR,
   index=0,
   serialized_options=_b('\202\265\030\025Chat-related services'),
-  serialized_start=21013,
-  serialized_end=21280,
+  serialized_start=22318,
+  serialized_end=22585,
   methods=[
   _descriptor.MethodDescriptor(
     name='RequestFriendPersonaStates',
@@ -8076,8 +8502,8 @@ _CHATROOM = _descriptor.ServiceDescriptor(
   file=DESCRIPTOR,
   index=1,
   serialized_options=_b('\202\265\030>Service for joining, managing, and using multi-user chat rooms'),
-  serialized_start=21283,
-  serialized_end=28925,
+  serialized_start=22588,
+  serialized_end=30581,
   methods=[
   _descriptor.MethodDescriptor(
     name='CreateChatRoomGroup',
@@ -8538,6 +8964,24 @@ _CHATROOM = _descriptor.ServiceDescriptor(
     output_type=_CCHATROOM_SEARCHMEMBERS_RESPONSE,
     serialized_options=_b('\202\265\030!Search chat room members by name.'),
   ),
+  _descriptor.MethodDescriptor(
+    name='UpdateMessageReaction',
+    full_name='ChatRoom.UpdateMessageReaction',
+    index=51,
+    containing_service=None,
+    input_type=_CCHATROOM_UPDATEMESSAGEREACTION_REQUEST,
+    output_type=_CCHATROOM_UPDATEMESSAGEREACTION_RESPONSE,
+    serialized_options=_b('\202\265\0303Adds/removes a reaction to/from a chat room message'),
+  ),
+  _descriptor.MethodDescriptor(
+    name='GetMessageReactionReactors',
+    full_name='ChatRoom.GetMessageReactionReactors',
+    index=52,
+    containing_service=None,
+    input_type=_CCHATROOM_GETMESSAGEREACTIONREACTORS_REQUEST,
+    output_type=_CCHATROOM_GETMESSAGEREACTIONREACTORS_RESPONSE,
+    serialized_options=_b('\202\265\0303Fetches a list of reactors for a specified reaction'),
+  ),
 ])
 _sym_db.RegisterServiceDescriptor(_CHATROOM)
 
@@ -8550,8 +8994,8 @@ _CLANCHATROOMS = _descriptor.ServiceDescriptor(
   file=DESCRIPTOR,
   index=2,
   serialized_options=_b('\202\265\030)Methods for getting clan chat information'),
-  serialized_start=28928,
-  serialized_end=29358,
+  serialized_start=30584,
+  serialized_end=31014,
   methods=[
   _descriptor.MethodDescriptor(
     name='GetClanChatRoomInfo',
@@ -8583,8 +9027,8 @@ _CHATROOMCLIENT = _descriptor.ServiceDescriptor(
   file=DESCRIPTOR,
   index=3,
   serialized_options=_b('\202\265\030$Client notifications for chat events\300\265\030\002'),
-  serialized_start=29361,
-  serialized_end=31159,
+  serialized_start=31017,
+  serialized_end=32920,
   methods=[
   _descriptor.MethodDescriptor(
     name='NotifyIncomingChatMessage',
@@ -8676,6 +9120,15 @@ _CHATROOMCLIENT = _descriptor.ServiceDescriptor(
     output_type=steammessages__unified__base__pb2._NORESPONSE,
     serialized_options=_b('\202\265\030pThe list of members for a chat room with virtualized member list has changed on the server (or client requested)'),
   ),
+  _descriptor.MethodDescriptor(
+    name='NotifyMessageReaction',
+    full_name='ChatRoomClient.NotifyMessageReaction',
+    index=10,
+    containing_service=None,
+    input_type=_CCHATROOM_MESSAGEREACTION_NOTIFICATION,
+    output_type=steammessages__unified__base__pb2._NORESPONSE,
+    serialized_options=_b('\202\265\030\024New message reaction'),
+  ),
 ])
 _sym_db.RegisterServiceDescriptor(_CHATROOMCLIENT)
 
@@ -8688,8 +9141,8 @@ _CHATUSABILITY = _descriptor.ServiceDescriptor(
   file=DESCRIPTOR,
   index=4,
   serialized_options=_b('\202\265\030$Client notifications for chat events'),
-  serialized_start=31162,
-  serialized_end=31356,
+  serialized_start=32923,
+  serialized_end=33117,
   methods=[
   _descriptor.MethodDescriptor(
     name='NotifyClientUsabilityMetrics',
@@ -8712,8 +9165,8 @@ _CHATUSABILITYCLIENT = _descriptor.ServiceDescriptor(
   file=DESCRIPTOR,
   index=5,
   serialized_options=_b('\202\265\030\'Client notifications for chat usability\300\265\030\002'),
-  serialized_start=31359,
-  serialized_end=31585,
+  serialized_start=33120,
+  serialized_end=33346,
   methods=[
   _descriptor.MethodDescriptor(
     name='NotifyRequestClientUsabilityMetrics',
diff --git a/steam/protobufs/steammessages_clientserver_2_pb2.py b/steam/protobufs/steammessages_clientserver_2_pb2.py
index 7dfa60c..dd566b9 100644
--- a/steam/protobufs/steammessages_clientserver_2_pb2.py
+++ b/steam/protobufs/steammessages_clientserver_2_pb2.py
@@ -21,7 +21,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
   package='',
   syntax='proto2',
   serialized_options=_b('H\001\220\001\000'),
-  serialized_pb=_b('\n\"steammessages_clientserver_2.proto\x1a\x18steammessages_base.proto\"\x81\x03\n\x1a\x43MsgClientUCMAddScreenshot\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x10\n\x08\x66ilename\x18\x02 \x01(\t\x12\x11\n\tthumbname\x18\x03 \x01(\t\x12\x13\n\x0bvr_filename\x18\x0e \x01(\t\x12\x17\n\x0frtime32_created\x18\x04 \x01(\x07\x12\r\n\x05width\x18\x05 \x01(\r\x12\x0e\n\x06height\x18\x06 \x01(\r\x12\x13\n\x0bpermissions\x18\x07 \x01(\r\x12\x0f\n\x07\x63\x61ption\x18\x08 \x01(\t\x12\x15\n\rshortcut_name\x18\t \x01(\t\x12,\n\x03tag\x18\n \x03(\x0b\x32\x1f.CMsgClientUCMAddScreenshot.Tag\x12\x16\n\x0etagged_steamid\x18\x0b \x03(\x06\x12\x13\n\x0bspoiler_tag\x18\x0c \x01(\x08\x12\x1e\n\x16tagged_publishedfileid\x18\r \x03(\x04\x1a*\n\x03Tag\x12\x10\n\x08tag_name\x18\x01 \x01(\t\x12\x11\n\ttag_value\x18\x02 \x01(\t\"d\n\"CMsgClientUCMAddScreenshotResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12*\n\x0cscreenshotid\x18\x02 \x01(\x06:\x14\x31\x38\x34\x34\x36\x37\x34\x34\x30\x37\x33\x37\x30\x39\x35\x35\x31\x36\x31\x35\"K\n\x1d\x43MsgClientUCMDeleteScreenshot\x12*\n\x0cscreenshotid\x18\x01 \x01(\x06:\x14\x31\x38\x34\x34\x36\x37\x34\x34\x30\x37\x33\x37\x30\x39\x35\x35\x31\x36\x31\x35\";\n%CMsgClientUCMDeleteScreenshotResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\"\xd1\x02\n\x18\x43MsgClientUCMPublishFile\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x11\n\tfile_name\x18\x02 \x01(\t\x12\x19\n\x11preview_file_name\x18\x03 \x01(\t\x12\x17\n\x0f\x63onsumer_app_id\x18\x04 \x01(\r\x12\r\n\x05title\x18\x05 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x06 \x01(\t\x12\x0c\n\x04tags\x18\x08 \x03(\t\x12\x15\n\rworkshop_file\x18\t \x01(\x08\x12\x12\n\nvisibility\x18\n \x01(\x05\x12\x11\n\tfile_type\x18\x0b \x01(\r\x12\x0b\n\x03url\x18\x0c \x01(\t\x12\x16\n\x0evideo_provider\x18\r \x01(\r\x12\x1a\n\x12video_account_name\x18\x0e \x01(\t\x12\x18\n\x10video_identifier\x18\x0f \x01(\t\x12\x13\n\x0bin_progress\x18\x10 \x01(\x08\"\xa1\x01\n CMsgClientUCMPublishFileResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12/\n\x11published_file_id\x18\x02 \x01(\x06:\x14\x31\x38\x34\x34\x36\x37\x34\x34\x30\x37\x33\x37\x30\x39\x35\x35\x31\x36\x31\x35\x12\x38\n)needs_workshop_legal_agreement_acceptance\x18\x03 \x01(\x08:\x05\x66\x61lse\"\xb7\x07\n CMsgClientUCMUpdatePublishedFile\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x19\n\x11published_file_id\x18\x02 \x01(\x06\x12\x11\n\tfile_name\x18\x03 \x01(\t\x12\x19\n\x11preview_file_name\x18\x04 \x01(\t\x12\r\n\x05title\x18\x05 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x06 \x01(\t\x12\x0c\n\x04tags\x18\x07 \x03(\t\x12\x12\n\nvisibility\x18\x08 \x01(\x05\x12\x13\n\x0bupdate_file\x18\t \x01(\x08\x12\x1b\n\x13update_preview_file\x18\n \x01(\x08\x12\x14\n\x0cupdate_title\x18\x0b \x01(\x08\x12\x1a\n\x12update_description\x18\x0c \x01(\x08\x12\x13\n\x0bupdate_tags\x18\r \x01(\x08\x12\x19\n\x11update_visibility\x18\x0e \x01(\x08\x12\x1a\n\x12\x63hange_description\x18\x0f \x01(\t\x12\x12\n\nupdate_url\x18\x10 \x01(\x08\x12\x0b\n\x03url\x18\x11 \x01(\t\x12\x1f\n\x17update_content_manifest\x18\x12 \x01(\x08\x12\x18\n\x10\x63ontent_manifest\x18\x13 \x01(\x06\x12\x10\n\x08metadata\x18\x14 \x01(\t\x12\x17\n\x0fupdate_metadata\x18\x15 \x01(\x08\x12\x13\n\x08language\x18\x16 \x01(\x05:\x01\x30\x12\x16\n\x0eremoved_kvtags\x18\x17 \x03(\t\x12=\n\x06kvtags\x18\x18 \x03(\x0b\x32-.CMsgClientUCMUpdatePublishedFile.KeyValueTag\x12\x45\n\x08previews\x18\x19 \x03(\x0b\x32\x33.CMsgClientUCMUpdatePublishedFile.AdditionalPreview\x12\x1a\n\x12previews_to_remove\x18\x1a \x03(\x05\x12\x19\n\x11\x63lear_in_progress\x18\x1b \x01(\x08\x12\x19\n\x11remove_all_kvtags\x18\x1c \x01(\x08\x1a)\n\x0bKeyValueTag\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\x1a\x8c\x01\n\x11\x41\x64\x64itionalPreview\x12\x1a\n\x12original_file_name\x18\x01 \x01(\t\x12\x1a\n\x12internal_file_name\x18\x02 \x01(\t\x12\x0f\n\x07videoid\x18\x03 \x01(\t\x12\x14\n\x0cpreview_type\x18\x04 \x01(\r\x12\x18\n\x0cupdate_index\x18\x05 \x01(\x05:\x02-1\"x\n(CMsgClientUCMUpdatePublishedFileResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x38\n)needs_workshop_legal_agreement_acceptance\x18\x02 \x01(\x08:\x05\x66\x61lse\"M\n CMsgClientUCMDeletePublishedFile\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\x12\x0e\n\x06\x61pp_id\x18\x02 \x01(\r\">\n(CMsgClientUCMDeletePublishedFileResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\"c\n(CMsgClientUCMEnumerateUserPublishedFiles\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x13\n\x0bstart_index\x18\x02 \x01(\r\x12\x12\n\nsort_order\x18\x03 \x01(\r\"\xe7\x01\n0CMsgClientUCMEnumerateUserPublishedFilesResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12Z\n\x0fpublished_files\x18\x02 \x03(\x0b\x32\x41.CMsgClientUCMEnumerateUserPublishedFilesResponse.PublishedFileId\x12\x15\n\rtotal_results\x18\x03 \x01(\r\x1a,\n\x0fPublishedFileId\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\"\x98\x01\n)CMsgClientUCMEnumerateUserSubscribedFiles\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x13\n\x0bstart_index\x18\x02 \x01(\r\x12\x14\n\tlist_type\x18\x03 \x01(\r:\x01\x31\x12\x1d\n\x12matching_file_type\x18\x04 \x01(\r:\x01\x30\x12\x11\n\x05\x63ount\x18\x05 \x01(\r:\x02\x35\x30\"\x89\x02\n1CMsgClientUCMEnumerateUserSubscribedFilesResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\\\n\x10subscribed_files\x18\x02 \x03(\x0b\x32\x42.CMsgClientUCMEnumerateUserSubscribedFilesResponse.PublishedFileId\x12\x15\n\rtotal_results\x18\x03 \x01(\r\x1aK\n\x0fPublishedFileId\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\x12\x1d\n\x12rtime32_subscribed\x18\x02 \x01(\x07:\x01\x30\"\x8c\x01\n4CMsgClientUCMEnumerateUserSubscribedFilesWithUpdates\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x13\n\x0bstart_index\x18\x02 \x01(\r\x12\x12\n\nstart_time\x18\x03 \x01(\x07\x12\x1b\n\x10\x64\x65sired_revision\x18\x04 \x01(\r:\x01\x30\"\x91\x03\n<CMsgClientUCMEnumerateUserSubscribedFilesWithUpdatesResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12g\n\x10subscribed_files\x18\x02 \x03(\x0b\x32M.CMsgClientUCMEnumerateUserSubscribedFilesWithUpdatesResponse.PublishedFileId\x12\x15\n\rtotal_results\x18\x03 \x01(\r\x1a\xbc\x01\n\x0fPublishedFileId\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\x12\x1d\n\x12rtime32_subscribed\x18\x02 \x01(\x07:\x01\x30\x12\r\n\x05\x61ppid\x18\x03 \x01(\r\x12\x15\n\rfile_hcontent\x18\x04 \x01(\x06\x12\x11\n\tfile_size\x18\x05 \x01(\r\x12\x1c\n\x14rtime32_last_updated\x18\x06 \x01(\x07\x12\x18\n\x10is_depot_content\x18\x07 \x01(\x08\"\xb5\x01\n!CMsgClientUCMPublishedFileUpdated\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\x12\x0e\n\x06\x61pp_id\x18\x02 \x01(\r\x12\x14\n\x0ctime_updated\x18\x03 \x01(\r\x12\x10\n\x08hcontent\x18\x04 \x01(\x06\x12\x11\n\tfile_size\x18\x05 \x01(\x07\x12\x18\n\x10is_depot_content\x18\x06 \x01(\x08\x12\x10\n\x08revision\x18\x07 \x01(\r\"k\n$CMsgClientWorkshopItemChangesRequest\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x19\n\x11last_time_updated\x18\x02 \x01(\r\x12\x18\n\x10num_items_needed\x18\x03 \x01(\r\"\xfb\x01\n%CMsgClientWorkshopItemChangesResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x13\n\x0bupdate_time\x18\x02 \x01(\r\x12O\n\x0eworkshop_items\x18\x05 \x03(\x0b\x32\x37.CMsgClientWorkshopItemChangesResponse.WorkshopItemInfo\x1aX\n\x10WorkshopItemInfo\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\x12\x14\n\x0ctime_updated\x18\x02 \x01(\r\x12\x13\n\x0bmanifest_id\x18\x03 \x01(\x06\"\xd8\x01\n!CMsgClientWorkshopItemInfoRequest\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x19\n\x11last_time_updated\x18\x02 \x01(\r\x12G\n\x0eworkshop_items\x18\x03 \x03(\x0b\x32/.CMsgClientWorkshopItemInfoRequest.WorkshopItem\x1a?\n\x0cWorkshopItem\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\x12\x14\n\x0ctime_updated\x18\x02 \x01(\r\"\x9f\x02\n\"CMsgClientWorkshopItemInfoResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x13\n\x0bupdate_time\x18\x02 \x01(\r\x12L\n\x0eworkshop_items\x18\x03 \x03(\x0b\x32\x34.CMsgClientWorkshopItemInfoResponse.WorkshopItemInfo\x12\x15\n\rprivate_items\x18\x04 \x03(\x06\x1ak\n\x10WorkshopItemInfo\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\x12\x14\n\x0ctime_updated\x18\x02 \x01(\r\x12\x13\n\x0bmanifest_id\x18\x03 \x01(\x06\x12\x11\n\tis_legacy\x18\x04 \x01(\x08\"\x94\x01\n%CMsgClientUCMGetPublishedFilesForUser\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x18\n\x10\x63reator_steam_id\x18\x02 \x01(\x06\x12\x15\n\rrequired_tags\x18\x03 \x03(\t\x12\x15\n\rexcluded_tags\x18\x04 \x03(\t\x12\x13\n\x0bstart_index\x18\x05 \x01(\r\"\xe1\x01\n-CMsgClientUCMGetPublishedFilesForUserResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12W\n\x0fpublished_files\x18\x02 \x03(\x0b\x32>.CMsgClientUCMGetPublishedFilesForUserResponse.PublishedFileId\x12\x15\n\rtotal_results\x18\x03 \x01(\r\x1a,\n\x0fPublishedFileId\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\"d\n\'CMsgClientUCMSetUserPublishedFileAction\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\x12\x0e\n\x06\x61pp_id\x18\x02 \x01(\r\x12\x0e\n\x06\x61\x63tion\x18\x03 \x01(\x05\"E\n/CMsgClientUCMSetUserPublishedFileActionResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\"g\n0CMsgClientUCMEnumeratePublishedFilesByUserAction\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x13\n\x0bstart_index\x18\x02 \x01(\r\x12\x0e\n\x06\x61\x63tion\x18\x03 \x01(\x05\"\x94\x02\n8CMsgClientUCMEnumeratePublishedFilesByUserActionResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x62\n\x0fpublished_files\x18\x02 \x03(\x0b\x32I.CMsgClientUCMEnumeratePublishedFilesByUserActionResponse.PublishedFileId\x12\x15\n\rtotal_results\x18\x03 \x01(\r\x1aI\n\x0fPublishedFileId\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\x12\x1b\n\x10rtime_time_stamp\x18\x02 \x01(\x07:\x01\x30\"\x1e\n\x1c\x43MsgClientScreenshotsChanged\"w\n\x1c\x43MsgClientUpdateUserGameInfo\x12\x14\n\x0csteamid_idgs\x18\x01 \x01(\x06\x12\x0e\n\x06gameid\x18\x02 \x01(\x06\x12\x0f\n\x07game_ip\x18\x03 \x01(\r\x12\x11\n\tgame_port\x18\x04 \x01(\r\x12\r\n\x05token\x18\x05 \x01(\x0c\"S\n\x1c\x43MsgClientRichPresenceUpload\x12\x18\n\x10rich_presence_kv\x18\x01 \x01(\x0c\x12\x19\n\x11steamid_broadcast\x18\x02 \x03(\x06\"8\n\x1d\x43MsgClientRichPresenceRequest\x12\x17\n\x0fsteamid_request\x18\x01 \x03(\x06\"\x9d\x01\n\x1a\x43MsgClientRichPresenceInfo\x12?\n\rrich_presence\x18\x01 \x03(\x0b\x32(.CMsgClientRichPresenceInfo.RichPresence\x1a>\n\x0cRichPresence\x12\x14\n\x0csteamid_user\x18\x01 \x01(\x06\x12\x18\n\x10rich_presence_kv\x18\x02 \x01(\x0c\".\n\x1c\x43MsgClientCheckFileSignature\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\"\xf7\x01\n$CMsgClientCheckFileSignatureResponse\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x0b\n\x03pid\x18\x02 \x01(\r\x12\x0f\n\x07\x65result\x18\x03 \x01(\r\x12\x10\n\x08\x66ilename\x18\x04 \x01(\t\x12\x18\n\x10\x65signatureresult\x18\x05 \x01(\r\x12\x10\n\x08sha_file\x18\x06 \x01(\x0c\x12\x17\n\x0fsignatureheader\x18\x07 \x01(\x0c\x12\x10\n\x08\x66ilesize\x18\x08 \x01(\r\x12\x14\n\x0cgetlasterror\x18\t \x01(\r\x12\"\n\x1a\x65valvesignaturecheckdetail\x18\n \x01(\r\"P\n\x19\x43MsgClientReadMachineAuth\x12\x10\n\x08\x66ilename\x18\x01 \x01(\t\x12\x0e\n\x06offset\x18\x02 \x01(\r\x12\x11\n\tcubtoread\x18\x03 \x01(\r\"\xce\x01\n!CMsgClientReadMachineAuthResponse\x12\x10\n\x08\x66ilename\x18\x01 \x01(\t\x12\x0f\n\x07\x65result\x18\x02 \x01(\r\x12\x10\n\x08\x66ilesize\x18\x03 \x01(\r\x12\x10\n\x08sha_file\x18\x04 \x01(\x0c\x12\x14\n\x0cgetlasterror\x18\x05 \x01(\r\x12\x0e\n\x06offset\x18\x06 \x01(\r\x12\x0f\n\x07\x63ubread\x18\x07 \x01(\r\x12\x12\n\nbytes_read\x18\x08 \x01(\x0c\x12\x17\n\x0f\x66ilename_sentry\x18\t \x01(\t\"\xbd\x01\n\x1b\x43MsgClientUpdateMachineAuth\x12\x10\n\x08\x66ilename\x18\x01 \x01(\t\x12\x0e\n\x06offset\x18\x02 \x01(\r\x12\x12\n\ncubtowrite\x18\x03 \x01(\r\x12\r\n\x05\x62ytes\x18\x04 \x01(\x0c\x12\x10\n\x08otp_type\x18\x05 \x01(\r\x12\x16\n\x0eotp_identifier\x18\x06 \x01(\t\x12\x18\n\x10otp_sharedsecret\x18\x07 \x01(\x0c\x12\x15\n\rotp_timedrift\x18\x08 \x01(\r\"\xe1\x01\n#CMsgClientUpdateMachineAuthResponse\x12\x10\n\x08\x66ilename\x18\x01 \x01(\t\x12\x0f\n\x07\x65result\x18\x02 \x01(\r\x12\x10\n\x08\x66ilesize\x18\x03 \x01(\r\x12\x10\n\x08sha_file\x18\x04 \x01(\x0c\x12\x14\n\x0cgetlasterror\x18\x05 \x01(\r\x12\x0e\n\x06offset\x18\x06 \x01(\r\x12\x10\n\x08\x63ubwrote\x18\x07 \x01(\r\x12\x10\n\x08otp_type\x18\x08 \x01(\x05\x12\x11\n\totp_value\x18\t \x01(\r\x12\x16\n\x0eotp_identifier\x18\n \x01(\t\"\xa1\x02\n\x1c\x43MsgClientRequestMachineAuth\x12\x10\n\x08\x66ilename\x18\x01 \x01(\t\x12\x1a\n\x12\x65result_sentryfile\x18\x02 \x01(\r\x12\x10\n\x08\x66ilesize\x18\x03 \x01(\r\x12\x16\n\x0esha_sentryfile\x18\x04 \x01(\x0c\x12\x1b\n\x13lock_account_action\x18\x06 \x01(\x05\x12\x10\n\x08otp_type\x18\x07 \x01(\r\x12\x16\n\x0eotp_identifier\x18\x08 \x01(\t\x12\x18\n\x10otp_sharedsecret\x18\t \x01(\x0c\x12\x11\n\totp_value\x18\n \x01(\r\x12\x14\n\x0cmachine_name\x18\x0b \x01(\t\x12\x1f\n\x17machine_name_userchosen\x18\x0c \x01(\t\"7\n$CMsgClientRequestMachineAuthResponse\x12\x0f\n\x07\x65result\x18\x01 \x01(\r\"$\n\x15\x43MsgClientRegisterKey\x12\x0b\n\x03key\x18\x01 \x01(\t\"p\n\x1a\x43MsgClientPurchaseResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x1f\n\x17purchase_result_details\x18\x02 \x01(\x05\x12\x1d\n\x15purchase_receipt_info\x18\x03 \x01(\x0c\"\xc5\x01\n\x1c\x43MsgClientActivateOEMLicense\x12\x19\n\x11\x62ios_manufacturer\x18\x01 \x01(\t\x12\x19\n\x11\x62ios_serialnumber\x18\x02 \x01(\t\x12\x14\n\x0clicense_file\x18\x03 \x01(\x0c\x12\x1e\n\x16mainboard_manufacturer\x18\x04 \x01(\t\x12\x19\n\x11mainboard_product\x18\x05 \x01(\t\x12\x1e\n\x16mainboard_serialnumber\x18\x06 \x01(\t\"9\n\x1c\x43MsgClientRegisterOEMMachine\x12\x19\n\x11oem_register_file\x18\x01 \x01(\x0c\"7\n$CMsgClientRegisterOEMMachineResponse\x12\x0f\n\x07\x65result\x18\x01 \x01(\r\"K\n\x1f\x43MsgClientPurchaseWithMachineID\x12\x12\n\npackage_id\x18\x01 \x01(\r\x12\x14\n\x0cmachine_info\x18\x02 \x01(\x0c\"g\n CMsgTrading_InitiateTradeRequest\x12\x18\n\x10trade_request_id\x18\x01 \x01(\r\x12\x15\n\rother_steamid\x18\x02 \x01(\x04\x12\x12\n\nother_name\x18\x03 \x01(\t\"\xd2\x02\n!CMsgTrading_InitiateTradeResponse\x12\x10\n\x08response\x18\x01 \x01(\r\x12\x18\n\x10trade_request_id\x18\x02 \x01(\r\x12\x15\n\rother_steamid\x18\x03 \x01(\x04\x12 \n\x18steamguard_required_days\x18\x04 \x01(\r\x12 \n\x18new_device_cooldown_days\x18\x05 \x01(\r\x12-\n%default_password_reset_probation_days\x18\x06 \x01(\r\x12%\n\x1dpassword_reset_probation_days\x18\x07 \x01(\r\x12+\n#default_email_change_probation_days\x18\x08 \x01(\r\x12#\n\x1b\x65mail_change_probation_days\x18\t \x01(\r\"7\n\x1e\x43MsgTrading_CancelTradeRequest\x12\x15\n\rother_steamid\x18\x01 \x01(\x04\"1\n\x18\x43MsgTrading_StartSession\x12\x15\n\rother_steamid\x18\x01 \x01(\x04\"P\n\x19\x43MsgClientGetCDNAuthToken\x12\x10\n\x08\x64\x65pot_id\x18\x01 \x01(\r\x12\x11\n\thost_name\x18\x02 \x01(\t\x12\x0e\n\x06\x61pp_id\x18\x03 \x01(\r\"C\n\x1f\x43MsgClientGetDepotDecryptionKey\x12\x10\n\x08\x64\x65pot_id\x18\x01 \x01(\r\x12\x0e\n\x06\x61pp_id\x18\x02 \x01(\r\"m\n\'CMsgClientGetDepotDecryptionKeyResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x10\n\x08\x64\x65pot_id\x18\x02 \x01(\r\x12\x1c\n\x14\x64\x65pot_encryption_key\x18\x03 \x01(\x0c\"F\n\x1e\x43MsgClientCheckAppBetaPassword\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x14\n\x0c\x62\x65tapassword\x18\x02 \x01(\t\"\xc1\x01\n&CMsgClientCheckAppBetaPasswordResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12K\n\rbetapasswords\x18\x04 \x03(\x0b\x32\x34.CMsgClientCheckAppBetaPasswordResponse.BetaPassword\x1a\x36\n\x0c\x42\x65taPassword\x12\x10\n\x08\x62\x65taname\x18\x01 \x01(\t\x12\x14\n\x0c\x62\x65tapassword\x18\x02 \x01(\t\"\xbe\x04\n\x1c\x43MsgClientUpdateAppJobReport\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x11\n\tdepot_ids\x18\x02 \x03(\r\x12\x11\n\tapp_state\x18\x03 \x01(\r\x12\x15\n\rjob_app_error\x18\x04 \x01(\r\x12\x15\n\rerror_details\x18\x05 \x01(\t\x12\x14\n\x0cjob_duration\x18\x06 \x01(\r\x12\x1f\n\x17\x66iles_validation_failed\x18\x07 \x01(\r\x12\x1c\n\x14job_bytes_downloaded\x18\x08 \x01(\x04\x12\x18\n\x10job_bytes_staged\x18\t \x01(\x04\x12\x16\n\x0e\x62ytes_comitted\x18\n \x01(\x04\x12\x17\n\x0fstart_app_state\x18\x0b \x01(\r\x12\x18\n\x10stats_machine_id\x18\x0c \x01(\x06\x12\x13\n\x0b\x62ranch_name\x18\r \x01(\t\x12\x1e\n\x16total_bytes_downloaded\x18\x0e \x01(\x04\x12\x1a\n\x12total_bytes_staged\x18\x0f \x01(\x04\x12\x1c\n\x14total_bytes_restored\x18\x10 \x01(\x04\x12\x13\n\x0bis_borrowed\x18\x11 \x01(\x08\x12\x17\n\x0fis_free_weekend\x18\x12 \x01(\x08\x12\x1a\n\x12total_bytes_legacy\x18\x13 \x01(\x04\x12\x1b\n\x13total_bytes_patched\x18\x14 \x01(\x04\x12\x19\n\x11total_bytes_saved\x18\x15 \x01(\x04\x12\x0f\n\x07\x63\x65ll_id\x18\x16 \x01(\r\"\xcb\x01\n\x1e\x43MsgClientDPContentStatsReport\x12\x18\n\x10stats_machine_id\x18\x01 \x01(\x06\x12\x14\n\x0c\x63ountry_code\x18\x02 \x01(\t\x12\x0f\n\x07os_type\x18\x03 \x01(\x05\x12\x10\n\x08language\x18\x04 \x01(\x05\x12\x1b\n\x13num_install_folders\x18\x05 \x01(\r\x12\x1b\n\x13num_installed_games\x18\x06 \x01(\r\x12\x1c\n\x14size_installed_games\x18\x07 \x01(\x04\"_\n!CMsgClientGetCDNAuthTokenResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\r:\x01\x32\x12\r\n\x05token\x18\x02 \x01(\t\x12\x17\n\x0f\x65xpiration_time\x18\x03 \x01(\r\"\x9f\x02\n\x1a\x43MsgDownloadRateStatistics\x12\x0f\n\x07\x63\x65ll_id\x18\x01 \x01(\r\x12\x34\n\x05stats\x18\x02 \x03(\x0b\x32%.CMsgDownloadRateStatistics.StatsInfo\x12\x17\n\x0fthrottling_kbps\x18\x03 \x01(\r\x1a\xa0\x01\n\tStatsInfo\x12\x13\n\x0bsource_type\x18\x01 \x01(\r\x12\x11\n\tsource_id\x18\x02 \x01(\r\x12\x0f\n\x07seconds\x18\x03 \x01(\r\x12\r\n\x05\x62ytes\x18\x04 \x01(\x04\x12\x11\n\thost_name\x18\x05 \x01(\t\x12\x14\n\x0cmicroseconds\x18\x06 \x01(\x04\x12\x11\n\tused_ipv6\x18\x07 \x01(\x08\x12\x0f\n\x07proxied\x18\x08 \x01(\x08\"H\n\x1c\x43MsgClientRequestAccountData\x12\x18\n\x10\x61\x63\x63ount_or_email\x18\x01 \x01(\t\x12\x0e\n\x06\x61\x63tion\x18\x02 \x01(\r\"\xd7\x01\n$CMsgClientRequestAccountDataResponse\x12\x0e\n\x06\x61\x63tion\x18\x01 \x01(\r\x12\x0f\n\x07\x65result\x18\x02 \x01(\r\x12\x14\n\x0c\x61\x63\x63ount_name\x18\x03 \x01(\t\x12\x12\n\nct_matches\x18\x04 \x01(\r\x12 \n\x18\x61\x63\x63ount_name_suggestion1\x18\x05 \x01(\t\x12 \n\x18\x61\x63\x63ount_name_suggestion2\x18\x06 \x01(\t\x12 \n\x18\x61\x63\x63ount_name_suggestion3\x18\x07 \x01(\t\"\x99\x01\n\x1b\x43MsgClientUGSGetGlobalStats\x12\x0e\n\x06gameid\x18\x01 \x01(\x04\x12\x1e\n\x16history_days_requested\x18\x02 \x01(\r\x12\x1b\n\x13time_last_requested\x18\x03 \x01(\x07\x12\x18\n\x10\x66irst_day_cached\x18\x04 \x01(\r\x12\x13\n\x0b\x64\x61ys_cached\x18\x05 \x01(\r\"\x95\x02\n#CMsgClientUGSGetGlobalStatsResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x11\n\ttimestamp\x18\x02 \x01(\x07\x12\x13\n\x0b\x64\x61y_current\x18\x03 \x01(\x05\x12\x36\n\x04\x64\x61ys\x18\x04 \x03(\x0b\x32(.CMsgClientUGSGetGlobalStatsResponse.Day\x1az\n\x03\x44\x61y\x12\x0e\n\x06\x64\x61y_id\x18\x01 \x01(\r\x12<\n\x05stats\x18\x02 \x03(\x0b\x32-.CMsgClientUGSGetGlobalStatsResponse.Day.Stat\x1a%\n\x04Stat\x12\x0f\n\x07stat_id\x18\x01 \x01(\x05\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x03\"\x88\x04\n\x12\x43MsgGameServerData\x12\x13\n\x0bsteam_id_gs\x18\x01 \x01(\x06\x12\x15\n\rdeprecated_ip\x18\x02 \x01(\r\x12\x12\n\nquery_port\x18\x03 \x01(\r\x12\x11\n\tgame_port\x18\x04 \x01(\r\x12\x15\n\rsourcetv_port\x18\x05 \x01(\r\x12\x0c\n\x04name\x18\x16 \x01(\t\x12\'\n\x0fgame_ip_address\x18\x17 \x01(\x0b\x32\x0e.CMsgIPAddress\x12\x0e\n\x06\x61pp_id\x18\x06 \x01(\r\x12\x0f\n\x07gamedir\x18\x07 \x01(\t\x12\x0f\n\x07version\x18\x08 \x01(\t\x12\x0f\n\x07product\x18\t \x01(\t\x12\x0e\n\x06region\x18\n \x01(\t\x12+\n\x07players\x18\x0b \x03(\x0b\x32\x1a.CMsgGameServerData.Player\x12\x13\n\x0bmax_players\x18\x0c \x01(\r\x12\x11\n\tbot_count\x18\r \x01(\r\x12\x10\n\x08password\x18\x0e \x01(\x08\x12\x0e\n\x06secure\x18\x0f \x01(\x08\x12\x11\n\tdedicated\x18\x10 \x01(\x08\x12\n\n\x02os\x18\x11 \x01(\t\x12\x11\n\tgame_data\x18\x12 \x01(\t\x12\x19\n\x11game_data_version\x18\x13 \x01(\r\x12\x11\n\tgame_type\x18\x14 \x01(\t\x12\x0b\n\x03map\x18\x15 \x01(\t\x1a\x1a\n\x06Player\x12\x10\n\x08steam_id\x18\x01 \x01(\x06\"o\n\x14\x43MsgGameServerRemove\x12\x10\n\x08steam_id\x18\x01 \x01(\x06\x12\x15\n\rdeprecated_ip\x18\x02 \x01(\r\x12\x12\n\nquery_port\x18\x03 \x01(\r\x12\x1a\n\x02ip\x18\x04 \x01(\x0b\x32\x0e.CMsgIPAddress\"\x82\x01\n\x18\x43MsgClientGMSServerQuery\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x17\n\x0fgeo_location_ip\x18\x02 \x01(\r\x12\x13\n\x0bregion_code\x18\x03 \x01(\r\x12\x13\n\x0b\x66ilter_text\x18\x04 \x01(\t\x12\x13\n\x0bmax_servers\x18\x05 \x01(\r\"\xe2\x01\n CMsgGMSClientServerQueryResponse\x12\x39\n\x07servers\x18\x01 \x03(\x0b\x32(.CMsgGMSClientServerQueryResponse.Server\x12\r\n\x05\x65rror\x18\x02 \x01(\t\x1at\n\x06Server\x12\x1c\n\x14\x64\x65precated_server_ip\x18\x01 \x01(\r\x12\x13\n\x0bserver_port\x18\x02 \x01(\r\x12\x14\n\x0c\x61uth_players\x18\x03 \x01(\r\x12!\n\tserver_ip\x18\x04 \x01(\x0b\x32\x0e.CMsgIPAddress\"O\n\x17\x43MsgGameServerOutOfDate\x12\x13\n\x0bsteam_id_gs\x18\x01 \x01(\x06\x12\x0e\n\x06reject\x18\x02 \x01(\x08\x12\x0f\n\x07message\x18\x03 \x01(\t\"2\n\x19\x43MsgClientRedeemGuestPass\x12\x15\n\rguest_pass_id\x18\x01 \x01(\x06\"c\n!CMsgClientRedeemGuestPassResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\r:\x01\x32\x12\x12\n\npackage_id\x18\x02 \x01(\r\x12\x16\n\x0emust_own_appid\x18\x03 \x01(\r\"8\n\x1f\x43MsgClientGetClanActivityCounts\x12\x15\n\rsteamid_clans\x18\x01 \x03(\x04\"=\n\'CMsgClientGetClanActivityCountsResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\r:\x01\x32\"y\n\x19\x43MsgClientOGSReportString\x12\x13\n\x0b\x61\x63\x63umulated\x18\x01 \x01(\x08\x12\x11\n\tsessionid\x18\x02 \x01(\x04\x12\x10\n\x08severity\x18\x03 \x01(\x05\x12\x11\n\tformatter\x18\x04 \x01(\t\x12\x0f\n\x07varargs\x18\x05 \x01(\x0c\"P\n\x16\x43MsgClientOGSReportBug\x12\x11\n\tsessionid\x18\x01 \x01(\x04\x12\x0f\n\x07\x62ugtext\x18\x02 \x01(\t\x12\x12\n\nscreenshot\x18\x03 \x01(\x0c\"0\n\x17\x43MsgGSAssociateWithClan\x12\x15\n\rsteam_id_clan\x18\x01 \x01(\x06\"L\n\x1f\x43MsgGSAssociateWithClanResponse\x12\x15\n\rsteam_id_clan\x18\x01 \x01(\x06\x12\x12\n\x07\x65result\x18\x02 \x01(\r:\x01\x32\"A\n#CMsgGSComputeNewPlayerCompatibility\x12\x1a\n\x12steam_id_candidate\x18\x01 \x01(\x06\"\xcf\x01\n+CMsgGSComputeNewPlayerCompatibilityResponse\x12\x1a\n\x12steam_id_candidate\x18\x01 \x01(\x06\x12\x12\n\x07\x65result\x18\x02 \x01(\r:\x01\x32\x12\x16\n\x0eis_clan_member\x18\x03 \x01(\x08\x12\x18\n\x10\x63t_dont_like_you\x18\x04 \x01(\x05\x12\x18\n\x10\x63t_you_dont_like\x18\x05 \x01(\x05\x12$\n\x1c\x63t_clanmembers_dont_like_you\x18\x06 \x01(\x05\"\x14\n\x12\x43MsgClientSentLogs\"l\n\x0c\x43MsgGCClient\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x0f\n\x07msgtype\x18\x02 \x01(\r\x12\x0f\n\x07payload\x18\x03 \x01(\x0c\x12\x0f\n\x07steamid\x18\x04 \x01(\x06\x12\x0e\n\x06gcname\x18\x05 \x01(\t\x12\n\n\x02ip\x18\x06 \x01(\r\".\n\x1c\x43MsgClientRequestFreeLicense\x12\x0e\n\x06\x61ppids\x18\x02 \x03(\r\"n\n$CMsgClientRequestFreeLicenseResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\r:\x01\x32\x12\x1a\n\x12granted_packageids\x18\x02 \x03(\r\x12\x16\n\x0egranted_appids\x18\x03 \x03(\r\"\xd3\x01\n#CMsgDRMDownloadRequestWithCrashData\x12\x16\n\x0e\x64ownload_flags\x18\x01 \x01(\r\x12\x1c\n\x14\x64ownload_types_known\x18\x02 \x01(\r\x12\x10\n\x08guid_drm\x18\x03 \x01(\x0c\x12\x12\n\nguid_split\x18\x04 \x01(\x0c\x12\x12\n\nguid_merge\x18\x05 \x01(\x0c\x12\x13\n\x0bmodule_name\x18\x06 \x01(\t\x12\x13\n\x0bmodule_path\x18\x07 \x01(\t\x12\x12\n\ncrash_data\x18\x08 \x01(\x0c\"\xdb\x01\n\x17\x43MsgDRMDownloadResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\r:\x01\x32\x12\x0e\n\x06\x61pp_id\x18\x02 \x01(\r\x12\x1a\n\x12\x62lob_download_type\x18\x03 \x01(\r\x12\x12\n\nmerge_guid\x18\x04 \x01(\x0c\x12\x1c\n\x14\x64ownload_file_dfs_ip\x18\x05 \x01(\r\x12\x1e\n\x16\x64ownload_file_dfs_port\x18\x06 \x01(\r\x12\x19\n\x11\x64ownload_file_url\x18\x07 \x01(\t\x12\x13\n\x0bmodule_path\x18\x08 \x01(\t\"\xd7\x01\n\x12\x43MsgDRMFinalResult\x12\x12\n\x07\x65Result\x18\x01 \x01(\r:\x01\x32\x12\x0e\n\x06\x61pp_id\x18\x02 \x01(\r\x12\x1a\n\x12\x62lob_download_type\x18\x03 \x01(\r\x12\x14\n\x0c\x65rror_detail\x18\x04 \x01(\r\x12\x12\n\nmerge_guid\x18\x05 \x01(\x0c\x12\x1c\n\x14\x64ownload_file_dfs_ip\x18\x06 \x01(\r\x12\x1e\n\x16\x64ownload_file_dfs_port\x18\x07 \x01(\r\x12\x19\n\x11\x64ownload_file_url\x18\x08 \x01(\t\"3\n\x1e\x43MsgClientDPCheckSpecialSurvey\x12\x11\n\tsurvey_id\x18\x01 \x01(\r\"\x96\x01\n&CMsgClientDPCheckSpecialSurveyResponse\x12\x12\n\x07\x65Result\x18\x01 \x01(\r:\x01\x32\x12\r\n\x05state\x18\x02 \x01(\r\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x12\n\ncustom_url\x18\x04 \x01(\t\x12\x18\n\x10include_software\x18\x05 \x01(\x08\x12\r\n\x05token\x18\x06 \x01(\x0c\"H\n%CMsgClientDPSendSpecialSurveyResponse\x12\x11\n\tsurvey_id\x18\x01 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"O\n*CMsgClientDPSendSpecialSurveyResponseReply\x12\x12\n\x07\x65Result\x18\x01 \x01(\r:\x01\x32\x12\r\n\x05token\x18\x02 \x01(\x0c\"W\n\'CMsgClientRequestForgottenPasswordEmail\x12\x14\n\x0c\x61\x63\x63ount_name\x18\x01 \x01(\t\x12\x16\n\x0epassword_tried\x18\x02 \x01(\t\"_\n/CMsgClientRequestForgottenPasswordEmailResponse\x12\x0f\n\x07\x65Result\x18\x01 \x01(\r\x12\x1b\n\x13use_secret_question\x18\x02 \x01(\x08\"\xf6\x01\n\x1b\x43MsgClientItemAnnouncements\x12\x17\n\x0f\x63ount_new_items\x18\x01 \x01(\r\x12=\n\x0cunseen_items\x18\x02 \x03(\x0b\x32\'.CMsgClientItemAnnouncements.UnseenItem\x1a\x7f\n\nUnseenItem\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x12\n\ncontext_id\x18\x02 \x01(\x04\x12\x10\n\x08\x61sset_id\x18\x03 \x01(\x04\x12\x0e\n\x06\x61mount\x18\x04 \x01(\x04\x12\x16\n\x0ertime32_gained\x18\x05 \x01(\x07\x12\x14\n\x0csource_appid\x18\x06 \x01(\r\"$\n\"CMsgClientRequestItemAnnouncements\"\x9e\x01\n\x1b\x43MsgClientUserNotifications\x12@\n\rnotifications\x18\x01 \x03(\x0b\x32).CMsgClientUserNotifications.Notification\x1a=\n\x0cNotification\x12\x1e\n\x16user_notification_type\x18\x01 \x01(\r\x12\r\n\x05\x63ount\x18\x02 \x01(\r\"\x88\x01\n\x1e\x43MsgClientCommentNotifications\x12\x1a\n\x12\x63ount_new_comments\x18\x01 \x01(\r\x12 \n\x18\x63ount_new_comments_owner\x18\x02 \x01(\r\x12(\n count_new_comments_subscriptions\x18\x03 \x01(\r\"\'\n%CMsgClientRequestCommentNotifications\"g\n$CMsgClientOfflineMessageNotification\x12\x18\n\x10offline_messages\x18\x01 \x01(\r\x12%\n\x1d\x66riends_with_offline_messages\x18\x02 \x03(\r\"&\n$CMsgClientRequestOfflineMessageCount\"8\n%CMsgClientChatGetFriendMessageHistory\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\"\xf9\x01\n-CMsgClientChatGetFriendMessageHistoryResponse\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x0f\n\x07success\x18\x02 \x01(\r\x12N\n\x08messages\x18\x03 \x03(\x0b\x32<.CMsgClientChatGetFriendMessageHistoryResponse.FriendMessage\x1aV\n\rFriendMessage\x12\x11\n\taccountid\x18\x01 \x01(\r\x12\x11\n\ttimestamp\x18\x02 \x01(\r\x12\x0f\n\x07message\x18\x03 \x01(\t\x12\x0e\n\x06unread\x18\x04 \x01(\x08\"9\n7CMsgClientChatGetFriendMessageHistoryForOfflineMessages\"7\n!CMsgClientFSGetFriendsSteamLevels\x12\x12\n\naccountids\x18\x01 \x03(\r\"\x9b\x01\n)CMsgClientFSGetFriendsSteamLevelsResponse\x12\x42\n\x07\x66riends\x18\x01 \x03(\x0b\x32\x31.CMsgClientFSGetFriendsSteamLevelsResponse.Friend\x1a*\n\x06\x46riend\x12\x11\n\taccountid\x18\x01 \x01(\r\x12\r\n\x05level\x18\x02 \x01(\r\"\xeb\x01\n\x17\x43MsgClientEmailAddrInfo\x12\x15\n\remail_address\x18\x01 \x01(\t\x12\x1a\n\x12\x65mail_is_validated\x18\x02 \x01(\x08\x12 \n\x18\x65mail_validation_changed\x18\x03 \x01(\x08\x12\'\n\x1f\x63redential_change_requires_code\x18\x04 \x01(\x08\x12\x31\n)password_or_secretqa_change_requires_code\x18\x05 \x01(\x08\x12\x1f\n\x17remind_user_about_email\x18\x06 \x01(\x08\"\x8b\x01\n\x16\x43MsgCREItemVoteSummary\x12\x43\n\x12published_file_ids\x18\x01 \x03(\x0b\x32\'.CMsgCREItemVoteSummary.PublishedFileId\x1a,\n\x0fPublishedFileId\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\"\xfa\x01\n\x1e\x43MsgCREItemVoteSummaryResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12L\n\x13item_vote_summaries\x18\x02 \x03(\x0b\x32/.CMsgCREItemVoteSummaryResponse.ItemVoteSummary\x1av\n\x0fItemVoteSummary\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\x12\x11\n\tvotes_for\x18\x02 \x01(\x05\x12\x15\n\rvotes_against\x18\x03 \x01(\x05\x12\x0f\n\x07reports\x18\x04 \x01(\x05\x12\r\n\x05score\x18\x05 \x01(\x02\"P\n\"CMsgCREUpdateUserPublishedItemVote\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\x12\x0f\n\x07vote_up\x18\x02 \x01(\x08\"@\n*CMsgCREUpdateUserPublishedItemVoteResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\"\xab\x01\n&CMsgCREGetUserPublishedItemVoteDetails\x12S\n\x12published_file_ids\x18\x01 \x03(\x0b\x32\x37.CMsgCREGetUserPublishedItemVoteDetails.PublishedFileId\x1a,\n\x0fPublishedFileId\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\"\xea\x01\n.CMsgCREGetUserPublishedItemVoteDetailsResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x62\n\x16user_item_vote_details\x18\x02 \x03(\x0b\x32\x42.CMsgCREGetUserPublishedItemVoteDetailsResponse.UserItemVoteDetail\x1a@\n\x12UserItemVoteDetail\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\x12\x0f\n\x04vote\x18\x02 \x01(\x05:\x01\x30\"\xb9\x01\n\x18\x43MsgGameServerPingSample\x12\r\n\x05my_ip\x18\x01 \x01(\x07\x12\x11\n\tgs_app_id\x18\x02 \x01(\x05\x12\x34\n\ngs_samples\x18\x03 \x03(\x0b\x32 .CMsgGameServerPingSample.Sample\x1a\x45\n\x06Sample\x12\n\n\x02ip\x18\x01 \x01(\x07\x12\x13\n\x0b\x61vg_ping_ms\x18\x02 \x01(\r\x12\x1a\n\x12stddev_ping_ms_x10\x18\x03 \x01(\r\"*\n\x16\x43MsgFSGetFollowerCount\x12\x10\n\x08steam_id\x18\x01 \x01(\x06\"F\n\x1e\x43MsgFSGetFollowerCountResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x10\n\x05\x63ount\x18\x02 \x01(\x05:\x01\x30\"(\n\x14\x43MsgFSGetIsFollowing\x12\x10\n\x08steam_id\x18\x01 \x01(\x06\"O\n\x1c\x43MsgFSGetIsFollowingResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x1b\n\x0cis_following\x18\x02 \x01(\x08:\x05\x66\x61lse\"3\n\x1c\x43MsgFSEnumerateFollowingList\x12\x13\n\x0bstart_index\x18\x01 \x01(\r\"d\n$CMsgFSEnumerateFollowingListResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x15\n\rtotal_results\x18\x02 \x01(\x05\x12\x11\n\tsteam_ids\x18\x03 \x03(\x06\"0\n\x1f\x43MsgDPGetNumberOfCurrentPlayers\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\"S\n\'CMsgDPGetNumberOfCurrentPlayersResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x14\n\x0cplayer_count\x18\x02 \x01(\x05\"a\n#CMsgClientFriendUserStatusPublished\x12\x16\n\x0e\x66riend_steamid\x18\x01 \x01(\x06\x12\r\n\x05\x61ppid\x18\x02 \x01(\r\x12\x13\n\x0bstatus_text\x18\x03 \x01(\t\"h\n\x1d\x43MsgClientServiceMethodLegacy\x12\x13\n\x0bmethod_name\x18\x01 \x01(\t\x12\x19\n\x11serialized_method\x18\x02 \x01(\x0c\x12\x17\n\x0fis_notification\x18\x03 \x01(\x08\"`\n%CMsgClientServiceMethodLegacyResponse\x12\x13\n\x0bmethod_name\x18\x01 \x01(\t\x12\"\n\x1aserialized_method_response\x18\x02 \x01(\x0c\"5\n\x10\x43MsgClientUIMode\x12\x0e\n\x06uimode\x18\x01 \x01(\r\x12\x11\n\tchat_mode\x18\x02 \x01(\r\"<\n&CMsgClientVanityURLChangedNotification\x12\x12\n\nvanity_url\x18\x01 \x01(\t\"y\n%CMsgClientAuthorizeLocalDeviceRequest\x12\x1a\n\x12\x64\x65vice_description\x18\x01 \x01(\t\x12\x18\n\x10owner_account_id\x18\x02 \x01(\r\x12\x1a\n\x12local_device_token\x18\x03 \x01(\x04\"k\n\x1e\x43MsgClientAuthorizeLocalDevice\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x18\n\x10owner_account_id\x18\x02 \x01(\r\x12\x1b\n\x13\x61uthed_device_token\x18\x03 \x01(\x04\"v\n*CMsgClientAuthorizeLocalDeviceNotification\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x18\n\x10owner_account_id\x18\x02 \x01(\r\x12\x1a\n\x12local_device_token\x18\x03 \x01(\x04\"n\n\"CMsgClientDeauthorizeDeviceRequest\x12\"\n\x1a\x64\x65\x61uthorization_account_id\x18\x01 \x01(\r\x12$\n\x1c\x64\x65\x61uthorization_device_token\x18\x02 \x01(\x04\"U\n\x1b\x43MsgClientDeauthorizeDevice\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\"\n\x1a\x64\x65\x61uthorization_account_id\x18\x02 \x01(\r\"\xd1\x01\n&CMsgClientUseLocalDeviceAuthorizations\x12 \n\x18\x61uthorization_account_id\x18\x01 \x03(\r\x12J\n\rdevice_tokens\x18\x02 \x03(\x0b\x32\x33.CMsgClientUseLocalDeviceAuthorizations.DeviceToken\x1a\x39\n\x0b\x44\x65viceToken\x12\x18\n\x10owner_account_id\x18\x01 \x01(\r\x12\x10\n\x08token_id\x18\x02 \x01(\x04\" \n\x1e\x43MsgClientGetAuthorizedDevices\"\xad\x02\n&CMsgClientGetAuthorizedDevicesResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12S\n\x11\x61uthorized_device\x18\x02 \x03(\x0b\x32\x38.CMsgClientGetAuthorizedDevicesResponse.AuthorizedDevice\x1a\x99\x01\n\x10\x41uthorizedDevice\x12\x19\n\x11\x61uth_device_token\x18\x01 \x01(\x04\x12\x13\n\x0b\x64\x65vice_name\x18\x02 \x01(\t\x12\x18\n\x10last_access_time\x18\x03 \x01(\r\x12\x13\n\x0b\x62orrower_id\x18\x04 \x01(\r\x12\x12\n\nis_pending\x18\x05 \x01(\x08\x12\x12\n\napp_played\x18\x06 \x01(\r\"\xc2\x01\n!CMsgClientSharedLibraryLockStatus\x12H\n\x0elocked_library\x18\x01 \x03(\x0b\x32\x30.CMsgClientSharedLibraryLockStatus.LockedLibrary\x12\x1d\n\x15own_library_locked_by\x18\x02 \x01(\r\x1a\x34\n\rLockedLibrary\x12\x10\n\x08owner_id\x18\x01 \x01(\r\x12\x11\n\tlocked_by\x18\x02 \x01(\r\"\xa7\x01\n\"CMsgClientSharedLibraryStopPlaying\x12\x14\n\x0cseconds_left\x18\x01 \x01(\x05\x12>\n\tstop_apps\x18\x02 \x03(\x0b\x32+.CMsgClientSharedLibraryStopPlaying.StopApp\x1a+\n\x07StopApp\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x10\n\x08owner_id\x18\x02 \x01(\r\"\xf1\x01\n\x15\x43MsgClientServiceCall\x12\x15\n\rsysid_routing\x18\x01 \x01(\x0c\x12\x13\n\x0b\x63\x61ll_handle\x18\x02 \x01(\r\x12\x12\n\nmodule_crc\x18\x03 \x01(\r\x12\x13\n\x0bmodule_hash\x18\x04 \x01(\x0c\x12\x13\n\x0b\x66unction_id\x18\x05 \x01(\r\x12\x16\n\x0e\x63ub_output_max\x18\x06 \x01(\r\x12\r\n\x05\x66lags\x18\x07 \x01(\r\x12\x15\n\rcallparameter\x18\x08 \x01(\x0c\x12\x11\n\tping_only\x18\t \x01(\x08\x12\x1d\n\x15max_outstanding_calls\x18\n \x01(\r\"Z\n\x17\x43MsgClientServiceModule\x12\x12\n\nmodule_crc\x18\x01 \x01(\r\x12\x13\n\x0bmodule_hash\x18\x02 \x01(\x0c\x12\x16\n\x0emodule_content\x18\x03 \x01(\x0c\"\xb8\x04\n\x1d\x43MsgClientServiceCallResponse\x12\x15\n\rsysid_routing\x18\x01 \x01(\x0c\x12\x13\n\x0b\x63\x61ll_handle\x18\x02 \x01(\r\x12\x12\n\nmodule_crc\x18\x03 \x01(\r\x12\x13\n\x0bmodule_hash\x18\x04 \x01(\x0c\x12\x13\n\x0b\x65\x63\x61llresult\x18\x05 \x01(\r\x12\x16\n\x0eresult_content\x18\x06 \x01(\x0c\x12\x17\n\x0fos_version_info\x18\x07 \x01(\x0c\x12\x13\n\x0bsystem_info\x18\x08 \x01(\x0c\x12\x14\n\x0cload_address\x18\t \x01(\x06\x12\x18\n\x10\x65xception_record\x18\n \x01(\x0c\x12 \n\x18portable_os_version_info\x18\x0b \x01(\x0c\x12\x1c\n\x14portable_system_info\x18\x0c \x01(\x0c\x12\x15\n\rwas_converted\x18\r \x01(\x08\x12\x17\n\x0finternal_result\x18\x0e \x01(\r\x12\x15\n\rcurrent_count\x18\x0f \x01(\r\x12\x18\n\x10last_call_handle\x18\x10 \x01(\r\x12\x1c\n\x14last_call_module_crc\x18\x11 \x01(\r\x12\x1f\n\x17last_call_sysid_routing\x18\x12 \x01(\x0c\x12\x18\n\x10last_ecallresult\x18\x13 \x01(\r\x12\x1c\n\x14last_callissue_delta\x18\x14 \x01(\r\x12\x1f\n\x17last_callcomplete_delta\x18\x15 \x01(\r\"\x17\n\x15\x43MsgAMUnlockStreaming\"K\n\x1d\x43MsgAMUnlockStreamingResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x16\n\x0e\x65ncryption_key\x18\x02 \x01(\x0c\"\x12\n\x10\x43MsgAMUnlockHEVC\".\n\x18\x43MsgAMUnlockHEVCResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\"M\n\x1d\x43MsgClientPlayingSessionState\x12\x17\n\x0fplaying_blocked\x18\x02 \x01(\x08\x12\x13\n\x0bplaying_app\x18\x03 \x01(\r\"6\n\x1c\x43MsgClientKickPlayingSession\x12\x16\n\x0eonly_stop_game\x18\x01 \x01(\x08\"v\n\x1f\x43MsgClientVoiceCallPreAuthorize\x12\x16\n\x0e\x63\x61ller_steamid\x18\x01 \x01(\x06\x12\x18\n\x10receiver_steamid\x18\x02 \x01(\x06\x12\x11\n\tcaller_id\x18\x03 \x01(\x05\x12\x0e\n\x06hangup\x18\x04 \x01(\x08\"\x82\x01\n\'CMsgClientVoiceCallPreAuthorizeResponse\x12\x16\n\x0e\x63\x61ller_steamid\x18\x01 \x01(\x06\x12\x18\n\x10receiver_steamid\x18\x02 \x01(\x06\x12\x12\n\x07\x65result\x18\x03 \x01(\x05:\x01\x32\x12\x11\n\tcaller_id\x18\x04 \x01(\x05\"B\n\x1c\x43MsgBadgeCraftedNotification\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x13\n\x0b\x62\x61\x64ge_level\x18\x02 \x01(\rB\x05H\x01\x90\x01\x00')
+  serialized_pb=_b('\n\"steammessages_clientserver_2.proto\x1a\x18steammessages_base.proto\"\x81\x03\n\x1a\x43MsgClientUCMAddScreenshot\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x10\n\x08\x66ilename\x18\x02 \x01(\t\x12\x11\n\tthumbname\x18\x03 \x01(\t\x12\x13\n\x0bvr_filename\x18\x0e \x01(\t\x12\x17\n\x0frtime32_created\x18\x04 \x01(\x07\x12\r\n\x05width\x18\x05 \x01(\r\x12\x0e\n\x06height\x18\x06 \x01(\r\x12\x13\n\x0bpermissions\x18\x07 \x01(\r\x12\x0f\n\x07\x63\x61ption\x18\x08 \x01(\t\x12\x15\n\rshortcut_name\x18\t \x01(\t\x12,\n\x03tag\x18\n \x03(\x0b\x32\x1f.CMsgClientUCMAddScreenshot.Tag\x12\x16\n\x0etagged_steamid\x18\x0b \x03(\x06\x12\x13\n\x0bspoiler_tag\x18\x0c \x01(\x08\x12\x1e\n\x16tagged_publishedfileid\x18\r \x03(\x04\x1a*\n\x03Tag\x12\x10\n\x08tag_name\x18\x01 \x01(\t\x12\x11\n\ttag_value\x18\x02 \x01(\t\"d\n\"CMsgClientUCMAddScreenshotResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12*\n\x0cscreenshotid\x18\x02 \x01(\x06:\x14\x31\x38\x34\x34\x36\x37\x34\x34\x30\x37\x33\x37\x30\x39\x35\x35\x31\x36\x31\x35\"K\n\x1d\x43MsgClientUCMDeleteScreenshot\x12*\n\x0cscreenshotid\x18\x01 \x01(\x06:\x14\x31\x38\x34\x34\x36\x37\x34\x34\x30\x37\x33\x37\x30\x39\x35\x35\x31\x36\x31\x35\";\n%CMsgClientUCMDeleteScreenshotResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\"\xd1\x02\n\x18\x43MsgClientUCMPublishFile\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x11\n\tfile_name\x18\x02 \x01(\t\x12\x19\n\x11preview_file_name\x18\x03 \x01(\t\x12\x17\n\x0f\x63onsumer_app_id\x18\x04 \x01(\r\x12\r\n\x05title\x18\x05 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x06 \x01(\t\x12\x0c\n\x04tags\x18\x08 \x03(\t\x12\x15\n\rworkshop_file\x18\t \x01(\x08\x12\x12\n\nvisibility\x18\n \x01(\x05\x12\x11\n\tfile_type\x18\x0b \x01(\r\x12\x0b\n\x03url\x18\x0c \x01(\t\x12\x16\n\x0evideo_provider\x18\r \x01(\r\x12\x1a\n\x12video_account_name\x18\x0e \x01(\t\x12\x18\n\x10video_identifier\x18\x0f \x01(\t\x12\x13\n\x0bin_progress\x18\x10 \x01(\x08\"\xa1\x01\n CMsgClientUCMPublishFileResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12/\n\x11published_file_id\x18\x02 \x01(\x06:\x14\x31\x38\x34\x34\x36\x37\x34\x34\x30\x37\x33\x37\x30\x39\x35\x35\x31\x36\x31\x35\x12\x38\n)needs_workshop_legal_agreement_acceptance\x18\x03 \x01(\x08:\x05\x66\x61lse\"\xb7\x07\n CMsgClientUCMUpdatePublishedFile\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x19\n\x11published_file_id\x18\x02 \x01(\x06\x12\x11\n\tfile_name\x18\x03 \x01(\t\x12\x19\n\x11preview_file_name\x18\x04 \x01(\t\x12\r\n\x05title\x18\x05 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x06 \x01(\t\x12\x0c\n\x04tags\x18\x07 \x03(\t\x12\x12\n\nvisibility\x18\x08 \x01(\x05\x12\x13\n\x0bupdate_file\x18\t \x01(\x08\x12\x1b\n\x13update_preview_file\x18\n \x01(\x08\x12\x14\n\x0cupdate_title\x18\x0b \x01(\x08\x12\x1a\n\x12update_description\x18\x0c \x01(\x08\x12\x13\n\x0bupdate_tags\x18\r \x01(\x08\x12\x19\n\x11update_visibility\x18\x0e \x01(\x08\x12\x1a\n\x12\x63hange_description\x18\x0f \x01(\t\x12\x12\n\nupdate_url\x18\x10 \x01(\x08\x12\x0b\n\x03url\x18\x11 \x01(\t\x12\x1f\n\x17update_content_manifest\x18\x12 \x01(\x08\x12\x18\n\x10\x63ontent_manifest\x18\x13 \x01(\x06\x12\x10\n\x08metadata\x18\x14 \x01(\t\x12\x17\n\x0fupdate_metadata\x18\x15 \x01(\x08\x12\x13\n\x08language\x18\x16 \x01(\x05:\x01\x30\x12\x16\n\x0eremoved_kvtags\x18\x17 \x03(\t\x12=\n\x06kvtags\x18\x18 \x03(\x0b\x32-.CMsgClientUCMUpdatePublishedFile.KeyValueTag\x12\x45\n\x08previews\x18\x19 \x03(\x0b\x32\x33.CMsgClientUCMUpdatePublishedFile.AdditionalPreview\x12\x1a\n\x12previews_to_remove\x18\x1a \x03(\x05\x12\x19\n\x11\x63lear_in_progress\x18\x1b \x01(\x08\x12\x19\n\x11remove_all_kvtags\x18\x1c \x01(\x08\x1a)\n\x0bKeyValueTag\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\x1a\x8c\x01\n\x11\x41\x64\x64itionalPreview\x12\x1a\n\x12original_file_name\x18\x01 \x01(\t\x12\x1a\n\x12internal_file_name\x18\x02 \x01(\t\x12\x0f\n\x07videoid\x18\x03 \x01(\t\x12\x14\n\x0cpreview_type\x18\x04 \x01(\r\x12\x18\n\x0cupdate_index\x18\x05 \x01(\x05:\x02-1\"x\n(CMsgClientUCMUpdatePublishedFileResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x38\n)needs_workshop_legal_agreement_acceptance\x18\x02 \x01(\x08:\x05\x66\x61lse\"M\n CMsgClientUCMDeletePublishedFile\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\x12\x0e\n\x06\x61pp_id\x18\x02 \x01(\r\">\n(CMsgClientUCMDeletePublishedFileResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\"c\n(CMsgClientUCMEnumerateUserPublishedFiles\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x13\n\x0bstart_index\x18\x02 \x01(\r\x12\x12\n\nsort_order\x18\x03 \x01(\r\"\xe7\x01\n0CMsgClientUCMEnumerateUserPublishedFilesResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12Z\n\x0fpublished_files\x18\x02 \x03(\x0b\x32\x41.CMsgClientUCMEnumerateUserPublishedFilesResponse.PublishedFileId\x12\x15\n\rtotal_results\x18\x03 \x01(\r\x1a,\n\x0fPublishedFileId\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\"\x98\x01\n)CMsgClientUCMEnumerateUserSubscribedFiles\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x13\n\x0bstart_index\x18\x02 \x01(\r\x12\x14\n\tlist_type\x18\x03 \x01(\r:\x01\x31\x12\x1d\n\x12matching_file_type\x18\x04 \x01(\r:\x01\x30\x12\x11\n\x05\x63ount\x18\x05 \x01(\r:\x02\x35\x30\"\x89\x02\n1CMsgClientUCMEnumerateUserSubscribedFilesResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\\\n\x10subscribed_files\x18\x02 \x03(\x0b\x32\x42.CMsgClientUCMEnumerateUserSubscribedFilesResponse.PublishedFileId\x12\x15\n\rtotal_results\x18\x03 \x01(\r\x1aK\n\x0fPublishedFileId\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\x12\x1d\n\x12rtime32_subscribed\x18\x02 \x01(\x07:\x01\x30\"\x8c\x01\n4CMsgClientUCMEnumerateUserSubscribedFilesWithUpdates\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x13\n\x0bstart_index\x18\x02 \x01(\r\x12\x12\n\nstart_time\x18\x03 \x01(\x07\x12\x1b\n\x10\x64\x65sired_revision\x18\x04 \x01(\r:\x01\x30\"\x91\x03\n<CMsgClientUCMEnumerateUserSubscribedFilesWithUpdatesResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12g\n\x10subscribed_files\x18\x02 \x03(\x0b\x32M.CMsgClientUCMEnumerateUserSubscribedFilesWithUpdatesResponse.PublishedFileId\x12\x15\n\rtotal_results\x18\x03 \x01(\r\x1a\xbc\x01\n\x0fPublishedFileId\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\x12\x1d\n\x12rtime32_subscribed\x18\x02 \x01(\x07:\x01\x30\x12\r\n\x05\x61ppid\x18\x03 \x01(\r\x12\x15\n\rfile_hcontent\x18\x04 \x01(\x06\x12\x11\n\tfile_size\x18\x05 \x01(\r\x12\x1c\n\x14rtime32_last_updated\x18\x06 \x01(\x07\x12\x18\n\x10is_depot_content\x18\x07 \x01(\x08\"\xb5\x01\n!CMsgClientUCMPublishedFileUpdated\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\x12\x0e\n\x06\x61pp_id\x18\x02 \x01(\r\x12\x14\n\x0ctime_updated\x18\x03 \x01(\r\x12\x10\n\x08hcontent\x18\x04 \x01(\x06\x12\x11\n\tfile_size\x18\x05 \x01(\x07\x12\x18\n\x10is_depot_content\x18\x06 \x01(\x08\x12\x10\n\x08revision\x18\x07 \x01(\r\"k\n$CMsgClientWorkshopItemChangesRequest\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x19\n\x11last_time_updated\x18\x02 \x01(\r\x12\x18\n\x10num_items_needed\x18\x03 \x01(\r\"\xfb\x01\n%CMsgClientWorkshopItemChangesResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x13\n\x0bupdate_time\x18\x02 \x01(\r\x12O\n\x0eworkshop_items\x18\x05 \x03(\x0b\x32\x37.CMsgClientWorkshopItemChangesResponse.WorkshopItemInfo\x1aX\n\x10WorkshopItemInfo\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\x12\x14\n\x0ctime_updated\x18\x02 \x01(\r\x12\x13\n\x0bmanifest_id\x18\x03 \x01(\x06\"\xd8\x01\n!CMsgClientWorkshopItemInfoRequest\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x19\n\x11last_time_updated\x18\x02 \x01(\r\x12G\n\x0eworkshop_items\x18\x03 \x03(\x0b\x32/.CMsgClientWorkshopItemInfoRequest.WorkshopItem\x1a?\n\x0cWorkshopItem\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\x12\x14\n\x0ctime_updated\x18\x02 \x01(\r\"\x9f\x02\n\"CMsgClientWorkshopItemInfoResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x13\n\x0bupdate_time\x18\x02 \x01(\r\x12L\n\x0eworkshop_items\x18\x03 \x03(\x0b\x32\x34.CMsgClientWorkshopItemInfoResponse.WorkshopItemInfo\x12\x15\n\rprivate_items\x18\x04 \x03(\x06\x1ak\n\x10WorkshopItemInfo\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\x12\x14\n\x0ctime_updated\x18\x02 \x01(\r\x12\x13\n\x0bmanifest_id\x18\x03 \x01(\x06\x12\x11\n\tis_legacy\x18\x04 \x01(\x08\"\x94\x01\n%CMsgClientUCMGetPublishedFilesForUser\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x18\n\x10\x63reator_steam_id\x18\x02 \x01(\x06\x12\x15\n\rrequired_tags\x18\x03 \x03(\t\x12\x15\n\rexcluded_tags\x18\x04 \x03(\t\x12\x13\n\x0bstart_index\x18\x05 \x01(\r\"\xe1\x01\n-CMsgClientUCMGetPublishedFilesForUserResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12W\n\x0fpublished_files\x18\x02 \x03(\x0b\x32>.CMsgClientUCMGetPublishedFilesForUserResponse.PublishedFileId\x12\x15\n\rtotal_results\x18\x03 \x01(\r\x1a,\n\x0fPublishedFileId\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\"d\n\'CMsgClientUCMSetUserPublishedFileAction\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\x12\x0e\n\x06\x61pp_id\x18\x02 \x01(\r\x12\x0e\n\x06\x61\x63tion\x18\x03 \x01(\x05\"E\n/CMsgClientUCMSetUserPublishedFileActionResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\"g\n0CMsgClientUCMEnumeratePublishedFilesByUserAction\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x13\n\x0bstart_index\x18\x02 \x01(\r\x12\x0e\n\x06\x61\x63tion\x18\x03 \x01(\x05\"\x94\x02\n8CMsgClientUCMEnumeratePublishedFilesByUserActionResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x62\n\x0fpublished_files\x18\x02 \x03(\x0b\x32I.CMsgClientUCMEnumeratePublishedFilesByUserActionResponse.PublishedFileId\x12\x15\n\rtotal_results\x18\x03 \x01(\r\x1aI\n\x0fPublishedFileId\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\x12\x1b\n\x10rtime_time_stamp\x18\x02 \x01(\x07:\x01\x30\"\x1e\n\x1c\x43MsgClientScreenshotsChanged\"w\n\x1c\x43MsgClientUpdateUserGameInfo\x12\x14\n\x0csteamid_idgs\x18\x01 \x01(\x06\x12\x0e\n\x06gameid\x18\x02 \x01(\x06\x12\x0f\n\x07game_ip\x18\x03 \x01(\r\x12\x11\n\tgame_port\x18\x04 \x01(\r\x12\r\n\x05token\x18\x05 \x01(\x0c\"S\n\x1c\x43MsgClientRichPresenceUpload\x12\x18\n\x10rich_presence_kv\x18\x01 \x01(\x0c\x12\x19\n\x11steamid_broadcast\x18\x02 \x03(\x06\"8\n\x1d\x43MsgClientRichPresenceRequest\x12\x17\n\x0fsteamid_request\x18\x01 \x03(\x06\"\x9d\x01\n\x1a\x43MsgClientRichPresenceInfo\x12?\n\rrich_presence\x18\x01 \x03(\x0b\x32(.CMsgClientRichPresenceInfo.RichPresence\x1a>\n\x0cRichPresence\x12\x14\n\x0csteamid_user\x18\x01 \x01(\x06\x12\x18\n\x10rich_presence_kv\x18\x02 \x01(\x0c\".\n\x1c\x43MsgClientCheckFileSignature\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\"\xf7\x01\n$CMsgClientCheckFileSignatureResponse\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x0b\n\x03pid\x18\x02 \x01(\r\x12\x0f\n\x07\x65result\x18\x03 \x01(\r\x12\x10\n\x08\x66ilename\x18\x04 \x01(\t\x12\x18\n\x10\x65signatureresult\x18\x05 \x01(\r\x12\x10\n\x08sha_file\x18\x06 \x01(\x0c\x12\x17\n\x0fsignatureheader\x18\x07 \x01(\x0c\x12\x10\n\x08\x66ilesize\x18\x08 \x01(\r\x12\x14\n\x0cgetlasterror\x18\t \x01(\r\x12\"\n\x1a\x65valvesignaturecheckdetail\x18\n \x01(\r\"P\n\x19\x43MsgClientReadMachineAuth\x12\x10\n\x08\x66ilename\x18\x01 \x01(\t\x12\x0e\n\x06offset\x18\x02 \x01(\r\x12\x11\n\tcubtoread\x18\x03 \x01(\r\"\xce\x01\n!CMsgClientReadMachineAuthResponse\x12\x10\n\x08\x66ilename\x18\x01 \x01(\t\x12\x0f\n\x07\x65result\x18\x02 \x01(\r\x12\x10\n\x08\x66ilesize\x18\x03 \x01(\r\x12\x10\n\x08sha_file\x18\x04 \x01(\x0c\x12\x14\n\x0cgetlasterror\x18\x05 \x01(\r\x12\x0e\n\x06offset\x18\x06 \x01(\r\x12\x0f\n\x07\x63ubread\x18\x07 \x01(\r\x12\x12\n\nbytes_read\x18\x08 \x01(\x0c\x12\x17\n\x0f\x66ilename_sentry\x18\t \x01(\t\"\xbd\x01\n\x1b\x43MsgClientUpdateMachineAuth\x12\x10\n\x08\x66ilename\x18\x01 \x01(\t\x12\x0e\n\x06offset\x18\x02 \x01(\r\x12\x12\n\ncubtowrite\x18\x03 \x01(\r\x12\r\n\x05\x62ytes\x18\x04 \x01(\x0c\x12\x10\n\x08otp_type\x18\x05 \x01(\r\x12\x16\n\x0eotp_identifier\x18\x06 \x01(\t\x12\x18\n\x10otp_sharedsecret\x18\x07 \x01(\x0c\x12\x15\n\rotp_timedrift\x18\x08 \x01(\r\"\xe1\x01\n#CMsgClientUpdateMachineAuthResponse\x12\x10\n\x08\x66ilename\x18\x01 \x01(\t\x12\x0f\n\x07\x65result\x18\x02 \x01(\r\x12\x10\n\x08\x66ilesize\x18\x03 \x01(\r\x12\x10\n\x08sha_file\x18\x04 \x01(\x0c\x12\x14\n\x0cgetlasterror\x18\x05 \x01(\r\x12\x0e\n\x06offset\x18\x06 \x01(\r\x12\x10\n\x08\x63ubwrote\x18\x07 \x01(\r\x12\x10\n\x08otp_type\x18\x08 \x01(\x05\x12\x11\n\totp_value\x18\t \x01(\r\x12\x16\n\x0eotp_identifier\x18\n \x01(\t\"\xa1\x02\n\x1c\x43MsgClientRequestMachineAuth\x12\x10\n\x08\x66ilename\x18\x01 \x01(\t\x12\x1a\n\x12\x65result_sentryfile\x18\x02 \x01(\r\x12\x10\n\x08\x66ilesize\x18\x03 \x01(\r\x12\x16\n\x0esha_sentryfile\x18\x04 \x01(\x0c\x12\x1b\n\x13lock_account_action\x18\x06 \x01(\x05\x12\x10\n\x08otp_type\x18\x07 \x01(\r\x12\x16\n\x0eotp_identifier\x18\x08 \x01(\t\x12\x18\n\x10otp_sharedsecret\x18\t \x01(\x0c\x12\x11\n\totp_value\x18\n \x01(\r\x12\x14\n\x0cmachine_name\x18\x0b \x01(\t\x12\x1f\n\x17machine_name_userchosen\x18\x0c \x01(\t\"7\n$CMsgClientRequestMachineAuthResponse\x12\x0f\n\x07\x65result\x18\x01 \x01(\r\"$\n\x15\x43MsgClientRegisterKey\x12\x0b\n\x03key\x18\x01 \x01(\t\"p\n\x1a\x43MsgClientPurchaseResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x1f\n\x17purchase_result_details\x18\x02 \x01(\x05\x12\x1d\n\x15purchase_receipt_info\x18\x03 \x01(\x0c\"\xc5\x01\n\x1c\x43MsgClientActivateOEMLicense\x12\x19\n\x11\x62ios_manufacturer\x18\x01 \x01(\t\x12\x19\n\x11\x62ios_serialnumber\x18\x02 \x01(\t\x12\x14\n\x0clicense_file\x18\x03 \x01(\x0c\x12\x1e\n\x16mainboard_manufacturer\x18\x04 \x01(\t\x12\x19\n\x11mainboard_product\x18\x05 \x01(\t\x12\x1e\n\x16mainboard_serialnumber\x18\x06 \x01(\t\"9\n\x1c\x43MsgClientRegisterOEMMachine\x12\x19\n\x11oem_register_file\x18\x01 \x01(\x0c\"7\n$CMsgClientRegisterOEMMachineResponse\x12\x0f\n\x07\x65result\x18\x01 \x01(\r\"K\n\x1f\x43MsgClientPurchaseWithMachineID\x12\x12\n\npackage_id\x18\x01 \x01(\r\x12\x14\n\x0cmachine_info\x18\x02 \x01(\x0c\"g\n CMsgTrading_InitiateTradeRequest\x12\x18\n\x10trade_request_id\x18\x01 \x01(\r\x12\x15\n\rother_steamid\x18\x02 \x01(\x04\x12\x12\n\nother_name\x18\x03 \x01(\t\"\xd2\x02\n!CMsgTrading_InitiateTradeResponse\x12\x10\n\x08response\x18\x01 \x01(\r\x12\x18\n\x10trade_request_id\x18\x02 \x01(\r\x12\x15\n\rother_steamid\x18\x03 \x01(\x04\x12 \n\x18steamguard_required_days\x18\x04 \x01(\r\x12 \n\x18new_device_cooldown_days\x18\x05 \x01(\r\x12-\n%default_password_reset_probation_days\x18\x06 \x01(\r\x12%\n\x1dpassword_reset_probation_days\x18\x07 \x01(\r\x12+\n#default_email_change_probation_days\x18\x08 \x01(\r\x12#\n\x1b\x65mail_change_probation_days\x18\t \x01(\r\"7\n\x1e\x43MsgTrading_CancelTradeRequest\x12\x15\n\rother_steamid\x18\x01 \x01(\x04\"1\n\x18\x43MsgTrading_StartSession\x12\x15\n\rother_steamid\x18\x01 \x01(\x04\"P\n\x19\x43MsgClientGetCDNAuthToken\x12\x10\n\x08\x64\x65pot_id\x18\x01 \x01(\r\x12\x11\n\thost_name\x18\x02 \x01(\t\x12\x0e\n\x06\x61pp_id\x18\x03 \x01(\r\"C\n\x1f\x43MsgClientGetDepotDecryptionKey\x12\x10\n\x08\x64\x65pot_id\x18\x01 \x01(\r\x12\x0e\n\x06\x61pp_id\x18\x02 \x01(\r\"m\n\'CMsgClientGetDepotDecryptionKeyResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x10\n\x08\x64\x65pot_id\x18\x02 \x01(\r\x12\x1c\n\x14\x64\x65pot_encryption_key\x18\x03 \x01(\x0c\"X\n\x1e\x43MsgClientCheckAppBetaPassword\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x14\n\x0c\x62\x65tapassword\x18\x02 \x01(\t\x12\x10\n\x08language\x18\x03 \x01(\x05\"\xda\x01\n&CMsgClientCheckAppBetaPasswordResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12K\n\rbetapasswords\x18\x04 \x03(\x0b\x32\x34.CMsgClientCheckAppBetaPasswordResponse.BetaPassword\x1aO\n\x0c\x42\x65taPassword\x12\x10\n\x08\x62\x65taname\x18\x01 \x01(\t\x12\x14\n\x0c\x62\x65tapassword\x18\x02 \x01(\t\x12\x17\n\x0f\x62\x65tadescription\x18\x03 \x01(\t\"\xbe\x04\n\x1c\x43MsgClientUpdateAppJobReport\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x11\n\tdepot_ids\x18\x02 \x03(\r\x12\x11\n\tapp_state\x18\x03 \x01(\r\x12\x15\n\rjob_app_error\x18\x04 \x01(\r\x12\x15\n\rerror_details\x18\x05 \x01(\t\x12\x14\n\x0cjob_duration\x18\x06 \x01(\r\x12\x1f\n\x17\x66iles_validation_failed\x18\x07 \x01(\r\x12\x1c\n\x14job_bytes_downloaded\x18\x08 \x01(\x04\x12\x18\n\x10job_bytes_staged\x18\t \x01(\x04\x12\x16\n\x0e\x62ytes_comitted\x18\n \x01(\x04\x12\x17\n\x0fstart_app_state\x18\x0b \x01(\r\x12\x18\n\x10stats_machine_id\x18\x0c \x01(\x06\x12\x13\n\x0b\x62ranch_name\x18\r \x01(\t\x12\x1e\n\x16total_bytes_downloaded\x18\x0e \x01(\x04\x12\x1a\n\x12total_bytes_staged\x18\x0f \x01(\x04\x12\x1c\n\x14total_bytes_restored\x18\x10 \x01(\x04\x12\x13\n\x0bis_borrowed\x18\x11 \x01(\x08\x12\x17\n\x0fis_free_weekend\x18\x12 \x01(\x08\x12\x1a\n\x12total_bytes_legacy\x18\x13 \x01(\x04\x12\x1b\n\x13total_bytes_patched\x18\x14 \x01(\x04\x12\x19\n\x11total_bytes_saved\x18\x15 \x01(\x04\x12\x0f\n\x07\x63\x65ll_id\x18\x16 \x01(\r\"\xcb\x01\n\x1e\x43MsgClientDPContentStatsReport\x12\x18\n\x10stats_machine_id\x18\x01 \x01(\x06\x12\x14\n\x0c\x63ountry_code\x18\x02 \x01(\t\x12\x0f\n\x07os_type\x18\x03 \x01(\x05\x12\x10\n\x08language\x18\x04 \x01(\x05\x12\x1b\n\x13num_install_folders\x18\x05 \x01(\r\x12\x1b\n\x13num_installed_games\x18\x06 \x01(\r\x12\x1c\n\x14size_installed_games\x18\x07 \x01(\x04\"_\n!CMsgClientGetCDNAuthTokenResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\r:\x01\x32\x12\r\n\x05token\x18\x02 \x01(\t\x12\x17\n\x0f\x65xpiration_time\x18\x03 \x01(\r\"\xb4\x02\n\x1a\x43MsgDownloadRateStatistics\x12\x0f\n\x07\x63\x65ll_id\x18\x01 \x01(\r\x12\x34\n\x05stats\x18\x02 \x03(\x0b\x32%.CMsgDownloadRateStatistics.StatsInfo\x12\x17\n\x0fthrottling_kbps\x18\x03 \x01(\r\x12\x13\n\x0bsteam_realm\x18\x04 \x01(\r\x1a\xa0\x01\n\tStatsInfo\x12\x13\n\x0bsource_type\x18\x01 \x01(\r\x12\x11\n\tsource_id\x18\x02 \x01(\r\x12\x0f\n\x07seconds\x18\x03 \x01(\r\x12\r\n\x05\x62ytes\x18\x04 \x01(\x04\x12\x11\n\thost_name\x18\x05 \x01(\t\x12\x14\n\x0cmicroseconds\x18\x06 \x01(\x04\x12\x11\n\tused_ipv6\x18\x07 \x01(\x08\x12\x0f\n\x07proxied\x18\x08 \x01(\x08\"H\n\x1c\x43MsgClientRequestAccountData\x12\x18\n\x10\x61\x63\x63ount_or_email\x18\x01 \x01(\t\x12\x0e\n\x06\x61\x63tion\x18\x02 \x01(\r\"\xd7\x01\n$CMsgClientRequestAccountDataResponse\x12\x0e\n\x06\x61\x63tion\x18\x01 \x01(\r\x12\x0f\n\x07\x65result\x18\x02 \x01(\r\x12\x14\n\x0c\x61\x63\x63ount_name\x18\x03 \x01(\t\x12\x12\n\nct_matches\x18\x04 \x01(\r\x12 \n\x18\x61\x63\x63ount_name_suggestion1\x18\x05 \x01(\t\x12 \n\x18\x61\x63\x63ount_name_suggestion2\x18\x06 \x01(\t\x12 \n\x18\x61\x63\x63ount_name_suggestion3\x18\x07 \x01(\t\"\x99\x01\n\x1b\x43MsgClientUGSGetGlobalStats\x12\x0e\n\x06gameid\x18\x01 \x01(\x04\x12\x1e\n\x16history_days_requested\x18\x02 \x01(\r\x12\x1b\n\x13time_last_requested\x18\x03 \x01(\x07\x12\x18\n\x10\x66irst_day_cached\x18\x04 \x01(\r\x12\x13\n\x0b\x64\x61ys_cached\x18\x05 \x01(\r\"\x95\x02\n#CMsgClientUGSGetGlobalStatsResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x11\n\ttimestamp\x18\x02 \x01(\x07\x12\x13\n\x0b\x64\x61y_current\x18\x03 \x01(\x05\x12\x36\n\x04\x64\x61ys\x18\x04 \x03(\x0b\x32(.CMsgClientUGSGetGlobalStatsResponse.Day\x1az\n\x03\x44\x61y\x12\x0e\n\x06\x64\x61y_id\x18\x01 \x01(\r\x12<\n\x05stats\x18\x02 \x03(\x0b\x32-.CMsgClientUGSGetGlobalStatsResponse.Day.Stat\x1a%\n\x04Stat\x12\x0f\n\x07stat_id\x18\x01 \x01(\x05\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x03\"\xa4\x04\n\x12\x43MsgGameServerData\x12\x10\n\x08revision\x18\x18 \x01(\r\x12\x13\n\x0bsteam_id_gs\x18\x01 \x01(\x06\x12\x12\n\nquery_port\x18\x03 \x01(\r\x12\x11\n\tgame_port\x18\x04 \x01(\r\x12\x16\n\x0espectator_port\x18\x05 \x01(\r\x12\x13\n\x0bserver_name\x18\x16 \x01(\t\x12\x18\n\x10game_description\x18\x1d \x01(\t\x12\x1d\n\x15spectator_server_name\x18\x1b \x01(\t\x12\x0f\n\x07\x66\x61ke_ip\x18\x1c \x01(\x07\x12\x11\n\tsdr_login\x18\x1a \x01(\x0c\x12\x0e\n\x06\x61pp_id\x18\x06 \x01(\r\x12\x0f\n\x07gamedir\x18\x07 \x01(\t\x12\x0f\n\x07version\x18\x08 \x01(\t\x12\x0f\n\x07product\x18\t \x01(\t\x12\x0e\n\x06region\x18\n \x01(\t\x12+\n\x07players\x18\x0b \x03(\x0b\x32\x1a.CMsgGameServerData.Player\x12\x13\n\x0bmax_players\x18\x0c \x01(\r\x12\x11\n\tbot_count\x18\r \x01(\r\x12\x10\n\x08password\x18\x0e \x01(\x08\x12\x0e\n\x06secure\x18\x0f \x01(\x08\x12\x11\n\tdedicated\x18\x10 \x01(\x08\x12\n\n\x02os\x18\x11 \x01(\t\x12\x11\n\tgame_data\x18\x12 \x01(\t\x12\x11\n\tgame_type\x18\x14 \x01(\t\x12\x0b\n\x03map\x18\x15 \x01(\t\x1a\x1a\n\x06Player\x12\x10\n\x08steam_id\x18\x01 \x01(\x06\"M\n\x14\x43MsgGameServerRemove\x12\x1a\n\x12legacy_steam_id_gs\x18\x01 \x01(\x06\x12\x19\n\x11legacy_query_port\x18\x03 \x01(\r\"\x82\x01\n\x18\x43MsgClientGMSServerQuery\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x17\n\x0fgeo_location_ip\x18\x02 \x01(\r\x12\x13\n\x0bregion_code\x18\x03 \x01(\r\x12\x13\n\x0b\x66ilter_text\x18\x04 \x01(\t\x12\x13\n\x0bmax_servers\x18\x05 \x01(\r\"\xe1\x01\n CMsgGMSClientServerQueryResponse\x12\x39\n\x07servers\x18\x01 \x03(\x0b\x32(.CMsgGMSClientServerQueryResponse.Server\x12\r\n\x05\x65rror\x18\x02 \x01(\t\x1as\n\x06Server\x12\x1c\n\x14\x64\x65precated_server_ip\x18\x01 \x01(\r\x12\x12\n\nquery_port\x18\x02 \x01(\r\x12\x14\n\x0c\x61uth_players\x18\x03 \x01(\r\x12!\n\tserver_ip\x18\x04 \x01(\x0b\x32\x0e.CMsgIPAddress\"O\n\x17\x43MsgGameServerOutOfDate\x12\x13\n\x0bsteam_id_gs\x18\x01 \x01(\x06\x12\x0e\n\x06reject\x18\x02 \x01(\x08\x12\x0f\n\x07message\x18\x03 \x01(\t\"2\n\x19\x43MsgClientRedeemGuestPass\x12\x15\n\rguest_pass_id\x18\x01 \x01(\x06\"c\n!CMsgClientRedeemGuestPassResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\r:\x01\x32\x12\x12\n\npackage_id\x18\x02 \x01(\r\x12\x16\n\x0emust_own_appid\x18\x03 \x01(\r\"8\n\x1f\x43MsgClientGetClanActivityCounts\x12\x15\n\rsteamid_clans\x18\x01 \x03(\x04\"=\n\'CMsgClientGetClanActivityCountsResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\r:\x01\x32\"y\n\x19\x43MsgClientOGSReportString\x12\x13\n\x0b\x61\x63\x63umulated\x18\x01 \x01(\x08\x12\x11\n\tsessionid\x18\x02 \x01(\x04\x12\x10\n\x08severity\x18\x03 \x01(\x05\x12\x11\n\tformatter\x18\x04 \x01(\t\x12\x0f\n\x07varargs\x18\x05 \x01(\x0c\"P\n\x16\x43MsgClientOGSReportBug\x12\x11\n\tsessionid\x18\x01 \x01(\x04\x12\x0f\n\x07\x62ugtext\x18\x02 \x01(\t\x12\x12\n\nscreenshot\x18\x03 \x01(\x0c\"0\n\x17\x43MsgGSAssociateWithClan\x12\x15\n\rsteam_id_clan\x18\x01 \x01(\x06\"L\n\x1f\x43MsgGSAssociateWithClanResponse\x12\x15\n\rsteam_id_clan\x18\x01 \x01(\x06\x12\x12\n\x07\x65result\x18\x02 \x01(\r:\x01\x32\"A\n#CMsgGSComputeNewPlayerCompatibility\x12\x1a\n\x12steam_id_candidate\x18\x01 \x01(\x06\"\xcf\x01\n+CMsgGSComputeNewPlayerCompatibilityResponse\x12\x1a\n\x12steam_id_candidate\x18\x01 \x01(\x06\x12\x12\n\x07\x65result\x18\x02 \x01(\r:\x01\x32\x12\x16\n\x0eis_clan_member\x18\x03 \x01(\x08\x12\x18\n\x10\x63t_dont_like_you\x18\x04 \x01(\x05\x12\x18\n\x10\x63t_you_dont_like\x18\x05 \x01(\x05\x12$\n\x1c\x63t_clanmembers_dont_like_you\x18\x06 \x01(\x05\"\x14\n\x12\x43MsgClientSentLogs\"l\n\x0c\x43MsgGCClient\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x0f\n\x07msgtype\x18\x02 \x01(\r\x12\x0f\n\x07payload\x18\x03 \x01(\x0c\x12\x0f\n\x07steamid\x18\x04 \x01(\x06\x12\x0e\n\x06gcname\x18\x05 \x01(\t\x12\n\n\x02ip\x18\x06 \x01(\r\".\n\x1c\x43MsgClientRequestFreeLicense\x12\x0e\n\x06\x61ppids\x18\x02 \x03(\r\"n\n$CMsgClientRequestFreeLicenseResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\r:\x01\x32\x12\x1a\n\x12granted_packageids\x18\x02 \x03(\r\x12\x16\n\x0egranted_appids\x18\x03 \x03(\r\"\xd3\x01\n#CMsgDRMDownloadRequestWithCrashData\x12\x16\n\x0e\x64ownload_flags\x18\x01 \x01(\r\x12\x1c\n\x14\x64ownload_types_known\x18\x02 \x01(\r\x12\x10\n\x08guid_drm\x18\x03 \x01(\x0c\x12\x12\n\nguid_split\x18\x04 \x01(\x0c\x12\x12\n\nguid_merge\x18\x05 \x01(\x0c\x12\x13\n\x0bmodule_name\x18\x06 \x01(\t\x12\x13\n\x0bmodule_path\x18\x07 \x01(\t\x12\x12\n\ncrash_data\x18\x08 \x01(\x0c\"\xdb\x01\n\x17\x43MsgDRMDownloadResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\r:\x01\x32\x12\x0e\n\x06\x61pp_id\x18\x02 \x01(\r\x12\x1a\n\x12\x62lob_download_type\x18\x03 \x01(\r\x12\x12\n\nmerge_guid\x18\x04 \x01(\x0c\x12\x1c\n\x14\x64ownload_file_dfs_ip\x18\x05 \x01(\r\x12\x1e\n\x16\x64ownload_file_dfs_port\x18\x06 \x01(\r\x12\x19\n\x11\x64ownload_file_url\x18\x07 \x01(\t\x12\x13\n\x0bmodule_path\x18\x08 \x01(\t\"\xd7\x01\n\x12\x43MsgDRMFinalResult\x12\x12\n\x07\x65Result\x18\x01 \x01(\r:\x01\x32\x12\x0e\n\x06\x61pp_id\x18\x02 \x01(\r\x12\x1a\n\x12\x62lob_download_type\x18\x03 \x01(\r\x12\x14\n\x0c\x65rror_detail\x18\x04 \x01(\r\x12\x12\n\nmerge_guid\x18\x05 \x01(\x0c\x12\x1c\n\x14\x64ownload_file_dfs_ip\x18\x06 \x01(\r\x12\x1e\n\x16\x64ownload_file_dfs_port\x18\x07 \x01(\r\x12\x19\n\x11\x64ownload_file_url\x18\x08 \x01(\t\"3\n\x1e\x43MsgClientDPCheckSpecialSurvey\x12\x11\n\tsurvey_id\x18\x01 \x01(\r\"\x96\x01\n&CMsgClientDPCheckSpecialSurveyResponse\x12\x12\n\x07\x65Result\x18\x01 \x01(\r:\x01\x32\x12\r\n\x05state\x18\x02 \x01(\r\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x12\n\ncustom_url\x18\x04 \x01(\t\x12\x18\n\x10include_software\x18\x05 \x01(\x08\x12\r\n\x05token\x18\x06 \x01(\x0c\"H\n%CMsgClientDPSendSpecialSurveyResponse\x12\x11\n\tsurvey_id\x18\x01 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"O\n*CMsgClientDPSendSpecialSurveyResponseReply\x12\x12\n\x07\x65Result\x18\x01 \x01(\r:\x01\x32\x12\r\n\x05token\x18\x02 \x01(\x0c\"W\n\'CMsgClientRequestForgottenPasswordEmail\x12\x14\n\x0c\x61\x63\x63ount_name\x18\x01 \x01(\t\x12\x16\n\x0epassword_tried\x18\x02 \x01(\t\"_\n/CMsgClientRequestForgottenPasswordEmailResponse\x12\x0f\n\x07\x65Result\x18\x01 \x01(\r\x12\x1b\n\x13use_secret_question\x18\x02 \x01(\x08\"\xf6\x01\n\x1b\x43MsgClientItemAnnouncements\x12\x17\n\x0f\x63ount_new_items\x18\x01 \x01(\r\x12=\n\x0cunseen_items\x18\x02 \x03(\x0b\x32\'.CMsgClientItemAnnouncements.UnseenItem\x1a\x7f\n\nUnseenItem\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x12\n\ncontext_id\x18\x02 \x01(\x04\x12\x10\n\x08\x61sset_id\x18\x03 \x01(\x04\x12\x0e\n\x06\x61mount\x18\x04 \x01(\x04\x12\x16\n\x0ertime32_gained\x18\x05 \x01(\x07\x12\x14\n\x0csource_appid\x18\x06 \x01(\r\"$\n\"CMsgClientRequestItemAnnouncements\"\x9e\x01\n\x1b\x43MsgClientUserNotifications\x12@\n\rnotifications\x18\x01 \x03(\x0b\x32).CMsgClientUserNotifications.Notification\x1a=\n\x0cNotification\x12\x1e\n\x16user_notification_type\x18\x01 \x01(\r\x12\r\n\x05\x63ount\x18\x02 \x01(\r\"\x88\x01\n\x1e\x43MsgClientCommentNotifications\x12\x1a\n\x12\x63ount_new_comments\x18\x01 \x01(\r\x12 \n\x18\x63ount_new_comments_owner\x18\x02 \x01(\r\x12(\n count_new_comments_subscriptions\x18\x03 \x01(\r\"\'\n%CMsgClientRequestCommentNotifications\"g\n$CMsgClientOfflineMessageNotification\x12\x18\n\x10offline_messages\x18\x01 \x01(\r\x12%\n\x1d\x66riends_with_offline_messages\x18\x02 \x03(\r\"&\n$CMsgClientRequestOfflineMessageCount\"8\n%CMsgClientChatGetFriendMessageHistory\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\"\xf9\x01\n-CMsgClientChatGetFriendMessageHistoryResponse\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x0f\n\x07success\x18\x02 \x01(\r\x12N\n\x08messages\x18\x03 \x03(\x0b\x32<.CMsgClientChatGetFriendMessageHistoryResponse.FriendMessage\x1aV\n\rFriendMessage\x12\x11\n\taccountid\x18\x01 \x01(\r\x12\x11\n\ttimestamp\x18\x02 \x01(\r\x12\x0f\n\x07message\x18\x03 \x01(\t\x12\x0e\n\x06unread\x18\x04 \x01(\x08\"9\n7CMsgClientChatGetFriendMessageHistoryForOfflineMessages\"7\n!CMsgClientFSGetFriendsSteamLevels\x12\x12\n\naccountids\x18\x01 \x03(\r\"\x9b\x01\n)CMsgClientFSGetFriendsSteamLevelsResponse\x12\x42\n\x07\x66riends\x18\x01 \x03(\x0b\x32\x31.CMsgClientFSGetFriendsSteamLevelsResponse.Friend\x1a*\n\x06\x46riend\x12\x11\n\taccountid\x18\x01 \x01(\r\x12\r\n\x05level\x18\x02 \x01(\r\"\xeb\x01\n\x17\x43MsgClientEmailAddrInfo\x12\x15\n\remail_address\x18\x01 \x01(\t\x12\x1a\n\x12\x65mail_is_validated\x18\x02 \x01(\x08\x12 \n\x18\x65mail_validation_changed\x18\x03 \x01(\x08\x12\'\n\x1f\x63redential_change_requires_code\x18\x04 \x01(\x08\x12\x31\n)password_or_secretqa_change_requires_code\x18\x05 \x01(\x08\x12\x1f\n\x17remind_user_about_email\x18\x06 \x01(\x08\"\x8b\x01\n\x16\x43MsgCREItemVoteSummary\x12\x43\n\x12published_file_ids\x18\x01 \x03(\x0b\x32\'.CMsgCREItemVoteSummary.PublishedFileId\x1a,\n\x0fPublishedFileId\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\"\xfa\x01\n\x1e\x43MsgCREItemVoteSummaryResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12L\n\x13item_vote_summaries\x18\x02 \x03(\x0b\x32/.CMsgCREItemVoteSummaryResponse.ItemVoteSummary\x1av\n\x0fItemVoteSummary\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\x12\x11\n\tvotes_for\x18\x02 \x01(\x05\x12\x15\n\rvotes_against\x18\x03 \x01(\x05\x12\x0f\n\x07reports\x18\x04 \x01(\x05\x12\r\n\x05score\x18\x05 \x01(\x02\"P\n\"CMsgCREUpdateUserPublishedItemVote\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\x12\x0f\n\x07vote_up\x18\x02 \x01(\x08\"@\n*CMsgCREUpdateUserPublishedItemVoteResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\"\xab\x01\n&CMsgCREGetUserPublishedItemVoteDetails\x12S\n\x12published_file_ids\x18\x01 \x03(\x0b\x32\x37.CMsgCREGetUserPublishedItemVoteDetails.PublishedFileId\x1a,\n\x0fPublishedFileId\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\"\xea\x01\n.CMsgCREGetUserPublishedItemVoteDetailsResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x62\n\x16user_item_vote_details\x18\x02 \x03(\x0b\x32\x42.CMsgCREGetUserPublishedItemVoteDetailsResponse.UserItemVoteDetail\x1a@\n\x12UserItemVoteDetail\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\x12\x0f\n\x04vote\x18\x02 \x01(\x05:\x01\x30\"\xb9\x01\n\x18\x43MsgGameServerPingSample\x12\r\n\x05my_ip\x18\x01 \x01(\x07\x12\x11\n\tgs_app_id\x18\x02 \x01(\x05\x12\x34\n\ngs_samples\x18\x03 \x03(\x0b\x32 .CMsgGameServerPingSample.Sample\x1a\x45\n\x06Sample\x12\n\n\x02ip\x18\x01 \x01(\x07\x12\x13\n\x0b\x61vg_ping_ms\x18\x02 \x01(\r\x12\x1a\n\x12stddev_ping_ms_x10\x18\x03 \x01(\r\"*\n\x16\x43MsgFSGetFollowerCount\x12\x10\n\x08steam_id\x18\x01 \x01(\x06\"F\n\x1e\x43MsgFSGetFollowerCountResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x10\n\x05\x63ount\x18\x02 \x01(\x05:\x01\x30\"(\n\x14\x43MsgFSGetIsFollowing\x12\x10\n\x08steam_id\x18\x01 \x01(\x06\"O\n\x1c\x43MsgFSGetIsFollowingResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x1b\n\x0cis_following\x18\x02 \x01(\x08:\x05\x66\x61lse\"3\n\x1c\x43MsgFSEnumerateFollowingList\x12\x13\n\x0bstart_index\x18\x01 \x01(\r\"d\n$CMsgFSEnumerateFollowingListResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x15\n\rtotal_results\x18\x02 \x01(\x05\x12\x11\n\tsteam_ids\x18\x03 \x03(\x06\"0\n\x1f\x43MsgDPGetNumberOfCurrentPlayers\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\"S\n\'CMsgDPGetNumberOfCurrentPlayersResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x14\n\x0cplayer_count\x18\x02 \x01(\x05\"a\n#CMsgClientFriendUserStatusPublished\x12\x16\n\x0e\x66riend_steamid\x18\x01 \x01(\x06\x12\r\n\x05\x61ppid\x18\x02 \x01(\r\x12\x13\n\x0bstatus_text\x18\x03 \x01(\t\"h\n\x1d\x43MsgClientServiceMethodLegacy\x12\x13\n\x0bmethod_name\x18\x01 \x01(\t\x12\x19\n\x11serialized_method\x18\x02 \x01(\x0c\x12\x17\n\x0fis_notification\x18\x03 \x01(\x08\"`\n%CMsgClientServiceMethodLegacyResponse\x12\x13\n\x0bmethod_name\x18\x01 \x01(\t\x12\"\n\x1aserialized_method_response\x18\x02 \x01(\x0c\"5\n\x10\x43MsgClientUIMode\x12\x0e\n\x06uimode\x18\x01 \x01(\r\x12\x11\n\tchat_mode\x18\x02 \x01(\r\"<\n&CMsgClientVanityURLChangedNotification\x12\x12\n\nvanity_url\x18\x01 \x01(\t\"y\n%CMsgClientAuthorizeLocalDeviceRequest\x12\x1a\n\x12\x64\x65vice_description\x18\x01 \x01(\t\x12\x18\n\x10owner_account_id\x18\x02 \x01(\r\x12\x1a\n\x12local_device_token\x18\x03 \x01(\x04\"k\n\x1e\x43MsgClientAuthorizeLocalDevice\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x18\n\x10owner_account_id\x18\x02 \x01(\r\x12\x1b\n\x13\x61uthed_device_token\x18\x03 \x01(\x04\"v\n*CMsgClientAuthorizeLocalDeviceNotification\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x18\n\x10owner_account_id\x18\x02 \x01(\r\x12\x1a\n\x12local_device_token\x18\x03 \x01(\x04\"n\n\"CMsgClientDeauthorizeDeviceRequest\x12\"\n\x1a\x64\x65\x61uthorization_account_id\x18\x01 \x01(\r\x12$\n\x1c\x64\x65\x61uthorization_device_token\x18\x02 \x01(\x04\"U\n\x1b\x43MsgClientDeauthorizeDevice\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\"\n\x1a\x64\x65\x61uthorization_account_id\x18\x02 \x01(\r\"\xd1\x01\n&CMsgClientUseLocalDeviceAuthorizations\x12 \n\x18\x61uthorization_account_id\x18\x01 \x03(\r\x12J\n\rdevice_tokens\x18\x02 \x03(\x0b\x32\x33.CMsgClientUseLocalDeviceAuthorizations.DeviceToken\x1a\x39\n\x0b\x44\x65viceToken\x12\x18\n\x10owner_account_id\x18\x01 \x01(\r\x12\x10\n\x08token_id\x18\x02 \x01(\x04\" \n\x1e\x43MsgClientGetAuthorizedDevices\"\xad\x02\n&CMsgClientGetAuthorizedDevicesResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12S\n\x11\x61uthorized_device\x18\x02 \x03(\x0b\x32\x38.CMsgClientGetAuthorizedDevicesResponse.AuthorizedDevice\x1a\x99\x01\n\x10\x41uthorizedDevice\x12\x19\n\x11\x61uth_device_token\x18\x01 \x01(\x04\x12\x13\n\x0b\x64\x65vice_name\x18\x02 \x01(\t\x12\x18\n\x10last_access_time\x18\x03 \x01(\r\x12\x13\n\x0b\x62orrower_id\x18\x04 \x01(\r\x12\x12\n\nis_pending\x18\x05 \x01(\x08\x12\x12\n\napp_played\x18\x06 \x01(\r\"\xc2\x01\n!CMsgClientSharedLibraryLockStatus\x12H\n\x0elocked_library\x18\x01 \x03(\x0b\x32\x30.CMsgClientSharedLibraryLockStatus.LockedLibrary\x12\x1d\n\x15own_library_locked_by\x18\x02 \x01(\r\x1a\x34\n\rLockedLibrary\x12\x10\n\x08owner_id\x18\x01 \x01(\r\x12\x11\n\tlocked_by\x18\x02 \x01(\r\"\xa7\x01\n\"CMsgClientSharedLibraryStopPlaying\x12\x14\n\x0cseconds_left\x18\x01 \x01(\x05\x12>\n\tstop_apps\x18\x02 \x03(\x0b\x32+.CMsgClientSharedLibraryStopPlaying.StopApp\x1a+\n\x07StopApp\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x10\n\x08owner_id\x18\x02 \x01(\r\"\xf1\x01\n\x15\x43MsgClientServiceCall\x12\x15\n\rsysid_routing\x18\x01 \x01(\x0c\x12\x13\n\x0b\x63\x61ll_handle\x18\x02 \x01(\r\x12\x12\n\nmodule_crc\x18\x03 \x01(\r\x12\x13\n\x0bmodule_hash\x18\x04 \x01(\x0c\x12\x13\n\x0b\x66unction_id\x18\x05 \x01(\r\x12\x16\n\x0e\x63ub_output_max\x18\x06 \x01(\r\x12\r\n\x05\x66lags\x18\x07 \x01(\r\x12\x15\n\rcallparameter\x18\x08 \x01(\x0c\x12\x11\n\tping_only\x18\t \x01(\x08\x12\x1d\n\x15max_outstanding_calls\x18\n \x01(\r\"Z\n\x17\x43MsgClientServiceModule\x12\x12\n\nmodule_crc\x18\x01 \x01(\r\x12\x13\n\x0bmodule_hash\x18\x02 \x01(\x0c\x12\x16\n\x0emodule_content\x18\x03 \x01(\x0c\"\xb8\x04\n\x1d\x43MsgClientServiceCallResponse\x12\x15\n\rsysid_routing\x18\x01 \x01(\x0c\x12\x13\n\x0b\x63\x61ll_handle\x18\x02 \x01(\r\x12\x12\n\nmodule_crc\x18\x03 \x01(\r\x12\x13\n\x0bmodule_hash\x18\x04 \x01(\x0c\x12\x13\n\x0b\x65\x63\x61llresult\x18\x05 \x01(\r\x12\x16\n\x0eresult_content\x18\x06 \x01(\x0c\x12\x17\n\x0fos_version_info\x18\x07 \x01(\x0c\x12\x13\n\x0bsystem_info\x18\x08 \x01(\x0c\x12\x14\n\x0cload_address\x18\t \x01(\x06\x12\x18\n\x10\x65xception_record\x18\n \x01(\x0c\x12 \n\x18portable_os_version_info\x18\x0b \x01(\x0c\x12\x1c\n\x14portable_system_info\x18\x0c \x01(\x0c\x12\x15\n\rwas_converted\x18\r \x01(\x08\x12\x17\n\x0finternal_result\x18\x0e \x01(\r\x12\x15\n\rcurrent_count\x18\x0f \x01(\r\x12\x18\n\x10last_call_handle\x18\x10 \x01(\r\x12\x1c\n\x14last_call_module_crc\x18\x11 \x01(\r\x12\x1f\n\x17last_call_sysid_routing\x18\x12 \x01(\x0c\x12\x18\n\x10last_ecallresult\x18\x13 \x01(\r\x12\x1c\n\x14last_callissue_delta\x18\x14 \x01(\r\x12\x1f\n\x17last_callcomplete_delta\x18\x15 \x01(\r\"\x17\n\x15\x43MsgAMUnlockStreaming\"K\n\x1d\x43MsgAMUnlockStreamingResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x16\n\x0e\x65ncryption_key\x18\x02 \x01(\x0c\"\x12\n\x10\x43MsgAMUnlockHEVC\".\n\x18\x43MsgAMUnlockHEVCResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\"M\n\x1d\x43MsgClientPlayingSessionState\x12\x17\n\x0fplaying_blocked\x18\x02 \x01(\x08\x12\x13\n\x0bplaying_app\x18\x03 \x01(\r\"6\n\x1c\x43MsgClientKickPlayingSession\x12\x16\n\x0eonly_stop_game\x18\x01 \x01(\x08\"v\n\x1f\x43MsgClientVoiceCallPreAuthorize\x12\x16\n\x0e\x63\x61ller_steamid\x18\x01 \x01(\x06\x12\x18\n\x10receiver_steamid\x18\x02 \x01(\x06\x12\x11\n\tcaller_id\x18\x03 \x01(\x05\x12\x0e\n\x06hangup\x18\x04 \x01(\x08\"\x82\x01\n\'CMsgClientVoiceCallPreAuthorizeResponse\x12\x16\n\x0e\x63\x61ller_steamid\x18\x01 \x01(\x06\x12\x18\n\x10receiver_steamid\x18\x02 \x01(\x06\x12\x12\n\x07\x65result\x18\x03 \x01(\x05:\x01\x32\x12\x11\n\tcaller_id\x18\x04 \x01(\x05\"B\n\x1c\x43MsgBadgeCraftedNotification\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x13\n\x0b\x62\x61\x64ge_level\x18\x02 \x01(\rB\x05H\x01\x90\x01\x00')
   ,
   dependencies=[steammessages__base__pb2.DESCRIPTOR,])
 
@@ -3410,6 +3410,13 @@ _CMSGCLIENTCHECKAPPBETAPASSWORD = _descriptor.Descriptor(
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='language', full_name='CMsgClientCheckAppBetaPassword.language', index=2,
+      number=3, type=5, cpp_type=1, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -3423,7 +3430,7 @@ _CMSGCLIENTCHECKAPPBETAPASSWORD = _descriptor.Descriptor(
   oneofs=[
   ],
   serialized_start=8887,
-  serialized_end=8957,
+  serialized_end=8975,
 )
 
 
@@ -3448,6 +3455,13 @@ _CMSGCLIENTCHECKAPPBETAPASSWORDRESPONSE_BETAPASSWORD = _descriptor.Descriptor(
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='betadescription', full_name='CMsgClientCheckAppBetaPasswordResponse.BetaPassword.betadescription', index=2,
+      number=3, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -3460,8 +3474,8 @@ _CMSGCLIENTCHECKAPPBETAPASSWORDRESPONSE_BETAPASSWORD = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9099,
-  serialized_end=9153,
+  serialized_start=9117,
+  serialized_end=9196,
 )
 
 _CMSGCLIENTCHECKAPPBETAPASSWORDRESPONSE = _descriptor.Descriptor(
@@ -3497,8 +3511,8 @@ _CMSGCLIENTCHECKAPPBETAPASSWORDRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8960,
-  serialized_end=9153,
+  serialized_start=8978,
+  serialized_end=9196,
 )
 
 
@@ -3675,8 +3689,8 @@ _CMSGCLIENTUPDATEAPPJOBREPORT = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9156,
-  serialized_end=9730,
+  serialized_start=9199,
+  serialized_end=9773,
 )
 
 
@@ -3748,8 +3762,8 @@ _CMSGCLIENTDPCONTENTSTATSREPORT = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9733,
-  serialized_end=9936,
+  serialized_start=9776,
+  serialized_end=9979,
 )
 
 
@@ -3793,8 +3807,8 @@ _CMSGCLIENTGETCDNAUTHTOKENRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9938,
-  serialized_end=10033,
+  serialized_start=9981,
+  serialized_end=10076,
 )
 
 
@@ -3873,8 +3887,8 @@ _CMSGDOWNLOADRATESTATISTICS_STATSINFO = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10163,
-  serialized_end=10323,
+  serialized_start=10227,
+  serialized_end=10387,
 )
 
 _CMSGDOWNLOADRATESTATISTICS = _descriptor.Descriptor(
@@ -3905,6 +3919,13 @@ _CMSGDOWNLOADRATESTATISTICS = _descriptor.Descriptor(
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='steam_realm', full_name='CMsgDownloadRateStatistics.steam_realm', index=3,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -3917,8 +3938,8 @@ _CMSGDOWNLOADRATESTATISTICS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10036,
-  serialized_end=10323,
+  serialized_start=10079,
+  serialized_end=10387,
 )
 
 
@@ -3955,8 +3976,8 @@ _CMSGCLIENTREQUESTACCOUNTDATA = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10325,
-  serialized_end=10397,
+  serialized_start=10389,
+  serialized_end=10461,
 )
 
 
@@ -4028,8 +4049,8 @@ _CMSGCLIENTREQUESTACCOUNTDATARESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10400,
-  serialized_end=10615,
+  serialized_start=10464,
+  serialized_end=10679,
 )
 
 
@@ -4087,8 +4108,8 @@ _CMSGCLIENTUGSGETGLOBALSTATS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10618,
-  serialized_end=10771,
+  serialized_start=10682,
+  serialized_end=10835,
 )
 
 
@@ -4125,8 +4146,8 @@ _CMSGCLIENTUGSGETGLOBALSTATSRESPONSE_DAY_STAT = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11014,
-  serialized_end=11051,
+  serialized_start=11078,
+  serialized_end=11115,
 )
 
 _CMSGCLIENTUGSGETGLOBALSTATSRESPONSE_DAY = _descriptor.Descriptor(
@@ -4162,8 +4183,8 @@ _CMSGCLIENTUGSGETGLOBALSTATSRESPONSE_DAY = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10929,
-  serialized_end=11051,
+  serialized_start=10993,
+  serialized_end=11115,
 )
 
 _CMSGCLIENTUGSGETGLOBALSTATSRESPONSE = _descriptor.Descriptor(
@@ -4213,8 +4234,8 @@ _CMSGCLIENTUGSGETGLOBALSTATSRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10774,
-  serialized_end=11051,
+  serialized_start=10838,
+  serialized_end=11115,
 )
 
 
@@ -4244,8 +4265,8 @@ _CMSGGAMESERVERDATA_PLAYER = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11548,
-  serialized_end=11574,
+  serialized_start=11640,
+  serialized_end=11666,
 )
 
 _CMSGGAMESERVERDATA = _descriptor.Descriptor(
@@ -4256,15 +4277,15 @@ _CMSGGAMESERVERDATA = _descriptor.Descriptor(
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='steam_id_gs', full_name='CMsgGameServerData.steam_id_gs', index=0,
-      number=1, type=6, cpp_type=4, label=1,
+      name='revision', full_name='CMsgGameServerData.revision', index=0,
+      number=24, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='deprecated_ip', full_name='CMsgGameServerData.deprecated_ip', index=1,
-      number=2, type=13, cpp_type=3, label=1,
+      name='steam_id_gs', full_name='CMsgGameServerData.steam_id_gs', index=1,
+      number=1, type=6, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
@@ -4284,133 +4305,147 @@ _CMSGGAMESERVERDATA = _descriptor.Descriptor(
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='sourcetv_port', full_name='CMsgGameServerData.sourcetv_port', index=4,
+      name='spectator_port', full_name='CMsgGameServerData.spectator_port', index=4,
       number=5, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='name', full_name='CMsgGameServerData.name', index=5,
+      name='server_name', full_name='CMsgGameServerData.server_name', index=5,
       number=22, type=9, cpp_type=9, label=1,
       has_default_value=False, default_value=_b("").decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='game_ip_address', full_name='CMsgGameServerData.game_ip_address', index=6,
-      number=23, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
+      name='game_description', full_name='CMsgGameServerData.game_description', index=6,
+      number=29, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='spectator_server_name', full_name='CMsgGameServerData.spectator_server_name', index=7,
+      number=27, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='fake_ip', full_name='CMsgGameServerData.fake_ip', index=8,
+      number=28, type=7, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='app_id', full_name='CMsgGameServerData.app_id', index=7,
+      name='sdr_login', full_name='CMsgGameServerData.sdr_login', index=9,
+      number=26, type=12, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b(""),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='app_id', full_name='CMsgGameServerData.app_id', index=10,
       number=6, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='gamedir', full_name='CMsgGameServerData.gamedir', index=8,
+      name='gamedir', full_name='CMsgGameServerData.gamedir', index=11,
       number=7, type=9, cpp_type=9, label=1,
       has_default_value=False, default_value=_b("").decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='version', full_name='CMsgGameServerData.version', index=9,
+      name='version', full_name='CMsgGameServerData.version', index=12,
       number=8, type=9, cpp_type=9, label=1,
       has_default_value=False, default_value=_b("").decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='product', full_name='CMsgGameServerData.product', index=10,
+      name='product', full_name='CMsgGameServerData.product', index=13,
       number=9, type=9, cpp_type=9, label=1,
       has_default_value=False, default_value=_b("").decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='region', full_name='CMsgGameServerData.region', index=11,
+      name='region', full_name='CMsgGameServerData.region', index=14,
       number=10, type=9, cpp_type=9, label=1,
       has_default_value=False, default_value=_b("").decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='players', full_name='CMsgGameServerData.players', index=12,
+      name='players', full_name='CMsgGameServerData.players', index=15,
       number=11, type=11, cpp_type=10, label=3,
       has_default_value=False, default_value=[],
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='max_players', full_name='CMsgGameServerData.max_players', index=13,
+      name='max_players', full_name='CMsgGameServerData.max_players', index=16,
       number=12, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='bot_count', full_name='CMsgGameServerData.bot_count', index=14,
+      name='bot_count', full_name='CMsgGameServerData.bot_count', index=17,
       number=13, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='password', full_name='CMsgGameServerData.password', index=15,
+      name='password', full_name='CMsgGameServerData.password', index=18,
       number=14, type=8, cpp_type=7, label=1,
       has_default_value=False, default_value=False,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='secure', full_name='CMsgGameServerData.secure', index=16,
+      name='secure', full_name='CMsgGameServerData.secure', index=19,
       number=15, type=8, cpp_type=7, label=1,
       has_default_value=False, default_value=False,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='dedicated', full_name='CMsgGameServerData.dedicated', index=17,
+      name='dedicated', full_name='CMsgGameServerData.dedicated', index=20,
       number=16, type=8, cpp_type=7, label=1,
       has_default_value=False, default_value=False,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='os', full_name='CMsgGameServerData.os', index=18,
+      name='os', full_name='CMsgGameServerData.os', index=21,
       number=17, type=9, cpp_type=9, label=1,
       has_default_value=False, default_value=_b("").decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='game_data', full_name='CMsgGameServerData.game_data', index=19,
+      name='game_data', full_name='CMsgGameServerData.game_data', index=22,
       number=18, type=9, cpp_type=9, label=1,
       has_default_value=False, default_value=_b("").decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='game_data_version', full_name='CMsgGameServerData.game_data_version', index=20,
-      number=19, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='game_type', full_name='CMsgGameServerData.game_type', index=21,
+      name='game_type', full_name='CMsgGameServerData.game_type', index=23,
       number=20, type=9, cpp_type=9, label=1,
       has_default_value=False, default_value=_b("").decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='map', full_name='CMsgGameServerData.map', index=22,
+      name='map', full_name='CMsgGameServerData.map', index=24,
       number=21, type=9, cpp_type=9, label=1,
       has_default_value=False, default_value=_b("").decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
@@ -4428,8 +4463,8 @@ _CMSGGAMESERVERDATA = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11054,
-  serialized_end=11574,
+  serialized_start=11118,
+  serialized_end=11666,
 )
 
 
@@ -4441,33 +4476,19 @@ _CMSGGAMESERVERREMOVE = _descriptor.Descriptor(
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='steam_id', full_name='CMsgGameServerRemove.steam_id', index=0,
+      name='legacy_steam_id_gs', full_name='CMsgGameServerRemove.legacy_steam_id_gs', index=0,
       number=1, type=6, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='deprecated_ip', full_name='CMsgGameServerRemove.deprecated_ip', index=1,
-      number=2, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='query_port', full_name='CMsgGameServerRemove.query_port', index=2,
+      name='legacy_query_port', full_name='CMsgGameServerRemove.legacy_query_port', index=1,
       number=3, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='ip', full_name='CMsgGameServerRemove.ip', index=3,
-      number=4, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -4480,8 +4501,8 @@ _CMSGGAMESERVERREMOVE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11576,
-  serialized_end=11687,
+  serialized_start=11668,
+  serialized_end=11745,
 )
 
 
@@ -4539,8 +4560,8 @@ _CMSGCLIENTGMSSERVERQUERY = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11690,
-  serialized_end=11820,
+  serialized_start=11748,
+  serialized_end=11878,
 )
 
 
@@ -4559,7 +4580,7 @@ _CMSGGMSCLIENTSERVERQUERYRESPONSE_SERVER = _descriptor.Descriptor(
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='server_port', full_name='CMsgGMSClientServerQueryResponse.Server.server_port', index=1,
+      name='query_port', full_name='CMsgGMSClientServerQueryResponse.Server.query_port', index=1,
       number=2, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
@@ -4591,8 +4612,8 @@ _CMSGGMSCLIENTSERVERQUERYRESPONSE_SERVER = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11933,
-  serialized_end=12049,
+  serialized_start=11991,
+  serialized_end=12106,
 )
 
 _CMSGGMSCLIENTSERVERQUERYRESPONSE = _descriptor.Descriptor(
@@ -4628,8 +4649,8 @@ _CMSGGMSCLIENTSERVERQUERYRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11823,
-  serialized_end=12049,
+  serialized_start=11881,
+  serialized_end=12106,
 )
 
 
@@ -4673,8 +4694,8 @@ _CMSGGAMESERVEROUTOFDATE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12051,
-  serialized_end=12130,
+  serialized_start=12108,
+  serialized_end=12187,
 )
 
 
@@ -4704,8 +4725,8 @@ _CMSGCLIENTREDEEMGUESTPASS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12132,
-  serialized_end=12182,
+  serialized_start=12189,
+  serialized_end=12239,
 )
 
 
@@ -4749,8 +4770,8 @@ _CMSGCLIENTREDEEMGUESTPASSRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12184,
-  serialized_end=12283,
+  serialized_start=12241,
+  serialized_end=12340,
 )
 
 
@@ -4780,8 +4801,8 @@ _CMSGCLIENTGETCLANACTIVITYCOUNTS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12285,
-  serialized_end=12341,
+  serialized_start=12342,
+  serialized_end=12398,
 )
 
 
@@ -4811,8 +4832,8 @@ _CMSGCLIENTGETCLANACTIVITYCOUNTSRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12343,
-  serialized_end=12404,
+  serialized_start=12400,
+  serialized_end=12461,
 )
 
 
@@ -4870,8 +4891,8 @@ _CMSGCLIENTOGSREPORTSTRING = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12406,
-  serialized_end=12527,
+  serialized_start=12463,
+  serialized_end=12584,
 )
 
 
@@ -4915,8 +4936,8 @@ _CMSGCLIENTOGSREPORTBUG = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12529,
-  serialized_end=12609,
+  serialized_start=12586,
+  serialized_end=12666,
 )
 
 
@@ -4946,8 +4967,8 @@ _CMSGGSASSOCIATEWITHCLAN = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12611,
-  serialized_end=12659,
+  serialized_start=12668,
+  serialized_end=12716,
 )
 
 
@@ -4984,8 +5005,8 @@ _CMSGGSASSOCIATEWITHCLANRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12661,
-  serialized_end=12737,
+  serialized_start=12718,
+  serialized_end=12794,
 )
 
 
@@ -5015,8 +5036,8 @@ _CMSGGSCOMPUTENEWPLAYERCOMPATIBILITY = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12739,
-  serialized_end=12804,
+  serialized_start=12796,
+  serialized_end=12861,
 )
 
 
@@ -5081,8 +5102,8 @@ _CMSGGSCOMPUTENEWPLAYERCOMPATIBILITYRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12807,
-  serialized_end=13014,
+  serialized_start=12864,
+  serialized_end=13071,
 )
 
 
@@ -5105,8 +5126,8 @@ _CMSGCLIENTSENTLOGS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=13016,
-  serialized_end=13036,
+  serialized_start=13073,
+  serialized_end=13093,
 )
 
 
@@ -5171,8 +5192,8 @@ _CMSGGCCLIENT = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=13038,
-  serialized_end=13146,
+  serialized_start=13095,
+  serialized_end=13203,
 )
 
 
@@ -5202,8 +5223,8 @@ _CMSGCLIENTREQUESTFREELICENSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=13148,
-  serialized_end=13194,
+  serialized_start=13205,
+  serialized_end=13251,
 )
 
 
@@ -5247,8 +5268,8 @@ _CMSGCLIENTREQUESTFREELICENSERESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=13196,
-  serialized_end=13306,
+  serialized_start=13253,
+  serialized_end=13363,
 )
 
 
@@ -5327,8 +5348,8 @@ _CMSGDRMDOWNLOADREQUESTWITHCRASHDATA = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=13309,
-  serialized_end=13520,
+  serialized_start=13366,
+  serialized_end=13577,
 )
 
 
@@ -5407,8 +5428,8 @@ _CMSGDRMDOWNLOADRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=13523,
-  serialized_end=13742,
+  serialized_start=13580,
+  serialized_end=13799,
 )
 
 
@@ -5487,8 +5508,8 @@ _CMSGDRMFINALRESULT = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=13745,
-  serialized_end=13960,
+  serialized_start=13802,
+  serialized_end=14017,
 )
 
 
@@ -5518,8 +5539,8 @@ _CMSGCLIENTDPCHECKSPECIALSURVEY = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=13962,
-  serialized_end=14013,
+  serialized_start=14019,
+  serialized_end=14070,
 )
 
 
@@ -5584,8 +5605,8 @@ _CMSGCLIENTDPCHECKSPECIALSURVEYRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=14016,
-  serialized_end=14166,
+  serialized_start=14073,
+  serialized_end=14223,
 )
 
 
@@ -5622,8 +5643,8 @@ _CMSGCLIENTDPSENDSPECIALSURVEYRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=14168,
-  serialized_end=14240,
+  serialized_start=14225,
+  serialized_end=14297,
 )
 
 
@@ -5660,8 +5681,8 @@ _CMSGCLIENTDPSENDSPECIALSURVEYRESPONSEREPLY = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=14242,
-  serialized_end=14321,
+  serialized_start=14299,
+  serialized_end=14378,
 )
 
 
@@ -5698,8 +5719,8 @@ _CMSGCLIENTREQUESTFORGOTTENPASSWORDEMAIL = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=14323,
-  serialized_end=14410,
+  serialized_start=14380,
+  serialized_end=14467,
 )
 
 
@@ -5736,8 +5757,8 @@ _CMSGCLIENTREQUESTFORGOTTENPASSWORDEMAILRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=14412,
-  serialized_end=14507,
+  serialized_start=14469,
+  serialized_end=14564,
 )
 
 
@@ -5802,8 +5823,8 @@ _CMSGCLIENTITEMANNOUNCEMENTS_UNSEENITEM = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=14629,
-  serialized_end=14756,
+  serialized_start=14686,
+  serialized_end=14813,
 )
 
 _CMSGCLIENTITEMANNOUNCEMENTS = _descriptor.Descriptor(
@@ -5839,8 +5860,8 @@ _CMSGCLIENTITEMANNOUNCEMENTS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=14510,
-  serialized_end=14756,
+  serialized_start=14567,
+  serialized_end=14813,
 )
 
 
@@ -5863,8 +5884,8 @@ _CMSGCLIENTREQUESTITEMANNOUNCEMENTS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=14758,
-  serialized_end=14794,
+  serialized_start=14815,
+  serialized_end=14851,
 )
 
 
@@ -5901,8 +5922,8 @@ _CMSGCLIENTUSERNOTIFICATIONS_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=14894,
-  serialized_end=14955,
+  serialized_start=14951,
+  serialized_end=15012,
 )
 
 _CMSGCLIENTUSERNOTIFICATIONS = _descriptor.Descriptor(
@@ -5931,8 +5952,8 @@ _CMSGCLIENTUSERNOTIFICATIONS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=14797,
-  serialized_end=14955,
+  serialized_start=14854,
+  serialized_end=15012,
 )
 
 
@@ -5976,8 +5997,8 @@ _CMSGCLIENTCOMMENTNOTIFICATIONS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=14958,
-  serialized_end=15094,
+  serialized_start=15015,
+  serialized_end=15151,
 )
 
 
@@ -6000,8 +6021,8 @@ _CMSGCLIENTREQUESTCOMMENTNOTIFICATIONS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=15096,
-  serialized_end=15135,
+  serialized_start=15153,
+  serialized_end=15192,
 )
 
 
@@ -6038,8 +6059,8 @@ _CMSGCLIENTOFFLINEMESSAGENOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=15137,
-  serialized_end=15240,
+  serialized_start=15194,
+  serialized_end=15297,
 )
 
 
@@ -6062,8 +6083,8 @@ _CMSGCLIENTREQUESTOFFLINEMESSAGECOUNT = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=15242,
-  serialized_end=15280,
+  serialized_start=15299,
+  serialized_end=15337,
 )
 
 
@@ -6093,8 +6114,8 @@ _CMSGCLIENTCHATGETFRIENDMESSAGEHISTORY = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=15282,
-  serialized_end=15338,
+  serialized_start=15339,
+  serialized_end=15395,
 )
 
 
@@ -6145,8 +6166,8 @@ _CMSGCLIENTCHATGETFRIENDMESSAGEHISTORYRESPONSE_FRIENDMESSAGE = _descriptor.Descr
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=15504,
-  serialized_end=15590,
+  serialized_start=15561,
+  serialized_end=15647,
 )
 
 _CMSGCLIENTCHATGETFRIENDMESSAGEHISTORYRESPONSE = _descriptor.Descriptor(
@@ -6189,8 +6210,8 @@ _CMSGCLIENTCHATGETFRIENDMESSAGEHISTORYRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=15341,
-  serialized_end=15590,
+  serialized_start=15398,
+  serialized_end=15647,
 )
 
 
@@ -6213,8 +6234,8 @@ _CMSGCLIENTCHATGETFRIENDMESSAGEHISTORYFOROFFLINEMESSAGES = _descriptor.Descripto
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=15592,
-  serialized_end=15649,
+  serialized_start=15649,
+  serialized_end=15706,
 )
 
 
@@ -6244,8 +6265,8 @@ _CMSGCLIENTFSGETFRIENDSSTEAMLEVELS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=15651,
-  serialized_end=15706,
+  serialized_start=15708,
+  serialized_end=15763,
 )
 
 
@@ -6282,8 +6303,8 @@ _CMSGCLIENTFSGETFRIENDSSTEAMLEVELSRESPONSE_FRIEND = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=15822,
-  serialized_end=15864,
+  serialized_start=15879,
+  serialized_end=15921,
 )
 
 _CMSGCLIENTFSGETFRIENDSSTEAMLEVELSRESPONSE = _descriptor.Descriptor(
@@ -6312,8 +6333,8 @@ _CMSGCLIENTFSGETFRIENDSSTEAMLEVELSRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=15709,
-  serialized_end=15864,
+  serialized_start=15766,
+  serialized_end=15921,
 )
 
 
@@ -6378,8 +6399,8 @@ _CMSGCLIENTEMAILADDRINFO = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=15867,
-  serialized_end=16102,
+  serialized_start=15924,
+  serialized_end=16159,
 )
 
 
@@ -6439,8 +6460,8 @@ _CMSGCREITEMVOTESUMMARY = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=16105,
-  serialized_end=16244,
+  serialized_start=16162,
+  serialized_end=16301,
 )
 
 
@@ -6498,8 +6519,8 @@ _CMSGCREITEMVOTESUMMARYRESPONSE_ITEMVOTESUMMARY = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=16379,
-  serialized_end=16497,
+  serialized_start=16436,
+  serialized_end=16554,
 )
 
 _CMSGCREITEMVOTESUMMARYRESPONSE = _descriptor.Descriptor(
@@ -6535,8 +6556,8 @@ _CMSGCREITEMVOTESUMMARYRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=16247,
-  serialized_end=16497,
+  serialized_start=16304,
+  serialized_end=16554,
 )
 
 
@@ -6573,8 +6594,8 @@ _CMSGCREUPDATEUSERPUBLISHEDITEMVOTE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=16499,
-  serialized_end=16579,
+  serialized_start=16556,
+  serialized_end=16636,
 )
 
 
@@ -6604,8 +6625,8 @@ _CMSGCREUPDATEUSERPUBLISHEDITEMVOTERESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=16581,
-  serialized_end=16645,
+  serialized_start=16638,
+  serialized_end=16702,
 )
 
 
@@ -6665,8 +6686,8 @@ _CMSGCREGETUSERPUBLISHEDITEMVOTEDETAILS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=16648,
-  serialized_end=16819,
+  serialized_start=16705,
+  serialized_end=16876,
 )
 
 
@@ -6703,8 +6724,8 @@ _CMSGCREGETUSERPUBLISHEDITEMVOTEDETAILSRESPONSE_USERITEMVOTEDETAIL = _descriptor
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=16992,
-  serialized_end=17056,
+  serialized_start=17049,
+  serialized_end=17113,
 )
 
 _CMSGCREGETUSERPUBLISHEDITEMVOTEDETAILSRESPONSE = _descriptor.Descriptor(
@@ -6740,8 +6761,8 @@ _CMSGCREGETUSERPUBLISHEDITEMVOTEDETAILSRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=16822,
-  serialized_end=17056,
+  serialized_start=16879,
+  serialized_end=17113,
 )
 
 
@@ -6785,8 +6806,8 @@ _CMSGGAMESERVERPINGSAMPLE_SAMPLE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17175,
-  serialized_end=17244,
+  serialized_start=17232,
+  serialized_end=17301,
 )
 
 _CMSGGAMESERVERPINGSAMPLE = _descriptor.Descriptor(
@@ -6829,8 +6850,8 @@ _CMSGGAMESERVERPINGSAMPLE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17059,
-  serialized_end=17244,
+  serialized_start=17116,
+  serialized_end=17301,
 )
 
 
@@ -6860,8 +6881,8 @@ _CMSGFSGETFOLLOWERCOUNT = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17246,
-  serialized_end=17288,
+  serialized_start=17303,
+  serialized_end=17345,
 )
 
 
@@ -6898,8 +6919,8 @@ _CMSGFSGETFOLLOWERCOUNTRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17290,
-  serialized_end=17360,
+  serialized_start=17347,
+  serialized_end=17417,
 )
 
 
@@ -6929,8 +6950,8 @@ _CMSGFSGETISFOLLOWING = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17362,
-  serialized_end=17402,
+  serialized_start=17419,
+  serialized_end=17459,
 )
 
 
@@ -6967,8 +6988,8 @@ _CMSGFSGETISFOLLOWINGRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17404,
-  serialized_end=17483,
+  serialized_start=17461,
+  serialized_end=17540,
 )
 
 
@@ -6998,8 +7019,8 @@ _CMSGFSENUMERATEFOLLOWINGLIST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17485,
-  serialized_end=17536,
+  serialized_start=17542,
+  serialized_end=17593,
 )
 
 
@@ -7043,8 +7064,8 @@ _CMSGFSENUMERATEFOLLOWINGLISTRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17538,
-  serialized_end=17638,
+  serialized_start=17595,
+  serialized_end=17695,
 )
 
 
@@ -7074,8 +7095,8 @@ _CMSGDPGETNUMBEROFCURRENTPLAYERS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17640,
-  serialized_end=17688,
+  serialized_start=17697,
+  serialized_end=17745,
 )
 
 
@@ -7112,8 +7133,8 @@ _CMSGDPGETNUMBEROFCURRENTPLAYERSRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17690,
-  serialized_end=17773,
+  serialized_start=17747,
+  serialized_end=17830,
 )
 
 
@@ -7157,8 +7178,8 @@ _CMSGCLIENTFRIENDUSERSTATUSPUBLISHED = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17775,
-  serialized_end=17872,
+  serialized_start=17832,
+  serialized_end=17929,
 )
 
 
@@ -7202,8 +7223,8 @@ _CMSGCLIENTSERVICEMETHODLEGACY = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17874,
-  serialized_end=17978,
+  serialized_start=17931,
+  serialized_end=18035,
 )
 
 
@@ -7240,8 +7261,8 @@ _CMSGCLIENTSERVICEMETHODLEGACYRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17980,
-  serialized_end=18076,
+  serialized_start=18037,
+  serialized_end=18133,
 )
 
 
@@ -7278,8 +7299,8 @@ _CMSGCLIENTUIMODE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=18078,
-  serialized_end=18131,
+  serialized_start=18135,
+  serialized_end=18188,
 )
 
 
@@ -7309,8 +7330,8 @@ _CMSGCLIENTVANITYURLCHANGEDNOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=18133,
-  serialized_end=18193,
+  serialized_start=18190,
+  serialized_end=18250,
 )
 
 
@@ -7354,8 +7375,8 @@ _CMSGCLIENTAUTHORIZELOCALDEVICEREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=18195,
-  serialized_end=18316,
+  serialized_start=18252,
+  serialized_end=18373,
 )
 
 
@@ -7399,8 +7420,8 @@ _CMSGCLIENTAUTHORIZELOCALDEVICE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=18318,
-  serialized_end=18425,
+  serialized_start=18375,
+  serialized_end=18482,
 )
 
 
@@ -7444,8 +7465,8 @@ _CMSGCLIENTAUTHORIZELOCALDEVICENOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=18427,
-  serialized_end=18545,
+  serialized_start=18484,
+  serialized_end=18602,
 )
 
 
@@ -7482,8 +7503,8 @@ _CMSGCLIENTDEAUTHORIZEDEVICEREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=18547,
-  serialized_end=18657,
+  serialized_start=18604,
+  serialized_end=18714,
 )
 
 
@@ -7520,8 +7541,8 @@ _CMSGCLIENTDEAUTHORIZEDEVICE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=18659,
-  serialized_end=18744,
+  serialized_start=18716,
+  serialized_end=18801,
 )
 
 
@@ -7558,8 +7579,8 @@ _CMSGCLIENTUSELOCALDEVICEAUTHORIZATIONS_DEVICETOKEN = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=18899,
-  serialized_end=18956,
+  serialized_start=18956,
+  serialized_end=19013,
 )
 
 _CMSGCLIENTUSELOCALDEVICEAUTHORIZATIONS = _descriptor.Descriptor(
@@ -7595,8 +7616,8 @@ _CMSGCLIENTUSELOCALDEVICEAUTHORIZATIONS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=18747,
-  serialized_end=18956,
+  serialized_start=18804,
+  serialized_end=19013,
 )
 
 
@@ -7619,8 +7640,8 @@ _CMSGCLIENTGETAUTHORIZEDDEVICES = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=18958,
-  serialized_end=18990,
+  serialized_start=19015,
+  serialized_end=19047,
 )
 
 
@@ -7685,8 +7706,8 @@ _CMSGCLIENTGETAUTHORIZEDDEVICESRESPONSE_AUTHORIZEDDEVICE = _descriptor.Descripto
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=19141,
-  serialized_end=19294,
+  serialized_start=19198,
+  serialized_end=19351,
 )
 
 _CMSGCLIENTGETAUTHORIZEDDEVICESRESPONSE = _descriptor.Descriptor(
@@ -7722,8 +7743,8 @@ _CMSGCLIENTGETAUTHORIZEDDEVICESRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=18993,
-  serialized_end=19294,
+  serialized_start=19050,
+  serialized_end=19351,
 )
 
 
@@ -7760,8 +7781,8 @@ _CMSGCLIENTSHAREDLIBRARYLOCKSTATUS_LOCKEDLIBRARY = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=19439,
-  serialized_end=19491,
+  serialized_start=19496,
+  serialized_end=19548,
 )
 
 _CMSGCLIENTSHAREDLIBRARYLOCKSTATUS = _descriptor.Descriptor(
@@ -7797,8 +7818,8 @@ _CMSGCLIENTSHAREDLIBRARYLOCKSTATUS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=19297,
-  serialized_end=19491,
+  serialized_start=19354,
+  serialized_end=19548,
 )
 
 
@@ -7835,8 +7856,8 @@ _CMSGCLIENTSHAREDLIBRARYSTOPPLAYING_STOPAPP = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=19618,
-  serialized_end=19661,
+  serialized_start=19675,
+  serialized_end=19718,
 )
 
 _CMSGCLIENTSHAREDLIBRARYSTOPPLAYING = _descriptor.Descriptor(
@@ -7872,8 +7893,8 @@ _CMSGCLIENTSHAREDLIBRARYSTOPPLAYING = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=19494,
-  serialized_end=19661,
+  serialized_start=19551,
+  serialized_end=19718,
 )
 
 
@@ -7966,8 +7987,8 @@ _CMSGCLIENTSERVICECALL = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=19664,
-  serialized_end=19905,
+  serialized_start=19721,
+  serialized_end=19962,
 )
 
 
@@ -8011,8 +8032,8 @@ _CMSGCLIENTSERVICEMODULE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=19907,
-  serialized_end=19997,
+  serialized_start=19964,
+  serialized_end=20054,
 )
 
 
@@ -8182,8 +8203,8 @@ _CMSGCLIENTSERVICECALLRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=20000,
-  serialized_end=20568,
+  serialized_start=20057,
+  serialized_end=20625,
 )
 
 
@@ -8206,8 +8227,8 @@ _CMSGAMUNLOCKSTREAMING = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=20570,
-  serialized_end=20593,
+  serialized_start=20627,
+  serialized_end=20650,
 )
 
 
@@ -8244,8 +8265,8 @@ _CMSGAMUNLOCKSTREAMINGRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=20595,
-  serialized_end=20670,
+  serialized_start=20652,
+  serialized_end=20727,
 )
 
 
@@ -8268,8 +8289,8 @@ _CMSGAMUNLOCKHEVC = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=20672,
-  serialized_end=20690,
+  serialized_start=20729,
+  serialized_end=20747,
 )
 
 
@@ -8299,8 +8320,8 @@ _CMSGAMUNLOCKHEVCRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=20692,
-  serialized_end=20738,
+  serialized_start=20749,
+  serialized_end=20795,
 )
 
 
@@ -8337,8 +8358,8 @@ _CMSGCLIENTPLAYINGSESSIONSTATE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=20740,
-  serialized_end=20817,
+  serialized_start=20797,
+  serialized_end=20874,
 )
 
 
@@ -8368,8 +8389,8 @@ _CMSGCLIENTKICKPLAYINGSESSION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=20819,
-  serialized_end=20873,
+  serialized_start=20876,
+  serialized_end=20930,
 )
 
 
@@ -8420,8 +8441,8 @@ _CMSGCLIENTVOICECALLPREAUTHORIZE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=20875,
-  serialized_end=20993,
+  serialized_start=20932,
+  serialized_end=21050,
 )
 
 
@@ -8472,8 +8493,8 @@ _CMSGCLIENTVOICECALLPREAUTHORIZERESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=20996,
-  serialized_end=21126,
+  serialized_start=21053,
+  serialized_end=21183,
 )
 
 
@@ -8510,8 +8531,8 @@ _CMSGBADGECRAFTEDNOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=21128,
-  serialized_end=21194,
+  serialized_start=21185,
+  serialized_end=21251,
 )
 
 _CMSGCLIENTUCMADDSCREENSHOT_TAG.containing_type = _CMSGCLIENTUCMADDSCREENSHOT
@@ -8547,9 +8568,7 @@ _CMSGCLIENTUGSGETGLOBALSTATSRESPONSE_DAY.fields_by_name['stats'].message_type =
 _CMSGCLIENTUGSGETGLOBALSTATSRESPONSE_DAY.containing_type = _CMSGCLIENTUGSGETGLOBALSTATSRESPONSE
 _CMSGCLIENTUGSGETGLOBALSTATSRESPONSE.fields_by_name['days'].message_type = _CMSGCLIENTUGSGETGLOBALSTATSRESPONSE_DAY
 _CMSGGAMESERVERDATA_PLAYER.containing_type = _CMSGGAMESERVERDATA
-_CMSGGAMESERVERDATA.fields_by_name['game_ip_address'].message_type = steammessages__base__pb2._CMSGIPADDRESS
 _CMSGGAMESERVERDATA.fields_by_name['players'].message_type = _CMSGGAMESERVERDATA_PLAYER
-_CMSGGAMESERVERREMOVE.fields_by_name['ip'].message_type = steammessages__base__pb2._CMSGIPADDRESS
 _CMSGGMSCLIENTSERVERQUERYRESPONSE_SERVER.fields_by_name['server_ip'].message_type = steammessages__base__pb2._CMSGIPADDRESS
 _CMSGGMSCLIENTSERVERQUERYRESPONSE_SERVER.containing_type = _CMSGGMSCLIENTSERVERQUERYRESPONSE
 _CMSGGMSCLIENTSERVERQUERYRESPONSE.fields_by_name['servers'].message_type = _CMSGGMSCLIENTSERVERQUERYRESPONSE_SERVER
diff --git a/steam/protobufs/steammessages_clientserver_friends_pb2.py b/steam/protobufs/steammessages_clientserver_friends_pb2.py
index 231d875..d015e4c 100644
--- a/steam/protobufs/steammessages_clientserver_friends_pb2.py
+++ b/steam/protobufs/steammessages_clientserver_friends_pb2.py
@@ -21,7 +21,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
   package='',
   syntax='proto2',
   serialized_options=_b('H\001\220\001\000'),
-  serialized_pb=_b('\n(steammessages_clientserver_friends.proto\x1a\x18steammessages_base.proto\"\x8a\x01\n\x13\x43MsgClientFriendMsg\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x17\n\x0f\x63hat_entry_type\x18\x02 \x01(\x05\x12\x0f\n\x07message\x18\x03 \x01(\x0c\x12 \n\x18rtime32_server_timestamp\x18\x04 \x01(\x07\x12\x16\n\x0e\x65\x63ho_to_sender\x18\x05 \x01(\x08\"\x9d\x01\n\x1b\x43MsgClientFriendMsgIncoming\x12\x14\n\x0csteamid_from\x18\x01 \x01(\x06\x12\x17\n\x0f\x63hat_entry_type\x18\x02 \x01(\x05\x12\x1c\n\x14\x66rom_limited_account\x18\x03 \x01(\x08\x12\x0f\n\x07message\x18\x04 \x01(\x0c\x12 \n\x18rtime32_server_timestamp\x18\x05 \x01(\x07\"R\n\x13\x43MsgClientAddFriend\x12\x16\n\x0esteamid_to_add\x18\x01 \x01(\x06\x12#\n\x1b\x61\x63\x63ountname_or_email_to_add\x18\x02 \x01(\t\"e\n\x1b\x43MsgClientAddFriendResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x16\n\x0esteam_id_added\x18\x02 \x01(\x06\x12\x1a\n\x12persona_name_added\x18\x03 \x01(\t\"*\n\x16\x43MsgClientRemoveFriend\x12\x10\n\x08\x66riendid\x18\x01 \x01(\x06\"6\n\x14\x43MsgClientHideFriend\x12\x10\n\x08\x66riendid\x18\x01 \x01(\x06\x12\x0c\n\x04hide\x18\x02 \x01(\x08\"\xea\x01\n\x15\x43MsgClientFriendsList\x12\x14\n\x0c\x62incremental\x18\x01 \x01(\x08\x12.\n\x07\x66riends\x18\x02 \x03(\x0b\x32\x1d.CMsgClientFriendsList.Friend\x12\x18\n\x10max_friend_count\x18\x03 \x01(\r\x12\x1b\n\x13\x61\x63tive_friend_count\x18\x04 \x01(\r\x12\x19\n\x11\x66riends_limit_hit\x18\x05 \x01(\x08\x1a\x39\n\x06\x46riend\x12\x12\n\nulfriendid\x18\x01 \x01(\x06\x12\x1b\n\x13\x65\x66riendrelationship\x18\x02 \x01(\r\"\xc5\x02\n\x1b\x43MsgClientFriendsGroupsList\x12\x10\n\x08\x62removal\x18\x01 \x01(\x08\x12\x14\n\x0c\x62incremental\x18\x02 \x01(\x08\x12>\n\x0c\x66riendGroups\x18\x03 \x03(\x0b\x32(.CMsgClientFriendsGroupsList.FriendGroup\x12H\n\x0bmemberships\x18\x04 \x03(\x0b\x32\x33.CMsgClientFriendsGroupsList.FriendGroupsMembership\x1a\x35\n\x0b\x46riendGroup\x12\x10\n\x08nGroupID\x18\x01 \x01(\x05\x12\x14\n\x0cstrGroupName\x18\x02 \x01(\t\x1a=\n\x16\x46riendGroupsMembership\x12\x11\n\tulSteamID\x18\x01 \x01(\x06\x12\x10\n\x08nGroupID\x18\x02 \x01(\x05\"\xba\x01\n\x1c\x43MsgClientPlayerNicknameList\x12\x0f\n\x07removal\x18\x01 \x01(\x08\x12\x13\n\x0bincremental\x18\x02 \x01(\x08\x12?\n\tnicknames\x18\x03 \x03(\x0b\x32,.CMsgClientPlayerNicknameList.PlayerNickname\x1a\x33\n\x0ePlayerNickname\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x10\n\x08nickname\x18\x03 \x01(\t\"@\n\x1b\x43MsgClientSetPlayerNickname\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x10\n\x08nickname\x18\x02 \x01(\t\"6\n#CMsgClientSetPlayerNicknameResponse\x12\x0f\n\x07\x65result\x18\x01 \x01(\r\"O\n\x1b\x43MsgClientRequestFriendData\x12\x1f\n\x17persona_state_requested\x18\x01 \x01(\r\x12\x0f\n\x07\x66riends\x18\x02 \x03(\x06\"\xef\x01\n\x16\x43MsgClientChangeStatus\x12\x15\n\rpersona_state\x18\x01 \x01(\r\x12\x13\n\x0bplayer_name\x18\x02 \x01(\t\x12\x1e\n\x16is_auto_generated_name\x18\x03 \x01(\x08\x12\x15\n\rhigh_priority\x18\x04 \x01(\x08\x12\x1b\n\x13persona_set_by_user\x18\x05 \x01(\x08\x12\x1e\n\x13persona_state_flags\x18\x06 \x01(\r:\x01\x30\x12\x1d\n\x15need_persona_response\x18\x07 \x01(\x08\x12\x16\n\x0eis_client_idle\x18\x08 \x01(\x08\"@\n\x19\x43MsgPersonaChangeResponse\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x13\n\x0bplayer_name\x18\x02 \x01(\t\"\xc0\x07\n\x16\x43MsgClientPersonaState\x12\x14\n\x0cstatus_flags\x18\x01 \x01(\r\x12/\n\x07\x66riends\x18\x02 \x03(\x0b\x32\x1e.CMsgClientPersonaState.Friend\x1a\xde\x06\n\x06\x46riend\x12\x10\n\x08\x66riendid\x18\x01 \x01(\x06\x12\x15\n\rpersona_state\x18\x02 \x01(\r\x12\x1a\n\x12game_played_app_id\x18\x03 \x01(\r\x12\x16\n\x0egame_server_ip\x18\x04 \x01(\r\x12\x18\n\x10game_server_port\x18\x05 \x01(\r\x12\x1b\n\x13persona_state_flags\x18\x06 \x01(\r\x12 \n\x18online_session_instances\x18\x07 \x01(\r\x12\x1b\n\x13persona_set_by_user\x18\n \x01(\x08\x12\x13\n\x0bplayer_name\x18\x0f \x01(\t\x12\x12\n\nquery_port\x18\x14 \x01(\r\x12\x16\n\x0esteamid_source\x18\x19 \x01(\x06\x12\x13\n\x0b\x61vatar_hash\x18\x1f \x01(\x0c\x12\x13\n\x0blast_logoff\x18- \x01(\r\x12\x12\n\nlast_logon\x18. \x01(\r\x12\x18\n\x10last_seen_online\x18/ \x01(\r\x12\x11\n\tclan_rank\x18\x32 \x01(\r\x12\x11\n\tgame_name\x18\x37 \x01(\t\x12\x0e\n\x06gameid\x18\x38 \x01(\x06\x12\x16\n\x0egame_data_blob\x18< \x01(\x0c\x12:\n\tclan_data\x18@ \x01(\x0b\x32\'.CMsgClientPersonaState.Friend.ClanData\x12\x10\n\x08\x63lan_tag\x18\x41 \x01(\t\x12\x38\n\rrich_presence\x18G \x03(\x0b\x32!.CMsgClientPersonaState.Friend.KV\x12\x14\n\x0c\x62roadcast_id\x18H \x01(\x06\x12\x15\n\rgame_lobby_id\x18I \x01(\x06\x12$\n\x1cwatching_broadcast_accountid\x18J \x01(\r\x12 \n\x18watching_broadcast_appid\x18K \x01(\r\x12\"\n\x1awatching_broadcast_viewers\x18L \x01(\r\x12 \n\x18watching_broadcast_title\x18M \x01(\t\x1a\x35\n\x08\x43lanData\x12\x12\n\nogg_app_id\x18\x01 \x01(\r\x12\x15\n\rchat_group_id\x18\x02 \x01(\x04\x1a \n\x02KV\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"5\n\x1b\x43MsgClientFriendProfileInfo\x12\x16\n\x0esteamid_friend\x18\x01 \x01(\x06\"\xda\x01\n#CMsgClientFriendProfileInfoResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x16\n\x0esteamid_friend\x18\x02 \x01(\x06\x12\x14\n\x0ctime_created\x18\x03 \x01(\r\x12\x11\n\treal_name\x18\x04 \x01(\t\x12\x11\n\tcity_name\x18\x05 \x01(\t\x12\x12\n\nstate_name\x18\x06 \x01(\t\x12\x14\n\x0c\x63ountry_name\x18\x07 \x01(\t\x12\x10\n\x08headline\x18\x08 \x01(\t\x12\x0f\n\x07summary\x18\t \x01(\t\"[\n\x1c\x43MsgClientCreateFriendsGroup\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x11\n\tgroupname\x18\x02 \x01(\t\x12\x17\n\x0fsteamid_friends\x18\x03 \x03(\x06\"H\n$CMsgClientCreateFriendsGroupResponse\x12\x0f\n\x07\x65result\x18\x01 \x01(\r\x12\x0f\n\x07groupid\x18\x02 \x01(\x05\"@\n\x1c\x43MsgClientDeleteFriendsGroup\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x0f\n\x07groupid\x18\x02 \x01(\x05\"7\n$CMsgClientDeleteFriendsGroupResponse\x12\x0f\n\x07\x65result\x18\x01 \x01(\r\"\x82\x01\n\x1c\x43MsgClientManageFriendsGroup\x12\x0f\n\x07groupid\x18\x01 \x01(\x05\x12\x11\n\tgroupname\x18\x02 \x01(\t\x12\x1d\n\x15steamid_friends_added\x18\x03 \x03(\x06\x12\x1f\n\x17steamid_friends_removed\x18\x04 \x03(\x06\"7\n$CMsgClientManageFriendsGroupResponse\x12\x0f\n\x07\x65result\x18\x01 \x01(\r\"B\n\x1a\x43MsgClientAddFriendToGroup\x12\x0f\n\x07groupid\x18\x01 \x01(\x05\x12\x13\n\x0bsteamiduser\x18\x02 \x01(\x06\"5\n\"CMsgClientAddFriendToGroupResponse\x12\x0f\n\x07\x65result\x18\x01 \x01(\r\"G\n\x1f\x43MsgClientRemoveFriendFromGroup\x12\x0f\n\x07groupid\x18\x01 \x01(\x05\x12\x13\n\x0bsteamiduser\x18\x02 \x01(\x06\":\n\'CMsgClientRemoveFriendFromGroupResponse\x12\x0f\n\x07\x65result\x18\x01 \x01(\r\"\x1b\n\x19\x43MsgClientGetEmoticonList\"\xcd\x03\n\x16\x43MsgClientEmoticonList\x12\x33\n\temoticons\x18\x01 \x03(\x0b\x32 .CMsgClientEmoticonList.Emoticon\x12\x31\n\x08stickers\x18\x02 \x03(\x0b\x32\x1f.CMsgClientEmoticonList.Sticker\x12/\n\x07\x65\x66\x66\x65\x63ts\x18\x03 \x03(\x0b\x32\x1e.CMsgClientEmoticonList.Effect\x1ai\n\x08\x45moticon\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\x12\x16\n\x0etime_last_used\x18\x03 \x01(\r\x12\x11\n\tuse_count\x18\x04 \x01(\r\x12\x15\n\rtime_received\x18\x05 \x01(\r\x1aL\n\x07Sticker\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\x12\x15\n\rtime_received\x18\x03 \x01(\r\x12\r\n\x05\x61ppid\x18\x04 \x01(\r\x1a\x61\n\x06\x45\x66\x66\x65\x63t\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\x12\x15\n\rtime_received\x18\x03 \x01(\r\x12\x14\n\x0cinfinite_use\x18\x04 \x01(\x08\x12\r\n\x05\x61ppid\x18\x05 \x01(\rB\x05H\x01\x90\x01\x00')
+  serialized_pb=_b('\n(steammessages_clientserver_friends.proto\x1a\x18steammessages_base.proto\"\x8a\x01\n\x13\x43MsgClientFriendMsg\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x17\n\x0f\x63hat_entry_type\x18\x02 \x01(\x05\x12\x0f\n\x07message\x18\x03 \x01(\x0c\x12 \n\x18rtime32_server_timestamp\x18\x04 \x01(\x07\x12\x16\n\x0e\x65\x63ho_to_sender\x18\x05 \x01(\x08\"\x9d\x01\n\x1b\x43MsgClientFriendMsgIncoming\x12\x14\n\x0csteamid_from\x18\x01 \x01(\x06\x12\x17\n\x0f\x63hat_entry_type\x18\x02 \x01(\x05\x12\x1c\n\x14\x66rom_limited_account\x18\x03 \x01(\x08\x12\x0f\n\x07message\x18\x04 \x01(\x0c\x12 \n\x18rtime32_server_timestamp\x18\x05 \x01(\x07\"R\n\x13\x43MsgClientAddFriend\x12\x16\n\x0esteamid_to_add\x18\x01 \x01(\x06\x12#\n\x1b\x61\x63\x63ountname_or_email_to_add\x18\x02 \x01(\t\"e\n\x1b\x43MsgClientAddFriendResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x16\n\x0esteam_id_added\x18\x02 \x01(\x06\x12\x1a\n\x12persona_name_added\x18\x03 \x01(\t\"*\n\x16\x43MsgClientRemoveFriend\x12\x10\n\x08\x66riendid\x18\x01 \x01(\x06\"6\n\x14\x43MsgClientHideFriend\x12\x10\n\x08\x66riendid\x18\x01 \x01(\x06\x12\x0c\n\x04hide\x18\x02 \x01(\x08\"\xea\x01\n\x15\x43MsgClientFriendsList\x12\x14\n\x0c\x62incremental\x18\x01 \x01(\x08\x12.\n\x07\x66riends\x18\x02 \x03(\x0b\x32\x1d.CMsgClientFriendsList.Friend\x12\x18\n\x10max_friend_count\x18\x03 \x01(\r\x12\x1b\n\x13\x61\x63tive_friend_count\x18\x04 \x01(\r\x12\x19\n\x11\x66riends_limit_hit\x18\x05 \x01(\x08\x1a\x39\n\x06\x46riend\x12\x12\n\nulfriendid\x18\x01 \x01(\x06\x12\x1b\n\x13\x65\x66riendrelationship\x18\x02 \x01(\r\"\xc5\x02\n\x1b\x43MsgClientFriendsGroupsList\x12\x10\n\x08\x62removal\x18\x01 \x01(\x08\x12\x14\n\x0c\x62incremental\x18\x02 \x01(\x08\x12>\n\x0c\x66riendGroups\x18\x03 \x03(\x0b\x32(.CMsgClientFriendsGroupsList.FriendGroup\x12H\n\x0bmemberships\x18\x04 \x03(\x0b\x32\x33.CMsgClientFriendsGroupsList.FriendGroupsMembership\x1a\x35\n\x0b\x46riendGroup\x12\x10\n\x08nGroupID\x18\x01 \x01(\x05\x12\x14\n\x0cstrGroupName\x18\x02 \x01(\t\x1a=\n\x16\x46riendGroupsMembership\x12\x11\n\tulSteamID\x18\x01 \x01(\x06\x12\x10\n\x08nGroupID\x18\x02 \x01(\x05\"\xba\x01\n\x1c\x43MsgClientPlayerNicknameList\x12\x0f\n\x07removal\x18\x01 \x01(\x08\x12\x13\n\x0bincremental\x18\x02 \x01(\x08\x12?\n\tnicknames\x18\x03 \x03(\x0b\x32,.CMsgClientPlayerNicknameList.PlayerNickname\x1a\x33\n\x0ePlayerNickname\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x10\n\x08nickname\x18\x03 \x01(\t\"@\n\x1b\x43MsgClientSetPlayerNickname\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x10\n\x08nickname\x18\x02 \x01(\t\"6\n#CMsgClientSetPlayerNicknameResponse\x12\x0f\n\x07\x65result\x18\x01 \x01(\r\"O\n\x1b\x43MsgClientRequestFriendData\x12\x1f\n\x17persona_state_requested\x18\x01 \x01(\r\x12\x0f\n\x07\x66riends\x18\x02 \x03(\x06\"\xef\x01\n\x16\x43MsgClientChangeStatus\x12\x15\n\rpersona_state\x18\x01 \x01(\r\x12\x13\n\x0bplayer_name\x18\x02 \x01(\t\x12\x1e\n\x16is_auto_generated_name\x18\x03 \x01(\x08\x12\x15\n\rhigh_priority\x18\x04 \x01(\x08\x12\x1b\n\x13persona_set_by_user\x18\x05 \x01(\x08\x12\x1e\n\x13persona_state_flags\x18\x06 \x01(\r:\x01\x30\x12\x1d\n\x15need_persona_response\x18\x07 \x01(\x08\x12\x16\n\x0eis_client_idle\x18\x08 \x01(\x08\"@\n\x19\x43MsgPersonaChangeResponse\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x13\n\x0bplayer_name\x18\x02 \x01(\t\"\xc0\x07\n\x16\x43MsgClientPersonaState\x12\x14\n\x0cstatus_flags\x18\x01 \x01(\r\x12/\n\x07\x66riends\x18\x02 \x03(\x0b\x32\x1e.CMsgClientPersonaState.Friend\x1a\xde\x06\n\x06\x46riend\x12\x10\n\x08\x66riendid\x18\x01 \x01(\x06\x12\x15\n\rpersona_state\x18\x02 \x01(\r\x12\x1a\n\x12game_played_app_id\x18\x03 \x01(\r\x12\x16\n\x0egame_server_ip\x18\x04 \x01(\r\x12\x18\n\x10game_server_port\x18\x05 \x01(\r\x12\x1b\n\x13persona_state_flags\x18\x06 \x01(\r\x12 \n\x18online_session_instances\x18\x07 \x01(\r\x12\x1b\n\x13persona_set_by_user\x18\n \x01(\x08\x12\x13\n\x0bplayer_name\x18\x0f \x01(\t\x12\x12\n\nquery_port\x18\x14 \x01(\r\x12\x16\n\x0esteamid_source\x18\x19 \x01(\x06\x12\x13\n\x0b\x61vatar_hash\x18\x1f \x01(\x0c\x12\x13\n\x0blast_logoff\x18- \x01(\r\x12\x12\n\nlast_logon\x18. \x01(\r\x12\x18\n\x10last_seen_online\x18/ \x01(\r\x12\x11\n\tclan_rank\x18\x32 \x01(\r\x12\x11\n\tgame_name\x18\x37 \x01(\t\x12\x0e\n\x06gameid\x18\x38 \x01(\x06\x12\x16\n\x0egame_data_blob\x18< \x01(\x0c\x12:\n\tclan_data\x18@ \x01(\x0b\x32\'.CMsgClientPersonaState.Friend.ClanData\x12\x10\n\x08\x63lan_tag\x18\x41 \x01(\t\x12\x38\n\rrich_presence\x18G \x03(\x0b\x32!.CMsgClientPersonaState.Friend.KV\x12\x14\n\x0c\x62roadcast_id\x18H \x01(\x06\x12\x15\n\rgame_lobby_id\x18I \x01(\x06\x12$\n\x1cwatching_broadcast_accountid\x18J \x01(\r\x12 \n\x18watching_broadcast_appid\x18K \x01(\r\x12\"\n\x1awatching_broadcast_viewers\x18L \x01(\r\x12 \n\x18watching_broadcast_title\x18M \x01(\t\x1a\x35\n\x08\x43lanData\x12\x12\n\nogg_app_id\x18\x01 \x01(\r\x12\x15\n\rchat_group_id\x18\x02 \x01(\x04\x1a \n\x02KV\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"5\n\x1b\x43MsgClientFriendProfileInfo\x12\x16\n\x0esteamid_friend\x18\x01 \x01(\x06\"\xda\x01\n#CMsgClientFriendProfileInfoResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x16\n\x0esteamid_friend\x18\x02 \x01(\x06\x12\x14\n\x0ctime_created\x18\x03 \x01(\r\x12\x11\n\treal_name\x18\x04 \x01(\t\x12\x11\n\tcity_name\x18\x05 \x01(\t\x12\x12\n\nstate_name\x18\x06 \x01(\t\x12\x14\n\x0c\x63ountry_name\x18\x07 \x01(\t\x12\x10\n\x08headline\x18\x08 \x01(\t\x12\x0f\n\x07summary\x18\t \x01(\t\"[\n\x1c\x43MsgClientCreateFriendsGroup\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x11\n\tgroupname\x18\x02 \x01(\t\x12\x17\n\x0fsteamid_friends\x18\x03 \x03(\x06\"H\n$CMsgClientCreateFriendsGroupResponse\x12\x0f\n\x07\x65result\x18\x01 \x01(\r\x12\x0f\n\x07groupid\x18\x02 \x01(\x05\"@\n\x1c\x43MsgClientDeleteFriendsGroup\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x0f\n\x07groupid\x18\x02 \x01(\x05\"7\n$CMsgClientDeleteFriendsGroupResponse\x12\x0f\n\x07\x65result\x18\x01 \x01(\r\"\x82\x01\n\x1c\x43MsgClientManageFriendsGroup\x12\x0f\n\x07groupid\x18\x01 \x01(\x05\x12\x11\n\tgroupname\x18\x02 \x01(\t\x12\x1d\n\x15steamid_friends_added\x18\x03 \x03(\x06\x12\x1f\n\x17steamid_friends_removed\x18\x04 \x03(\x06\"7\n$CMsgClientManageFriendsGroupResponse\x12\x0f\n\x07\x65result\x18\x01 \x01(\r\"B\n\x1a\x43MsgClientAddFriendToGroup\x12\x0f\n\x07groupid\x18\x01 \x01(\x05\x12\x13\n\x0bsteamiduser\x18\x02 \x01(\x06\"5\n\"CMsgClientAddFriendToGroupResponse\x12\x0f\n\x07\x65result\x18\x01 \x01(\r\"G\n\x1f\x43MsgClientRemoveFriendFromGroup\x12\x0f\n\x07groupid\x18\x01 \x01(\x05\x12\x13\n\x0bsteamiduser\x18\x02 \x01(\x06\":\n\'CMsgClientRemoveFriendFromGroupResponse\x12\x0f\n\x07\x65result\x18\x01 \x01(\r\"\x1b\n\x19\x43MsgClientGetEmoticonList\"\x87\x04\n\x16\x43MsgClientEmoticonList\x12\x33\n\temoticons\x18\x01 \x03(\x0b\x32 .CMsgClientEmoticonList.Emoticon\x12\x31\n\x08stickers\x18\x02 \x03(\x0b\x32\x1f.CMsgClientEmoticonList.Sticker\x12/\n\x07\x65\x66\x66\x65\x63ts\x18\x03 \x03(\x0b\x32\x1e.CMsgClientEmoticonList.Effect\x1ax\n\x08\x45moticon\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\x12\x16\n\x0etime_last_used\x18\x03 \x01(\r\x12\x11\n\tuse_count\x18\x04 \x01(\r\x12\x15\n\rtime_received\x18\x05 \x01(\r\x12\r\n\x05\x61ppid\x18\x06 \x01(\r\x1aw\n\x07Sticker\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\x12\x15\n\rtime_received\x18\x03 \x01(\r\x12\r\n\x05\x61ppid\x18\x04 \x01(\r\x12\x16\n\x0etime_last_used\x18\x05 \x01(\r\x12\x11\n\tuse_count\x18\x06 \x01(\r\x1a\x61\n\x06\x45\x66\x66\x65\x63t\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\x12\x15\n\rtime_received\x18\x03 \x01(\r\x12\x14\n\x0cinfinite_use\x18\x04 \x01(\x08\x12\r\n\x05\x61ppid\x18\x05 \x01(\rB\x05H\x01\x90\x01\x00')
   ,
   dependencies=[steammessages__base__pb2.DESCRIPTOR,])
 
@@ -1715,6 +1715,13 @@ _CMSGCLIENTEMOTICONLIST_EMOTICON = _descriptor.Descriptor(
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='appid', full_name='CMsgClientEmoticonList.Emoticon.appid', index=5,
+      number=6, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -1728,7 +1735,7 @@ _CMSGCLIENTEMOTICONLIST_EMOTICON = _descriptor.Descriptor(
   oneofs=[
   ],
   serialized_start=4107,
-  serialized_end=4212,
+  serialized_end=4227,
 )
 
 _CMSGCLIENTEMOTICONLIST_STICKER = _descriptor.Descriptor(
@@ -1766,6 +1773,20 @@ _CMSGCLIENTEMOTICONLIST_STICKER = _descriptor.Descriptor(
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='time_last_used', full_name='CMsgClientEmoticonList.Sticker.time_last_used', index=4,
+      number=5, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='use_count', full_name='CMsgClientEmoticonList.Sticker.use_count', index=5,
+      number=6, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -1778,8 +1799,8 @@ _CMSGCLIENTEMOTICONLIST_STICKER = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4214,
-  serialized_end=4290,
+  serialized_start=4229,
+  serialized_end=4348,
 )
 
 _CMSGCLIENTEMOTICONLIST_EFFECT = _descriptor.Descriptor(
@@ -1836,8 +1857,8 @@ _CMSGCLIENTEMOTICONLIST_EFFECT = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4292,
-  serialized_end=4389,
+  serialized_start=4350,
+  serialized_end=4447,
 )
 
 _CMSGCLIENTEMOTICONLIST = _descriptor.Descriptor(
@@ -1881,7 +1902,7 @@ _CMSGCLIENTEMOTICONLIST = _descriptor.Descriptor(
   oneofs=[
   ],
   serialized_start=3928,
-  serialized_end=4389,
+  serialized_end=4447,
 )
 
 _CMSGCLIENTFRIENDSLIST_FRIEND.containing_type = _CMSGCLIENTFRIENDSLIST
diff --git a/steam/protobufs/steammessages_clientserver_login_pb2.py b/steam/protobufs/steammessages_clientserver_login_pb2.py
index 2437e30..4db7f9d 100644
--- a/steam/protobufs/steammessages_clientserver_login_pb2.py
+++ b/steam/protobufs/steammessages_clientserver_login_pb2.py
@@ -21,7 +21,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
   package='',
   syntax='proto2',
   serialized_options=_b('H\001\220\001\000'),
-  serialized_pb=_b('\n&steammessages_clientserver_login.proto\x1a\x18steammessages_base.proto\"\x15\n\x13\x43MsgClientHeartBeat\"D\n CMsgClientServerTimestampRequest\x12 \n\x18\x63lient_request_timestamp\x18\x01 \x01(\x04\"b\n!CMsgClientServerTimestampResponse\x12 \n\x18\x63lient_request_timestamp\x18\x01 \x01(\x04\x12\x1b\n\x13server_timestamp_ms\x18\x02 \x01(\x04\"a\n\x10\x43MsgClientSecret\x12\x0f\n\x07version\x18\x01 \x01(\r\x12\r\n\x05\x61ppid\x18\x02 \x01(\r\x12\x10\n\x08\x64\x65viceid\x18\x03 \x01(\r\x12\r\n\x05nonce\x18\x04 \x01(\x06\x12\x0c\n\x04hmac\x18\x05 \x01(\x0c\"\xda\x0b\n\x0f\x43MsgClientLogon\x12\x18\n\x10protocol_version\x18\x01 \x01(\r\x12*\n\"deprecated_obfustucated_private_ip\x18\x02 \x01(\r\x12\x0f\n\x07\x63\x65ll_id\x18\x03 \x01(\r\x12\x17\n\x0flast_session_id\x18\x04 \x01(\r\x12\x1e\n\x16\x63lient_package_version\x18\x05 \x01(\r\x12\x17\n\x0f\x63lient_language\x18\x06 \x01(\t\x12\x16\n\x0e\x63lient_os_type\x18\x07 \x01(\r\x12\'\n\x18should_remember_password\x18\x08 \x01(\x08:\x05\x66\x61lse\x12\x14\n\x0cwine_version\x18\t \x01(\t\x12\x15\n\rdeprecated_10\x18\n \x01(\r\x12-\n\x15obfuscated_private_ip\x18\x0b \x01(\x0b\x32\x0e.CMsgIPAddress\x12\x1c\n\x14\x64\x65precated_public_ip\x18\x14 \x01(\r\x12\x11\n\tqos_level\x18\x15 \x01(\r\x12 \n\x18\x63lient_supplied_steam_id\x18\x16 \x01(\x06\x12!\n\tpublic_ip\x18\x17 \x01(\x0b\x32\x0e.CMsgIPAddress\x12\x12\n\nmachine_id\x18\x1e \x01(\x0c\x12\x18\n\rlauncher_type\x18\x1f \x01(\r:\x01\x30\x12\x12\n\x07ui_mode\x18  \x01(\r:\x01\x30\x12\x14\n\tchat_mode\x18! \x01(\r:\x01\x30\x12\x1a\n\x12steam2_auth_ticket\x18) \x01(\x0c\x12\x15\n\remail_address\x18* \x01(\t\x12 \n\x18rtime32_account_creation\x18+ \x01(\x07\x12\x14\n\x0c\x61\x63\x63ount_name\x18\x32 \x01(\t\x12\x10\n\x08password\x18\x33 \x01(\t\x12\x19\n\x11game_server_token\x18\x34 \x01(\t\x12\x11\n\tlogin_key\x18< \x01(\t\x12+\n\x1cwas_converted_deprecated_msg\x18\x46 \x01(\x08:\x05\x66\x61lse\x12%\n\x1d\x61non_user_target_account_name\x18P \x01(\t\x12\x1e\n\x16resolved_user_steam_id\x18Q \x01(\x06\x12\x1a\n\x12\x65result_sentryfile\x18R \x01(\x05\x12\x16\n\x0esha_sentryfile\x18S \x01(\x0c\x12\x11\n\tauth_code\x18T \x01(\t\x12\x10\n\x08otp_type\x18U \x01(\x05\x12\x11\n\totp_value\x18V \x01(\r\x12\x16\n\x0eotp_identifier\x18W \x01(\t\x12\x1d\n\x15steam2_ticket_request\x18X \x01(\x08\x12\x17\n\x0fsony_psn_ticket\x18Z \x01(\x0c\x12\x1b\n\x13sony_psn_service_id\x18[ \x01(\t\x12\x36\n\'create_new_psn_linked_account_if_needed\x18\\ \x01(\x08:\x05\x66\x61lse\x12\x15\n\rsony_psn_name\x18] \x01(\t\x12\x1a\n\x12game_server_app_id\x18^ \x01(\x05\x12)\n!steamguard_dont_remember_computer\x18_ \x01(\x08\x12\x14\n\x0cmachine_name\x18` \x01(\t\x12\x1f\n\x17machine_name_userchosen\x18\x61 \x01(\t\x12\x18\n\x10\x63ountry_override\x18\x62 \x01(\t\x12\x14\n\x0cis_steam_box\x18\x63 \x01(\x08\x12\x1a\n\x12\x63lient_instance_id\x18\x64 \x01(\x04\x12\x17\n\x0ftwo_factor_code\x18\x65 \x01(\t\x12$\n\x1csupports_rate_limit_response\x18\x66 \x01(\x08\x12\x17\n\x0fweb_logon_nonce\x18g \x01(\t\x12\x17\n\x0fpriority_reason\x18h \x01(\x05\x12\x31\n\x16\x65mbedded_client_secret\x18i \x01(\x0b\x32\x11.CMsgClientSecret\"\xdd\x05\n\x17\x43MsgClientLogonResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12%\n\x1dout_of_game_heartbeat_seconds\x18\x02 \x01(\x05\x12!\n\x19in_game_heartbeat_seconds\x18\x03 \x01(\x05\x12\x1c\n\x14\x64\x65precated_public_ip\x18\x04 \x01(\r\x12\x1b\n\x13rtime32_server_time\x18\x05 \x01(\x07\x12\x15\n\raccount_flags\x18\x06 \x01(\r\x12\x0f\n\x07\x63\x65ll_id\x18\x07 \x01(\r\x12\x14\n\x0c\x65mail_domain\x18\x08 \x01(\t\x12\x15\n\rsteam2_ticket\x18\t \x01(\x0c\x12\x18\n\x10\x65result_extended\x18\n \x01(\x05\x12&\n\x1ewebapi_authenticate_user_nonce\x18\x0b \x01(\t\x12\x1e\n\x16\x63\x65ll_id_ping_threshold\x18\x0c \x01(\r\x12\x10\n\x08use_pics\x18\r \x01(\x08\x12\x12\n\nvanity_url\x18\x0e \x01(\t\x12!\n\tpublic_ip\x18\x0f \x01(\x0b\x32\x0e.CMsgIPAddress\x12\x1f\n\x17\x63lient_supplied_steamid\x18\x14 \x01(\x06\x12\x17\n\x0fip_country_code\x18\x15 \x01(\t\x12\x19\n\x11parental_settings\x18\x16 \x01(\x0c\x12\"\n\x1aparental_setting_signature\x18\x17 \x01(\x0c\x12&\n\x1e\x63ount_loginfailures_to_migrate\x18\x18 \x01(\x05\x12$\n\x1c\x63ount_disconnects_to_migrate\x18\x19 \x01(\x05\x12#\n\x1bogs_data_report_time_window\x18\x1a \x01(\x05\x12\x1a\n\x12\x63lient_instance_id\x18\x1b \x01(\x04\x12!\n\x19\x66orce_client_update_check\x18\x1c \x01(\x08\"F\n,CMsgClientRequestWebAPIAuthenticateUserNonce\x12\x16\n\ntoken_type\x18\x01 \x01(\x05:\x02-1\"\x8a\x01\n4CMsgClientRequestWebAPIAuthenticateUserNonceResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12&\n\x1ewebapi_authenticate_user_nonce\x18\x0b \x01(\t\x12\x16\n\ntoken_type\x18\x03 \x01(\x05:\x02-1\"\x12\n\x10\x43MsgClientLogOff\")\n\x13\x43MsgClientLoggedOff\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\"=\n\x15\x43MsgClientNewLoginKey\x12\x11\n\tunique_id\x18\x01 \x01(\r\x12\x11\n\tlogin_key\x18\x02 \x01(\t\"2\n\x1d\x43MsgClientNewLoginKeyAccepted\x12\x11\n\tunique_id\x18\x01 \x01(\r\"\xee\x02\n\x15\x43MsgClientAccountInfo\x12\x14\n\x0cpersona_name\x18\x01 \x01(\t\x12\x12\n\nip_country\x18\x02 \x01(\t\x12\x1e\n\x16\x63ount_authed_computers\x18\x05 \x01(\x05\x12\x15\n\raccount_flags\x18\x07 \x01(\r\x12\x13\n\x0b\x66\x61\x63\x65\x62ook_id\x18\x08 \x01(\x04\x12\x15\n\rfacebook_name\x18\t \x01(\t\x12%\n\x1dsteamguard_notify_newmachines\x18\x0e \x01(\x08\x12+\n#steamguard_machine_name_user_chosen\x18\x0f \x01(\t\x12\x19\n\x11is_phone_verified\x18\x10 \x01(\x08\x12\x18\n\x10two_factor_state\x18\x11 \x01(\r\x12\x1c\n\x14is_phone_identifying\x18\x12 \x01(\x08\x12!\n\x19is_phone_needing_reverify\x18\x13 \x01(\x08\"-\n\x1a\x43MsgClientChallengeRequest\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\"0\n\x1b\x43MsgClientChallengeResponse\x12\x11\n\tchallenge\x18\x01 \x01(\x06\x42\x05H\x01\x90\x01\x00')
+  serialized_pb=_b('\n&steammessages_clientserver_login.proto\x1a\x18steammessages_base.proto\"\x15\n\x13\x43MsgClientHeartBeat\"D\n CMsgClientServerTimestampRequest\x12 \n\x18\x63lient_request_timestamp\x18\x01 \x01(\x04\"b\n!CMsgClientServerTimestampResponse\x12 \n\x18\x63lient_request_timestamp\x18\x01 \x01(\x04\x12\x1b\n\x13server_timestamp_ms\x18\x02 \x01(\x04\"a\n\x10\x43MsgClientSecret\x12\x0f\n\x07version\x18\x01 \x01(\r\x12\r\n\x05\x61ppid\x18\x02 \x01(\r\x12\x10\n\x08\x64\x65viceid\x18\x03 \x01(\r\x12\r\n\x05nonce\x18\x04 \x01(\x06\x12\x0c\n\x04hmac\x18\x05 \x01(\x0c\"\xfe\x0b\n\x0f\x43MsgClientLogon\x12\x18\n\x10protocol_version\x18\x01 \x01(\r\x12*\n\"deprecated_obfustucated_private_ip\x18\x02 \x01(\r\x12\x0f\n\x07\x63\x65ll_id\x18\x03 \x01(\r\x12\x17\n\x0flast_session_id\x18\x04 \x01(\r\x12\x1e\n\x16\x63lient_package_version\x18\x05 \x01(\r\x12\x17\n\x0f\x63lient_language\x18\x06 \x01(\t\x12\x16\n\x0e\x63lient_os_type\x18\x07 \x01(\r\x12\'\n\x18should_remember_password\x18\x08 \x01(\x08:\x05\x66\x61lse\x12\x14\n\x0cwine_version\x18\t \x01(\t\x12\x15\n\rdeprecated_10\x18\n \x01(\r\x12-\n\x15obfuscated_private_ip\x18\x0b \x01(\x0b\x32\x0e.CMsgIPAddress\x12\x1c\n\x14\x64\x65precated_public_ip\x18\x14 \x01(\r\x12\x11\n\tqos_level\x18\x15 \x01(\r\x12 \n\x18\x63lient_supplied_steam_id\x18\x16 \x01(\x06\x12!\n\tpublic_ip\x18\x17 \x01(\x0b\x32\x0e.CMsgIPAddress\x12\x12\n\nmachine_id\x18\x1e \x01(\x0c\x12\x18\n\rlauncher_type\x18\x1f \x01(\r:\x01\x30\x12\x12\n\x07ui_mode\x18  \x01(\r:\x01\x30\x12\x14\n\tchat_mode\x18! \x01(\r:\x01\x30\x12\x1a\n\x12steam2_auth_ticket\x18) \x01(\x0c\x12\x15\n\remail_address\x18* \x01(\t\x12 \n\x18rtime32_account_creation\x18+ \x01(\x07\x12\x14\n\x0c\x61\x63\x63ount_name\x18\x32 \x01(\t\x12\x10\n\x08password\x18\x33 \x01(\t\x12\x19\n\x11game_server_token\x18\x34 \x01(\t\x12\x11\n\tlogin_key\x18< \x01(\t\x12+\n\x1cwas_converted_deprecated_msg\x18\x46 \x01(\x08:\x05\x66\x61lse\x12%\n\x1d\x61non_user_target_account_name\x18P \x01(\t\x12\x1e\n\x16resolved_user_steam_id\x18Q \x01(\x06\x12\x1a\n\x12\x65result_sentryfile\x18R \x01(\x05\x12\x16\n\x0esha_sentryfile\x18S \x01(\x0c\x12\x11\n\tauth_code\x18T \x01(\t\x12\x10\n\x08otp_type\x18U \x01(\x05\x12\x11\n\totp_value\x18V \x01(\r\x12\x16\n\x0eotp_identifier\x18W \x01(\t\x12\x1d\n\x15steam2_ticket_request\x18X \x01(\x08\x12\x17\n\x0fsony_psn_ticket\x18Z \x01(\x0c\x12\x1b\n\x13sony_psn_service_id\x18[ \x01(\t\x12\x36\n\'create_new_psn_linked_account_if_needed\x18\\ \x01(\x08:\x05\x66\x61lse\x12\x15\n\rsony_psn_name\x18] \x01(\t\x12\x1a\n\x12game_server_app_id\x18^ \x01(\x05\x12)\n!steamguard_dont_remember_computer\x18_ \x01(\x08\x12\x14\n\x0cmachine_name\x18` \x01(\t\x12\x1f\n\x17machine_name_userchosen\x18\x61 \x01(\t\x12\x18\n\x10\x63ountry_override\x18\x62 \x01(\t\x12\x14\n\x0cis_steam_box\x18\x63 \x01(\x08\x12\x1a\n\x12\x63lient_instance_id\x18\x64 \x01(\x04\x12\x17\n\x0ftwo_factor_code\x18\x65 \x01(\t\x12$\n\x1csupports_rate_limit_response\x18\x66 \x01(\x08\x12\x17\n\x0fweb_logon_nonce\x18g \x01(\t\x12\x17\n\x0fpriority_reason\x18h \x01(\x05\x12\x31\n\x16\x65mbedded_client_secret\x18i \x01(\x0b\x32\x11.CMsgClientSecret\x12\"\n\x1a\x64isable_partner_autogrants\x18j \x01(\x08\"\x87\x06\n\x17\x43MsgClientLogonResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12%\n\x1dout_of_game_heartbeat_seconds\x18\x02 \x01(\x05\x12!\n\x19in_game_heartbeat_seconds\x18\x03 \x01(\x05\x12\x1c\n\x14\x64\x65precated_public_ip\x18\x04 \x01(\r\x12\x1b\n\x13rtime32_server_time\x18\x05 \x01(\x07\x12\x15\n\raccount_flags\x18\x06 \x01(\r\x12\x0f\n\x07\x63\x65ll_id\x18\x07 \x01(\r\x12\x14\n\x0c\x65mail_domain\x18\x08 \x01(\t\x12\x15\n\rsteam2_ticket\x18\t \x01(\x0c\x12\x18\n\x10\x65result_extended\x18\n \x01(\x05\x12&\n\x1ewebapi_authenticate_user_nonce\x18\x0b \x01(\t\x12\x1e\n\x16\x63\x65ll_id_ping_threshold\x18\x0c \x01(\r\x12\x1b\n\x13\x64\x65precated_use_pics\x18\r \x01(\x08\x12\x12\n\nvanity_url\x18\x0e \x01(\t\x12!\n\tpublic_ip\x18\x0f \x01(\x0b\x32\x0e.CMsgIPAddress\x12\x1f\n\x17\x63lient_supplied_steamid\x18\x14 \x01(\x06\x12\x17\n\x0fip_country_code\x18\x15 \x01(\t\x12\x19\n\x11parental_settings\x18\x16 \x01(\x0c\x12\"\n\x1aparental_setting_signature\x18\x17 \x01(\x0c\x12&\n\x1e\x63ount_loginfailures_to_migrate\x18\x18 \x01(\x05\x12$\n\x1c\x63ount_disconnects_to_migrate\x18\x19 \x01(\x05\x12#\n\x1bogs_data_report_time_window\x18\x1a \x01(\x05\x12\x1a\n\x12\x63lient_instance_id\x18\x1b \x01(\x04\x12!\n\x19\x66orce_client_update_check\x18\x1c \x01(\x08\x12\x1d\n\x15\x61greement_session_url\x18\x1d \x01(\t\"F\n,CMsgClientRequestWebAPIAuthenticateUserNonce\x12\x16\n\ntoken_type\x18\x01 \x01(\x05:\x02-1\"\x8a\x01\n4CMsgClientRequestWebAPIAuthenticateUserNonceResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12&\n\x1ewebapi_authenticate_user_nonce\x18\x0b \x01(\t\x12\x16\n\ntoken_type\x18\x03 \x01(\x05:\x02-1\"\x12\n\x10\x43MsgClientLogOff\")\n\x13\x43MsgClientLoggedOff\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\"=\n\x15\x43MsgClientNewLoginKey\x12\x11\n\tunique_id\x18\x01 \x01(\r\x12\x11\n\tlogin_key\x18\x02 \x01(\t\"2\n\x1d\x43MsgClientNewLoginKeyAccepted\x12\x11\n\tunique_id\x18\x01 \x01(\r\"\xee\x02\n\x15\x43MsgClientAccountInfo\x12\x14\n\x0cpersona_name\x18\x01 \x01(\t\x12\x12\n\nip_country\x18\x02 \x01(\t\x12\x1e\n\x16\x63ount_authed_computers\x18\x05 \x01(\x05\x12\x15\n\raccount_flags\x18\x07 \x01(\r\x12\x13\n\x0b\x66\x61\x63\x65\x62ook_id\x18\x08 \x01(\x04\x12\x15\n\rfacebook_name\x18\t \x01(\t\x12%\n\x1dsteamguard_notify_newmachines\x18\x0e \x01(\x08\x12+\n#steamguard_machine_name_user_chosen\x18\x0f \x01(\t\x12\x19\n\x11is_phone_verified\x18\x10 \x01(\x08\x12\x18\n\x10two_factor_state\x18\x11 \x01(\r\x12\x1c\n\x14is_phone_identifying\x18\x12 \x01(\x08\x12!\n\x19is_phone_needing_reverify\x18\x13 \x01(\x08\"-\n\x1a\x43MsgClientChallengeRequest\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\"0\n\x1b\x43MsgClientChallengeResponse\x12\x11\n\tchallenge\x18\x01 \x01(\x06\x42\x05H\x01\x90\x01\x00')
   ,
   dependencies=[steammessages__base__pb2.DESCRIPTOR,])
 
@@ -551,6 +551,13 @@ _CMSGCLIENTLOGON = _descriptor.Descriptor(
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='disable_partner_autogrants', full_name='CMsgClientLogon.disable_partner_autogrants', index=52,
+      number=106, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -564,7 +571,7 @@ _CMSGCLIENTLOGON = _descriptor.Descriptor(
   oneofs=[
   ],
   serialized_start=361,
-  serialized_end=1859,
+  serialized_end=1895,
 )
 
 
@@ -660,7 +667,7 @@ _CMSGCLIENTLOGONRESPONSE = _descriptor.Descriptor(
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='use_pics', full_name='CMsgClientLogonResponse.use_pics', index=12,
+      name='deprecated_use_pics', full_name='CMsgClientLogonResponse.deprecated_use_pics', index=12,
       number=13, type=8, cpp_type=7, label=1,
       has_default_value=False, default_value=False,
       message_type=None, enum_type=None, containing_type=None,
@@ -743,6 +750,13 @@ _CMSGCLIENTLOGONRESPONSE = _descriptor.Descriptor(
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='agreement_session_url', full_name='CMsgClientLogonResponse.agreement_session_url', index=24,
+      number=29, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -755,8 +769,8 @@ _CMSGCLIENTLOGONRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1862,
-  serialized_end=2595,
+  serialized_start=1898,
+  serialized_end=2673,
 )
 
 
@@ -786,8 +800,8 @@ _CMSGCLIENTREQUESTWEBAPIAUTHENTICATEUSERNONCE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2597,
-  serialized_end=2667,
+  serialized_start=2675,
+  serialized_end=2745,
 )
 
 
@@ -831,8 +845,8 @@ _CMSGCLIENTREQUESTWEBAPIAUTHENTICATEUSERNONCERESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2670,
-  serialized_end=2808,
+  serialized_start=2748,
+  serialized_end=2886,
 )
 
 
@@ -855,8 +869,8 @@ _CMSGCLIENTLOGOFF = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2810,
-  serialized_end=2828,
+  serialized_start=2888,
+  serialized_end=2906,
 )
 
 
@@ -886,8 +900,8 @@ _CMSGCLIENTLOGGEDOFF = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2830,
-  serialized_end=2871,
+  serialized_start=2908,
+  serialized_end=2949,
 )
 
 
@@ -924,8 +938,8 @@ _CMSGCLIENTNEWLOGINKEY = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2873,
-  serialized_end=2934,
+  serialized_start=2951,
+  serialized_end=3012,
 )
 
 
@@ -955,8 +969,8 @@ _CMSGCLIENTNEWLOGINKEYACCEPTED = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2936,
-  serialized_end=2986,
+  serialized_start=3014,
+  serialized_end=3064,
 )
 
 
@@ -1063,8 +1077,8 @@ _CMSGCLIENTACCOUNTINFO = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2989,
-  serialized_end=3355,
+  serialized_start=3067,
+  serialized_end=3433,
 )
 
 
@@ -1094,8 +1108,8 @@ _CMSGCLIENTCHALLENGEREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3357,
-  serialized_end=3402,
+  serialized_start=3435,
+  serialized_end=3480,
 )
 
 
@@ -1125,8 +1139,8 @@ _CMSGCLIENTCHALLENGERESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3404,
-  serialized_end=3452,
+  serialized_start=3482,
+  serialized_end=3530,
 )
 
 _CMSGCLIENTLOGON.fields_by_name['obfuscated_private_ip'].message_type = steammessages__base__pb2._CMSGIPADDRESS
diff --git a/steam/protobufs/steammessages_clientserver_pb2.py b/steam/protobufs/steammessages_clientserver_pb2.py
index eec710f..4c7490b 100644
--- a/steam/protobufs/steammessages_clientserver_pb2.py
+++ b/steam/protobufs/steammessages_clientserver_pb2.py
@@ -23,7 +23,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
   package='',
   syntax='proto2',
   serialized_options=_b('H\001\220\001\000'),
-  serialized_pb=_b('\n steammessages_clientserver.proto\x1a\x18steammessages_base.proto\x1a\x1a\x65ncrypted_app_ticket.proto\"G\n\x1e\x43MsgClientUDSP2PSessionStarted\x12\x16\n\x0esteamid_remote\x18\x01 \x01(\x06\x12\r\n\x05\x61ppid\x18\x02 \x01(\x05\"\x81\x02\n\x1c\x43MsgClientUDSP2PSessionEnded\x12\x16\n\x0esteamid_remote\x18\x01 \x01(\x06\x12\r\n\x05\x61ppid\x18\x02 \x01(\x05\x12\x1a\n\x12session_length_sec\x18\x03 \x01(\x05\x12\x15\n\rsession_error\x18\x04 \x01(\x05\x12\x0f\n\x07nattype\x18\x05 \x01(\x05\x12\x12\n\nbytes_recv\x18\x06 \x01(\x05\x12\x12\n\nbytes_sent\x18\x07 \x01(\x05\x12\x18\n\x10\x62ytes_sent_relay\x18\x08 \x01(\x05\x12\x18\n\x10\x62ytes_recv_relay\x18\t \x01(\x05\x12\x1a\n\x12time_to_connect_ms\x18\n \x01(\x05\"j\n\"CMsgClientRegisterAuthTicketWithCM\x12\x18\n\x10protocol_version\x18\x01 \x01(\r\x12\x0e\n\x06ticket\x18\x03 \x01(\x0c\x12\x1a\n\x12\x63lient_instance_id\x18\x04 \x01(\x04\"\xd1\x01\n\x1c\x43MsgClientTicketAuthComplete\x12\x10\n\x08steam_id\x18\x01 \x01(\x06\x12\x0f\n\x07game_id\x18\x02 \x01(\x06\x12\x0e\n\x06\x65state\x18\x03 \x01(\r\x12\x1e\n\x16\x65\x61uth_session_response\x18\x04 \x01(\r\x12\x19\n\x11\x44\x45PRECATED_ticket\x18\x05 \x01(\x0c\x12\x12\n\nticket_crc\x18\x06 \x01(\r\x12\x17\n\x0fticket_sequence\x18\x07 \x01(\r\x12\x16\n\x0eowner_steam_id\x18\x08 \x01(\x06\"\x80\x01\n\x10\x43MsgClientCMList\x12\x14\n\x0c\x63m_addresses\x18\x01 \x03(\r\x12\x10\n\x08\x63m_ports\x18\x02 \x03(\r\x12\x1e\n\x16\x63m_websocket_addresses\x18\x03 \x03(\t\x12$\n\x1cpercent_default_to_websocket\x18\x04 \x01(\r\"\x9c\x01\n\x1b\x43MsgClientP2PConnectionInfo\x12\x15\n\rsteam_id_dest\x18\x01 \x01(\x06\x12\x14\n\x0csteam_id_src\x18\x02 \x01(\x06\x12\x0e\n\x06\x61pp_id\x18\x03 \x01(\r\x12\x11\n\tcandidate\x18\x04 \x01(\x0c\x12\x19\n\x11\x63onnection_id_src\x18\x05 \x01(\x06\x12\x12\n\nrendezvous\x18\x06 \x01(\x0c\"\xc3\x01\n\x1f\x43MsgClientP2PConnectionFailInfo\x12\x15\n\rsteam_id_dest\x18\x01 \x01(\x06\x12\x14\n\x0csteam_id_src\x18\x02 \x01(\x06\x12\x0e\n\x06\x61pp_id\x18\x03 \x01(\r\x12\x1a\n\x12\x65p2p_session_error\x18\x04 \x01(\r\x12\x1a\n\x12\x63onnection_id_dest\x18\x05 \x01(\x06\x12\x14\n\x0c\x63lose_reason\x18\x07 \x01(\r\x12\x15\n\rclose_message\x18\x08 \x01(\t\"C\n\x1f\x43MsgClientNetworkingCertRequest\x12\x10\n\x08key_data\x18\x02 \x01(\x0c\x12\x0e\n\x06\x61pp_id\x18\x03 \x01(\r\"V\n\x1d\x43MsgClientNetworkingCertReply\x12\x0c\n\x04\x63\x65rt\x18\x04 \x01(\x0c\x12\x11\n\tca_key_id\x18\x05 \x01(\x06\x12\x14\n\x0c\x63\x61_signature\x18\x06 \x01(\x0c\"7\n%CMsgClientNetworkingMobileCertRequest\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\";\n#CMsgClientNetworkingMobileCertReply\x12\x14\n\x0c\x65ncoded_cert\x18\x01 \x01(\t\"1\n\x1f\x43MsgClientGetAppOwnershipTicket\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\"]\n\'CMsgClientGetAppOwnershipTicketResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\r:\x01\x32\x12\x0e\n\x06\x61pp_id\x18\x02 \x01(\r\x12\x0e\n\x06ticket\x18\x03 \x01(\x0c\"\'\n\x16\x43MsgClientSessionToken\x12\r\n\x05token\x18\x01 \x01(\x04\"M\n\x1b\x43MsgClientGameConnectTokens\x12\x1e\n\x12max_tokens_to_keep\x18\x01 \x01(\r:\x02\x31\x30\x12\x0e\n\x06tokens\x18\x02 \x03(\x0c\"\xb0\x01\n\x10\x43MsgGSServerType\x12\x15\n\rapp_id_served\x18\x01 \x01(\r\x12\r\n\x05\x66lags\x18\x02 \x01(\r\x12\"\n\x1a\x64\x65precated_game_ip_address\x18\x03 \x01(\r\x12\x11\n\tgame_port\x18\x04 \x01(\r\x12\x10\n\x08game_dir\x18\x05 \x01(\t\x12\x14\n\x0cgame_version\x18\x06 \x01(\t\x12\x17\n\x0fgame_query_port\x18\x07 \x01(\r\"&\n\x11\x43MsgGSStatusReply\x12\x11\n\tis_secure\x18\x01 \x01(\x08\"\xa9\x01\n\x10\x43MsgGSPlayerList\x12)\n\x07players\x18\x01 \x03(\x0b\x32\x18.CMsgGSPlayerList.Player\x1aj\n\x06Player\x12\x10\n\x08steam_id\x18\x01 \x01(\x04\x12\x1c\n\x14\x64\x65precated_public_ip\x18\x02 \x01(\r\x12\r\n\x05token\x18\x03 \x01(\x0c\x12!\n\tpublic_ip\x18\x04 \x01(\x0b\x32\x0e.CMsgIPAddress\"u\n\x11\x43MsgGSUserPlaying\x12\x10\n\x08steam_id\x18\x01 \x01(\x06\x12\x1c\n\x14\x64\x65precated_public_ip\x18\x02 \x01(\r\x12\r\n\x05token\x18\x03 \x01(\x0c\x12!\n\tpublic_ip\x18\x04 \x01(\x0b\x32\x0e.CMsgIPAddress\"*\n\x16\x43MsgGSDisconnectNotice\x12\x10\n\x08steam_id\x18\x01 \x01(\x06\"\xb9\x06\n\x15\x43MsgClientGamesPlayed\x12\x37\n\x0cgames_played\x18\x01 \x03(\x0b\x32!.CMsgClientGamesPlayed.GamePlayed\x12\x16\n\x0e\x63lient_os_type\x18\x02 \x01(\r\x12\x1d\n\x15\x63loud_gaming_platform\x18\x03 \x01(\r\x1a\xaf\x05\n\nGamePlayed\x12\x13\n\x0bsteam_id_gs\x18\x01 \x01(\x04\x12\x0f\n\x07game_id\x18\x02 \x01(\x06\x12\"\n\x1a\x64\x65precated_game_ip_address\x18\x03 \x01(\r\x12\x11\n\tgame_port\x18\x04 \x01(\r\x12\x11\n\tis_secure\x18\x05 \x01(\x08\x12\r\n\x05token\x18\x06 \x01(\x0c\x12\x17\n\x0fgame_extra_info\x18\x07 \x01(\t\x12\x16\n\x0egame_data_blob\x18\x08 \x01(\x0c\x12\x12\n\nprocess_id\x18\t \x01(\r\x12\x1d\n\x15streaming_provider_id\x18\n \x01(\r\x12\x12\n\ngame_flags\x18\x0b \x01(\r\x12\x10\n\x08owner_id\x18\x0c \x01(\r\x12\x15\n\rvr_hmd_vendor\x18\r \x01(\t\x12\x14\n\x0cvr_hmd_model\x18\x0e \x01(\t\x12\x1d\n\x12launch_option_type\x18\x0f \x01(\r:\x01\x30\x12#\n\x17primary_controller_type\x18\x10 \x01(\x05:\x02-1\x12\'\n\x1fprimary_steam_controller_serial\x18\x11 \x01(\t\x12\'\n\x1ctotal_steam_controller_count\x18\x12 \x01(\r:\x01\x30\x12+\n total_non_steam_controller_count\x18\x13 \x01(\r:\x01\x30\x12&\n\x1b\x63ontroller_workshop_file_id\x18\x14 \x01(\x04:\x01\x30\x12\x18\n\rlaunch_source\x18\x15 \x01(\r:\x01\x30\x12\x16\n\x0evr_hmd_runtime\x18\x16 \x01(\r\x12\'\n\x0fgame_ip_address\x18\x17 \x01(\x0b\x32\x0e.CMsgIPAddress\x12%\n\x1a\x63ontroller_connection_type\x18\x18 \x01(\r:\x01\x30\"9\n\rCMsgGSApprove\x12\x10\n\x08steam_id\x18\x01 \x01(\x06\x12\x16\n\x0eowner_steam_id\x18\x02 \x01(\x06\"I\n\nCMsgGSDeny\x12\x10\n\x08steam_id\x18\x01 \x01(\x06\x12\x14\n\x0c\x65\x64\x65ny_reason\x18\x02 \x01(\x05\x12\x13\n\x0b\x64\x65ny_string\x18\x03 \x01(\t\"4\n\nCMsgGSKick\x12\x10\n\x08steam_id\x18\x01 \x01(\x06\x12\x14\n\x0c\x65\x64\x65ny_reason\x18\x02 \x01(\x05\"\xb6\x01\n\x12\x43MsgClientAuthList\x12\x13\n\x0btokens_left\x18\x01 \x01(\r\x12\x18\n\x10last_request_seq\x18\x02 \x01(\r\x12$\n\x1clast_request_seq_from_server\x18\x03 \x01(\r\x12 \n\x07tickets\x18\x04 \x03(\x0b\x32\x0f.CMsgAuthTicket\x12\x0f\n\x07\x61pp_ids\x18\x05 \x03(\r\x12\x18\n\x10message_sequence\x18\x06 \x01(\r\"V\n\x15\x43MsgClientAuthListAck\x12\x12\n\nticket_crc\x18\x01 \x03(\r\x12\x0f\n\x07\x61pp_ids\x18\x02 \x03(\r\x12\x18\n\x10message_sequence\x18\x03 \x01(\r\"\x8e\x04\n\x15\x43MsgClientLicenseList\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x30\n\x08licenses\x18\x02 \x03(\x0b\x32\x1e.CMsgClientLicenseList.License\x1a\xae\x03\n\x07License\x12\x12\n\npackage_id\x18\x01 \x01(\r\x12\x14\n\x0ctime_created\x18\x02 \x01(\x07\x12\x19\n\x11time_next_process\x18\x03 \x01(\x07\x12\x14\n\x0cminute_limit\x18\x04 \x01(\x05\x12\x14\n\x0cminutes_used\x18\x05 \x01(\x05\x12\x16\n\x0epayment_method\x18\x06 \x01(\r\x12\r\n\x05\x66lags\x18\x07 \x01(\r\x12\x1d\n\x15purchase_country_code\x18\x08 \x01(\t\x12\x14\n\x0clicense_type\x18\t \x01(\r\x12\x16\n\x0eterritory_code\x18\n \x01(\x05\x12\x15\n\rchange_number\x18\x0b \x01(\x05\x12\x10\n\x08owner_id\x18\x0c \x01(\r\x12\x16\n\x0einitial_period\x18\r \x01(\r\x12\x19\n\x11initial_time_unit\x18\x0e \x01(\r\x12\x16\n\x0erenewal_period\x18\x0f \x01(\r\x12\x19\n\x11renewal_time_unit\x18\x10 \x01(\r\x12\x14\n\x0c\x61\x63\x63\x65ss_token\x18\x11 \x01(\x04\x12\x19\n\x11master_package_id\x18\x12 \x01(\r\"|\n\x15\x43MsgClientLBSSetScore\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0eleaderboard_id\x18\x02 \x01(\x05\x12\r\n\x05score\x18\x03 \x01(\x05\x12\x0f\n\x07\x64\x65tails\x18\x04 \x01(\x0c\x12\x1b\n\x13upload_score_method\x18\x05 \x01(\x05\"\xa2\x01\n\x1d\x43MsgClientLBSSetScoreResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x1f\n\x17leaderboard_entry_count\x18\x02 \x01(\x05\x12\x15\n\rscore_changed\x18\x03 \x01(\x08\x12\x1c\n\x14global_rank_previous\x18\x04 \x01(\x05\x12\x17\n\x0fglobal_rank_new\x18\x05 \x01(\x05\"M\n\x13\x43MsgClientLBSSetUGC\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0eleaderboard_id\x18\x02 \x01(\x05\x12\x0e\n\x06ugc_id\x18\x03 \x01(\x06\"1\n\x1b\x43MsgClientLBSSetUGCResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\"\xa7\x01\n\x1b\x43MsgClientLBSFindOrCreateLB\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x1f\n\x17leaderboard_sort_method\x18\x02 \x01(\x05\x12 \n\x18leaderboard_display_type\x18\x03 \x01(\x05\x12\x1b\n\x13\x63reate_if_not_found\x18\x04 \x01(\x08\x12\x18\n\x10leaderboard_name\x18\x05 \x01(\t\"\xd5\x01\n#CMsgClientLBSFindOrCreateLBResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x16\n\x0eleaderboard_id\x18\x02 \x01(\x05\x12\x1f\n\x17leaderboard_entry_count\x18\x03 \x01(\x05\x12\"\n\x17leaderboard_sort_method\x18\x04 \x01(\x05:\x01\x30\x12#\n\x18leaderboard_display_type\x18\x05 \x01(\x05:\x01\x30\x12\x18\n\x10leaderboard_name\x18\x06 \x01(\t\"\x9f\x01\n\x19\x43MsgClientLBSGetLBEntries\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\x05\x12\x16\n\x0eleaderboard_id\x18\x02 \x01(\x05\x12\x13\n\x0brange_start\x18\x03 \x01(\x05\x12\x11\n\trange_end\x18\x04 \x01(\x05\x12 \n\x18leaderboard_data_request\x18\x05 \x01(\x05\x12\x10\n\x08steamids\x18\x06 \x03(\x06\"\xf8\x01\n!CMsgClientLBSGetLBEntriesResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x1f\n\x17leaderboard_entry_count\x18\x02 \x01(\x05\x12\x39\n\x07\x65ntries\x18\x03 \x03(\x0b\x32(.CMsgClientLBSGetLBEntriesResponse.Entry\x1a\x63\n\x05\x45ntry\x12\x15\n\rsteam_id_user\x18\x01 \x01(\x06\x12\x13\n\x0bglobal_rank\x18\x02 \x01(\x05\x12\r\n\x05score\x18\x03 \x01(\x05\x12\x0f\n\x07\x64\x65tails\x18\x04 \x01(\x0c\x12\x0e\n\x06ugc_id\x18\x05 \x01(\x06\"\xbf\x01\n\x1e\x43MsgClientAppMinutesPlayedData\x12L\n\x0eminutes_played\x18\x01 \x03(\x0b\x32\x34.CMsgClientAppMinutesPlayedData.AppMinutesPlayedData\x1aO\n\x14\x41ppMinutesPlayedData\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x0f\n\x07\x66orever\x18\x02 \x01(\x05\x12\x16\n\x0elast_two_weeks\x18\x03 \x01(\x05\"\xaa\x01\n\x1a\x43MsgClientIsLimitedAccount\x12\x1b\n\x13\x62is_limited_account\x18\x01 \x01(\x08\x12\x1c\n\x14\x62is_community_banned\x18\x02 \x01(\x08\x12\x1a\n\x12\x62is_locked_account\x18\x03 \x01(\x08\x12\x35\n-bis_limited_account_allowed_to_invite_friends\x18\x04 \x01(\x08\"\xa7\x01\n\x1e\x43MsgClientRequestedClientStats\x12\x42\n\rstats_to_send\x18\x01 \x03(\x0b\x32+.CMsgClientRequestedClientStats.StatsToSend\x1a\x41\n\x0bStatsToSend\x12\x13\n\x0b\x63lient_stat\x18\x01 \x01(\r\x12\x1d\n\x15stat_aggregate_method\x18\x02 \x01(\r\"\xc0\x01\n\x0f\x43MsgClientStat2\x12\x30\n\x0bstat_detail\x18\x01 \x03(\x0b\x32\x1b.CMsgClientStat2.StatDetail\x1a{\n\nStatDetail\x12\x13\n\x0b\x63lient_stat\x18\x01 \x01(\r\x12\x10\n\x08ll_value\x18\x02 \x01(\x03\x12\x13\n\x0btime_of_day\x18\x03 \x01(\r\x12\x0f\n\x07\x63\x65ll_id\x18\x04 \x01(\r\x12\x10\n\x08\x64\x65pot_id\x18\x05 \x01(\r\x12\x0e\n\x06\x61pp_id\x18\x06 \x01(\r\"\x98\x01\n\'CMsgClientMMSSetRatelimitPolicyOnClient\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x1a\n\x12\x65nable_rate_limits\x18\x02 \x01(\x08\x12\x1b\n\x13seconds_per_message\x18\x03 \x01(\x05\x12$\n\x1cmilliseconds_per_data_update\x18\x04 \x01(\x05\"\xe8\x01\n\x18\x43MsgClientMMSCreateLobby\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x13\n\x0bmax_members\x18\x02 \x01(\x05\x12\x12\n\nlobby_type\x18\x03 \x01(\x05\x12\x13\n\x0blobby_flags\x18\x04 \x01(\x05\x12\x0f\n\x07\x63\x65ll_id\x18\x05 \x01(\r\x12\x1c\n\x14\x64\x65precated_public_ip\x18\x06 \x01(\r\x12\x10\n\x08metadata\x18\x07 \x01(\x0c\x12\x1a\n\x12persona_name_owner\x18\x08 \x01(\t\x12!\n\tpublic_ip\x18\t \x01(\x0b\x32\x0e.CMsgIPAddress\"^\n CMsgClientMMSCreateLobbyResponse\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12\x12\n\x07\x65result\x18\x03 \x01(\x05:\x01\x32\"V\n\x16\x43MsgClientMMSJoinLobby\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12\x14\n\x0cpersona_name\x18\x03 \x01(\t\"\xcf\x02\n\x1e\x43MsgClientMMSJoinLobbyResponse\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12 \n\x18\x63hat_room_enter_response\x18\x03 \x01(\x05\x12\x13\n\x0bmax_members\x18\x04 \x01(\x05\x12\x12\n\nlobby_type\x18\x05 \x01(\x05\x12\x13\n\x0blobby_flags\x18\x06 \x01(\x05\x12\x16\n\x0esteam_id_owner\x18\x07 \x01(\x06\x12\x10\n\x08metadata\x18\x08 \x01(\x0c\x12\x37\n\x07members\x18\t \x03(\x0b\x32&.CMsgClientMMSJoinLobbyResponse.Member\x1a\x42\n\x06Member\x12\x10\n\x08steam_id\x18\x01 \x01(\x06\x12\x14\n\x0cpersona_name\x18\x02 \x01(\t\x12\x10\n\x08metadata\x18\x03 \x01(\x0c\"A\n\x17\x43MsgClientMMSLeaveLobby\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\"]\n\x1f\x43MsgClientMMSLeaveLobbyResponse\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12\x12\n\x07\x65result\x18\x03 \x01(\x05:\x01\x32\"\xa0\x02\n\x19\x43MsgClientMMSGetLobbyList\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x1d\n\x15num_lobbies_requested\x18\x03 \x01(\x05\x12\x0f\n\x07\x63\x65ll_id\x18\x04 \x01(\r\x12\x1c\n\x14\x64\x65precated_public_ip\x18\x05 \x01(\r\x12\x32\n\x07\x66ilters\x18\x06 \x03(\x0b\x32!.CMsgClientMMSGetLobbyList.Filter\x12!\n\tpublic_ip\x18\x07 \x01(\x0b\x32\x0e.CMsgIPAddress\x1aN\n\x06\x46ilter\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\x12\x13\n\x0b\x63omparision\x18\x03 \x01(\x05\x12\x13\n\x0b\x66ilter_type\x18\x04 \x01(\x05\"\xa5\x02\n!CMsgClientMMSGetLobbyListResponse\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x12\n\x07\x65result\x18\x03 \x01(\x05:\x01\x32\x12\x39\n\x07lobbies\x18\x04 \x03(\x0b\x32(.CMsgClientMMSGetLobbyListResponse.Lobby\x1a\xa0\x01\n\x05Lobby\x12\x10\n\x08steam_id\x18\x01 \x01(\x06\x12\x13\n\x0bmax_members\x18\x02 \x01(\x05\x12\x12\n\nlobby_type\x18\x03 \x01(\x05\x12\x13\n\x0blobby_flags\x18\x04 \x01(\x05\x12\x10\n\x08metadata\x18\x05 \x01(\x0c\x12\x13\n\x0bnum_members\x18\x06 \x01(\x05\x12\x10\n\x08\x64istance\x18\x07 \x01(\x02\x12\x0e\n\x06weight\x18\x08 \x01(\x03\"\xac\x01\n\x19\x43MsgClientMMSSetLobbyData\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12\x17\n\x0fsteam_id_member\x18\x03 \x01(\x06\x12\x13\n\x0bmax_members\x18\x04 \x01(\x05\x12\x12\n\nlobby_type\x18\x05 \x01(\x05\x12\x13\n\x0blobby_flags\x18\x06 \x01(\x05\x12\x10\n\x08metadata\x18\x07 \x01(\x0c\"_\n!CMsgClientMMSSetLobbyDataResponse\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12\x12\n\x07\x65result\x18\x03 \x01(\x05:\x01\x32\"C\n\x19\x43MsgClientMMSGetLobbyData\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\"\xed\x02\n\x16\x43MsgClientMMSLobbyData\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12\x13\n\x0bnum_members\x18\x03 \x01(\x05\x12\x13\n\x0bmax_members\x18\x04 \x01(\x05\x12\x12\n\nlobby_type\x18\x05 \x01(\x05\x12\x13\n\x0blobby_flags\x18\x06 \x01(\x05\x12\x16\n\x0esteam_id_owner\x18\x07 \x01(\x06\x12\x10\n\x08metadata\x18\x08 \x01(\x0c\x12/\n\x07members\x18\t \x03(\x0b\x32\x1e.CMsgClientMMSLobbyData.Member\x12\x14\n\x0clobby_cellid\x18\n \x01(\r\x12#\n\x1bowner_should_accept_changes\x18\x0b \x01(\x08\x1a\x42\n\x06Member\x12\x10\n\x08steam_id\x18\x01 \x01(\x06\x12\x14\n\x0cpersona_name\x18\x02 \x01(\t\x12\x10\n\x08metadata\x18\x03 \x01(\x0c\"w\n\x1d\x43MsgClientMMSSendLobbyChatMsg\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12\x17\n\x0fsteam_id_target\x18\x03 \x01(\x06\x12\x15\n\rlobby_message\x18\x04 \x01(\x0c\"s\n\x19\x43MsgClientMMSLobbyChatMsg\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12\x17\n\x0fsteam_id_sender\x18\x03 \x01(\x06\x12\x15\n\rlobby_message\x18\x04 \x01(\x0c\"`\n\x1a\x43MsgClientMMSSetLobbyOwner\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12\x1a\n\x12steam_id_new_owner\x18\x03 \x01(\x06\"`\n\"CMsgClientMMSSetLobbyOwnerResponse\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12\x12\n\x07\x65result\x18\x03 \x01(\x05:\x01\x32\"^\n\x1b\x43MsgClientMMSSetLobbyLinked\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12\x17\n\x0fsteam_id_lobby2\x18\x03 \x01(\x06\"\xcc\x01\n\x1f\x43MsgClientMMSSetLobbyGameServer\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12!\n\x19\x64\x65precated_game_server_ip\x18\x03 \x01(\r\x12\x18\n\x10game_server_port\x18\x04 \x01(\r\x12\x1c\n\x14game_server_steam_id\x18\x05 \x01(\x06\x12&\n\x0egame_server_ip\x18\x06 \x01(\x0b\x32\x0e.CMsgIPAddress\"\xcc\x01\n\x1f\x43MsgClientMMSLobbyGameServerSet\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12!\n\x19\x64\x65precated_game_server_ip\x18\x03 \x01(\r\x12\x18\n\x10game_server_port\x18\x04 \x01(\r\x12\x1c\n\x14game_server_steam_id\x18\x05 \x01(\x06\x12&\n\x0egame_server_ip\x18\x06 \x01(\x0b\x32\x0e.CMsgIPAddress\"s\n\x1c\x43MsgClientMMSUserJoinedLobby\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12\x15\n\rsteam_id_user\x18\x03 \x01(\x06\x12\x14\n\x0cpersona_name\x18\x04 \x01(\t\"q\n\x1a\x43MsgClientMMSUserLeftLobby\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12\x15\n\rsteam_id_user\x18\x03 \x01(\x06\x12\x14\n\x0cpersona_name\x18\x04 \x01(\t\"c\n\x1a\x43MsgClientMMSInviteToLobby\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12\x1d\n\x15steam_id_user_invited\x18\x03 \x01(\x06\"x\n\x1b\x43MsgClientMMSGetLobbyStatus\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12\x18\n\x10\x63laim_membership\x18\x03 \x01(\x08\x12\x17\n\x0f\x63laim_ownership\x18\x04 \x01(\x08\"\x8f\x01\n#CMsgClientMMSGetLobbyStatusResponse\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12@\n\x0clobby_status\x18\x03 \x01(\x0e\x32\x10.EMMSLobbyStatus:\x18k_EMMSLobbyStatusInvalid\"r\n\x16\x43MsgClientInviteToGame\x12\x15\n\rsteam_id_dest\x18\x01 \x01(\x06\x12\x14\n\x0csteam_id_src\x18\x02 \x01(\x06\x12\x16\n\x0e\x63onnect_string\x18\x03 \x01(\t\x12\x13\n\x0bremote_play\x18\x04 \x01(\t\"\xb9\x01\n\x14\x43MsgClientChatInvite\x12\x18\n\x10steam_id_invited\x18\x01 \x01(\x06\x12\x15\n\rsteam_id_chat\x18\x02 \x01(\x06\x12\x17\n\x0fsteam_id_patron\x18\x03 \x01(\x06\x12\x15\n\rchatroom_type\x18\x04 \x01(\x05\x12\x1c\n\x14steam_id_friend_chat\x18\x05 \x01(\x06\x12\x11\n\tchat_name\x18\x06 \x01(\t\x12\x0f\n\x07game_id\x18\x07 \x01(\x06\"\x8a\x08\n\x19\x43MsgClientConnectionStats\x12;\n\x0bstats_logon\x18\x01 \x01(\x0b\x32&.CMsgClientConnectionStats.Stats_Logon\x12;\n\x0bstats_vconn\x18\x02 \x01(\x0b\x32&.CMsgClientConnectionStats.Stats_VConn\x1a\xc7\x01\n\x0bStats_Logon\x12\x18\n\x10\x63onnect_attempts\x18\x01 \x01(\x05\x12\x19\n\x11\x63onnect_successes\x18\x02 \x01(\x05\x12\x18\n\x10\x63onnect_failures\x18\x03 \x01(\x05\x12\x1b\n\x13\x63onnections_dropped\x18\x04 \x01(\x05\x12\x17\n\x0fseconds_running\x18\x05 \x01(\r\x12\x1c\n\x14msec_tologonthistime\x18\x06 \x01(\r\x12\x15\n\rcount_bad_cms\x18\x07 \x01(\r\x1aq\n\tStats_UDP\x12\x11\n\tpkts_sent\x18\x01 \x01(\x04\x12\x12\n\nbytes_sent\x18\x02 \x01(\x04\x12\x11\n\tpkts_recv\x18\x03 \x01(\x04\x12\x16\n\x0epkts_processed\x18\x04 \x01(\x04\x12\x12\n\nbytes_recv\x18\x05 \x01(\x04\x1a\xb5\x04\n\x0bStats_VConn\x12\x17\n\x0f\x63onnections_udp\x18\x01 \x01(\r\x12\x17\n\x0f\x63onnections_tcp\x18\x02 \x01(\r\x12\x37\n\tstats_udp\x18\x03 \x01(\x0b\x32$.CMsgClientConnectionStats.Stats_UDP\x12\x16\n\x0epkts_abandoned\x18\x04 \x01(\x04\x12\x19\n\x11\x63onn_req_received\x18\x05 \x01(\x04\x12\x13\n\x0bpkts_resent\x18\x06 \x01(\x04\x12\x11\n\tmsgs_sent\x18\x07 \x01(\x04\x12\x18\n\x10msgs_sent_failed\x18\x08 \x01(\x04\x12\x11\n\tmsgs_recv\x18\t \x01(\x04\x12\x16\n\x0e\x64\x61tagrams_sent\x18\n \x01(\x04\x12\x16\n\x0e\x64\x61tagrams_recv\x18\x0b \x01(\x04\x12\x15\n\rbad_pkts_recv\x18\x0c \x01(\x04\x12\x1e\n\x16unknown_conn_pkts_recv\x18\r \x01(\x04\x12\x18\n\x10missed_pkts_recv\x18\x0e \x01(\x04\x12\x15\n\rdup_pkts_recv\x18\x0f \x01(\x04\x12!\n\x19\x66\x61iled_connect_challenges\x18\x10 \x01(\x04\x12\x1d\n\x15micro_sec_avg_latency\x18\x11 \x01(\r\x12\x1d\n\x15micro_sec_min_latency\x18\x12 \x01(\r\x12\x1d\n\x15micro_sec_max_latency\x18\x13 \x01(\r\x12\x1b\n\x13mem_pool_msg_in_use\x18\x14 \x01(\r\"\xd2\x01\n\x1a\x43MsgClientServersAvailable\x12R\n\x16server_types_available\x18\x01 \x03(\x0b\x32\x32.CMsgClientServersAvailable.Server_Types_Available\x12%\n\x1dserver_type_for_auth_services\x18\x02 \x01(\r\x1a\x39\n\x16Server_Types_Available\x12\x0e\n\x06server\x18\x01 \x01(\r\x12\x0f\n\x07\x63hanged\x18\x02 \x01(\x08\"u\n\x16\x43MsgClientGetUserStats\x12\x0f\n\x07game_id\x18\x01 \x01(\x06\x12\x11\n\tcrc_stats\x18\x02 \x01(\r\x12\x1c\n\x14schema_local_version\x18\x03 \x01(\x05\x12\x19\n\x11steam_id_for_user\x18\x04 \x01(\x06\"\xdf\x02\n\x1e\x43MsgClientGetUserStatsResponse\x12\x0f\n\x07game_id\x18\x01 \x01(\x06\x12\x12\n\x07\x65result\x18\x02 \x01(\x05:\x01\x32\x12\x11\n\tcrc_stats\x18\x03 \x01(\r\x12\x0e\n\x06schema\x18\x04 \x01(\x0c\x12\x34\n\x05stats\x18\x05 \x03(\x0b\x32%.CMsgClientGetUserStatsResponse.Stats\x12N\n\x12\x61\x63hievement_blocks\x18\x06 \x03(\x0b\x32\x32.CMsgClientGetUserStatsResponse.Achievement_Blocks\x1a,\n\x05Stats\x12\x0f\n\x07stat_id\x18\x01 \x01(\r\x12\x12\n\nstat_value\x18\x02 \x01(\r\x1a\x41\n\x12\x41\x63hievement_Blocks\x12\x16\n\x0e\x61\x63hievement_id\x18\x01 \x01(\r\x12\x13\n\x0bunlock_time\x18\x02 \x03(\x07\"\x9a\x02\n CMsgClientStoreUserStatsResponse\x12\x0f\n\x07game_id\x18\x01 \x01(\x06\x12\x12\n\x07\x65result\x18\x02 \x01(\x05:\x01\x32\x12\x11\n\tcrc_stats\x18\x03 \x01(\r\x12Z\n\x17stats_failed_validation\x18\x04 \x03(\x0b\x32\x39.CMsgClientStoreUserStatsResponse.Stats_Failed_Validation\x12\x19\n\x11stats_out_of_date\x18\x05 \x01(\x08\x1aG\n\x17Stats_Failed_Validation\x12\x0f\n\x07stat_id\x18\x01 \x01(\r\x12\x1b\n\x13reverted_stat_value\x18\x02 \x01(\r\"\xe8\x01\n\x19\x43MsgClientStoreUserStats2\x12\x0f\n\x07game_id\x18\x01 \x01(\x06\x12\x17\n\x0fsettor_steam_id\x18\x02 \x01(\x06\x12\x17\n\x0fsettee_steam_id\x18\x03 \x01(\x06\x12\x11\n\tcrc_stats\x18\x04 \x01(\r\x12\x16\n\x0e\x65xplicit_reset\x18\x05 \x01(\x08\x12/\n\x05stats\x18\x06 \x03(\x0b\x32 .CMsgClientStoreUserStats2.Stats\x1a,\n\x05Stats\x12\x0f\n\x07stat_id\x18\x01 \x01(\r\x12\x12\n\nstat_value\x18\x02 \x01(\r\"\xc2\x01\n\x16\x43MsgClientStatsUpdated\x12\x10\n\x08steam_id\x18\x01 \x01(\x06\x12\x0f\n\x07game_id\x18\x02 \x01(\x06\x12\x11\n\tcrc_stats\x18\x03 \x01(\r\x12<\n\rupdated_stats\x18\x04 \x03(\x0b\x32%.CMsgClientStatsUpdated.Updated_Stats\x1a\x34\n\rUpdated_Stats\x12\x0f\n\x07stat_id\x18\x01 \x01(\r\x12\x12\n\nstat_value\x18\x02 \x01(\r\"\xbc\x01\n\x18\x43MsgClientStoreUserStats\x12\x0f\n\x07game_id\x18\x01 \x01(\x06\x12\x16\n\x0e\x65xplicit_reset\x18\x02 \x01(\x08\x12@\n\x0estats_to_store\x18\x03 \x03(\x0b\x32(.CMsgClientStoreUserStats.Stats_To_Store\x1a\x35\n\x0eStats_To_Store\x12\x0f\n\x07stat_id\x18\x01 \x01(\r\x12\x12\n\nstat_value\x18\x02 \x01(\r\"\x1c\n\x1a\x43MsgClientGetClientDetails\"?\n$CMsgClientReportOverlayDetourFailure\x12\x17\n\x0f\x66\x61ilure_strings\x18\x01 \x03(\t\"\xbf\x02\n\"CMsgClientGetClientDetailsResponse\x12\x17\n\x0fpackage_version\x18\x01 \x01(\r\x12\x18\n\x10protocol_version\x18\x08 \x01(\r\x12\n\n\x02os\x18\x02 \x01(\t\x12\x14\n\x0cmachine_name\x18\x03 \x01(\t\x12\x11\n\tip_public\x18\x04 \x01(\t\x12\x12\n\nip_private\x18\x05 \x01(\t\x12\x17\n\x0f\x62ytes_available\x18\x07 \x01(\x04\x12?\n\rgames_running\x18\x06 \x03(\x0b\x32(.CMsgClientGetClientDetailsResponse.Game\x1a\x43\n\x04Game\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x12\n\nextra_info\x18\x02 \x01(\t\x12\x18\n\x10time_running_sec\x18\x03 \x01(\r\"\x88\x01\n\x1a\x43MsgClientGetClientAppList\x12\r\n\x05media\x18\x01 \x01(\x08\x12\r\n\x05tools\x18\x02 \x01(\x08\x12\r\n\x05games\x18\x03 \x01(\x08\x12\x16\n\x0eonly_installed\x18\x04 \x01(\x08\x12\x15\n\ronly_changing\x18\x05 \x01(\x08\x12\x0e\n\x06\x63omics\x18\x06 \x01(\x08\"\x91\x04\n\"CMsgClientGetClientAppListResponse\x12\x35\n\x04\x61pps\x18\x01 \x03(\x0b\x32\'.CMsgClientGetClientAppListResponse.App\x12\x17\n\x0f\x62ytes_available\x18\x02 \x01(\x04\x1a\x9a\x03\n\x03\x41pp\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x10\n\x08\x63\x61tegory\x18\x02 \x01(\t\x12\x10\n\x08\x61pp_type\x18\n \x01(\t\x12\x10\n\x08\x66\x61vorite\x18\x03 \x01(\x08\x12\x11\n\tinstalled\x18\x04 \x01(\x08\x12\x13\n\x0b\x61uto_update\x18\x05 \x01(\x08\x12\x18\n\x10\x62ytes_downloaded\x18\x06 \x01(\x04\x12\x14\n\x0c\x62ytes_needed\x18\x07 \x01(\x04\x12\x1b\n\x13\x62ytes_download_rate\x18\x08 \x01(\r\x12\x17\n\x0f\x64ownload_paused\x18\x0b \x01(\x08\x12\x17\n\x0fnum_downloading\x18\x0c \x01(\r\x12\x12\n\nnum_paused\x18\r \x01(\r\x12\x10\n\x08\x63hanging\x18\x0e \x01(\x08\x12\x1d\n\x15\x61vailable_on_platform\x18\x0f \x01(\x08\x12\x39\n\x04\x64lcs\x18\t \x03(\x0b\x32+.CMsgClientGetClientAppListResponse.App.DLC\x1a\'\n\x03\x44LC\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x11\n\tinstalled\x18\x02 \x01(\x08\"+\n\x1a\x43MsgClientInstallClientApp\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\"4\n\"CMsgClientInstallClientAppResponse\x12\x0e\n\x06result\x18\x01 \x01(\r\"-\n\x1c\x43MsgClientUninstallClientApp\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\"6\n$CMsgClientUninstallClientAppResponse\x12\x0e\n\x06result\x18\x01 \x01(\r\"B\n!CMsgClientSetClientAppUpdateState\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x0e\n\x06update\x18\x02 \x01(\x08\";\n)CMsgClientSetClientAppUpdateStateResponse\x12\x0e\n\x06result\x18\x01 \x01(\r\"\x86\x02\n\x1e\x43MsgClientUFSUploadFileRequest\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x11\n\tfile_size\x18\x02 \x01(\r\x12\x15\n\rraw_file_size\x18\x03 \x01(\r\x12\x10\n\x08sha_file\x18\x04 \x01(\x0c\x12\x12\n\ntime_stamp\x18\x05 \x01(\x04\x12\x11\n\tfile_name\x18\x06 \x01(\t\x12$\n\x1cplatforms_to_sync_deprecated\x18\x07 \x01(\r\x12%\n\x11platforms_to_sync\x18\x08 \x01(\r:\n4294967295\x12\x0f\n\x07\x63\x65ll_id\x18\t \x01(\r\x12\x13\n\x0b\x63\x61n_encrypt\x18\n \x01(\x08\"\xbb\x01\n\x1f\x43MsgClientUFSUploadFileResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x10\n\x08sha_file\x18\x02 \x01(\x0c\x12\x10\n\x08use_http\x18\x03 \x01(\x08\x12\x11\n\thttp_host\x18\x04 \x01(\t\x12\x10\n\x08http_url\x18\x05 \x01(\t\x12\x12\n\nkv_headers\x18\x06 \x01(\x0c\x12\x11\n\tuse_https\x18\x07 \x01(\x08\x12\x14\n\x0c\x65ncrypt_file\x18\x08 \x01(\x08\"\xae\x01\n\x19\x43MsgClientUFSUploadCommit\x12.\n\x05\x66iles\x18\x01 \x03(\x0b\x32\x1f.CMsgClientUFSUploadCommit.File\x1a\x61\n\x04\x46ile\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x0e\n\x06\x61pp_id\x18\x02 \x01(\r\x12\x10\n\x08sha_file\x18\x03 \x01(\x0c\x12\x10\n\x08\x63ub_file\x18\x04 \x01(\r\x12\x11\n\tfile_name\x18\x05 \x01(\t\"\x99\x01\n!CMsgClientUFSUploadCommitResponse\x12\x36\n\x05\x66iles\x18\x01 \x03(\x0b\x32\'.CMsgClientUFSUploadCommitResponse.File\x1a<\n\x04\x46ile\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x0e\n\x06\x61pp_id\x18\x02 \x01(\r\x12\x10\n\x08sha_file\x18\x03 \x01(\x0c\"L\n\x16\x43MsgClientUFSFileChunk\x12\x10\n\x08sha_file\x18\x01 \x01(\x0c\x12\x12\n\nfile_start\x18\x02 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\" \n\x1e\x43MsgClientUFSTransferHeartbeat\"G\n\x1f\x43MsgClientUFSUploadFileFinished\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x10\n\x08sha_file\x18\x02 \x01(\x0c\"_\n\x1e\x43MsgClientUFSDeleteFileRequest\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x11\n\tfile_name\x18\x02 \x01(\t\x12\x1a\n\x12is_explicit_delete\x18\x03 \x01(\x08\"H\n\x1f\x43MsgClientUFSDeleteFileResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x11\n\tfile_name\x18\x02 \x01(\t\"S\n\x1e\x43MsgClientUFSGetFileListForApp\x12\x15\n\rapps_to_query\x18\x01 \x03(\r\x12\x1a\n\x12send_path_prefixes\x18\x02 \x01(\x08\"\xc1\x02\n&CMsgClientUFSGetFileListForAppResponse\x12;\n\x05\x66iles\x18\x01 \x03(\x0b\x32,.CMsgClientUFSGetFileListForAppResponse.File\x12\x15\n\rpath_prefixes\x18\x02 \x03(\t\x1a\xb8\x01\n\x04\x46ile\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x11\n\tfile_name\x18\x02 \x01(\t\x12\x10\n\x08sha_file\x18\x03 \x01(\x0c\x12\x12\n\ntime_stamp\x18\x04 \x01(\x04\x12\x15\n\rraw_file_size\x18\x05 \x01(\r\x12\x1a\n\x12is_explicit_delete\x18\x06 \x01(\x08\x12\x19\n\x11platforms_to_sync\x18\x07 \x01(\r\x12\x19\n\x11path_prefix_index\x18\x08 \x01(\r:\x08\x80\xb5\x18\x08\x88\xb5\x18\x10\"Z\n\x1c\x43MsgClientUFSDownloadRequest\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x11\n\tfile_name\x18\x02 \x01(\t\x12\x17\n\x0f\x63\x61n_handle_http\x18\x03 \x01(\x08\"\xa0\x02\n\x1d\x43MsgClientUFSDownloadResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x0e\n\x06\x61pp_id\x18\x02 \x01(\r\x12\x11\n\tfile_size\x18\x03 \x01(\r\x12\x15\n\rraw_file_size\x18\x04 \x01(\r\x12\x10\n\x08sha_file\x18\x05 \x01(\x0c\x12\x12\n\ntime_stamp\x18\x06 \x01(\x04\x12\x1a\n\x12is_explicit_delete\x18\x07 \x01(\x08\x12\x10\n\x08use_http\x18\x08 \x01(\x08\x12\x11\n\thttp_host\x18\t \x01(\t\x12\x10\n\x08http_url\x18\n \x01(\t\x12\x12\n\nkv_headers\x18\x0b \x01(\x0c\x12\x11\n\tuse_https\x18\x0c \x01(\x08\x12\x11\n\tencrypted\x18\r \x01(\x08\"]\n\x19\x43MsgClientUFSLoginRequest\x12\x18\n\x10protocol_version\x18\x01 \x01(\r\x12\x18\n\x10\x61m_session_token\x18\x02 \x01(\x04\x12\x0c\n\x04\x61pps\x18\x03 \x03(\r\"0\n\x1a\x43MsgClientUFSLoginResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\"G\n#CMsgClientRequestEncryptedAppTicket\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x10\n\x08userdata\x18\x02 \x01(\x0c\"\x84\x01\n+CMsgClientRequestEncryptedAppTicketResponse\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x12\n\x07\x65result\x18\x02 \x01(\x05:\x01\x32\x12\x31\n\x14\x65ncrypted_app_ticket\x18\x03 \x01(\x0b\x32\x13.EncryptedAppTicket\"\xa6\x01\n\x1a\x43MsgClientWalletInfoUpdate\x12\x12\n\nhas_wallet\x18\x01 \x01(\x08\x12\x0f\n\x07\x62\x61lance\x18\x02 \x01(\x05\x12\x10\n\x08\x63urrency\x18\x03 \x01(\x05\x12\x17\n\x0f\x62\x61lance_delayed\x18\x04 \x01(\x05\x12\x17\n\tbalance64\x18\x05 \x01(\x03\x42\x04\xa0\xb6\x18\x01\x12\x1f\n\x11\x62\x61lance64_delayed\x18\x06 \x01(\x03\x42\x04\xa0\xb6\x18\x01\"M\n\x17\x43MsgClientAppInfoUpdate\x12\x19\n\x11last_changenumber\x18\x01 \x01(\r\x12\x17\n\x0fsend_changelist\x18\x02 \x01(\x08\"d\n\x18\x43MsgClientAppInfoChanges\x12\x1d\n\x15\x63urrent_change_number\x18\x01 \x01(\r\x12\x19\n\x11\x66orce_full_update\x18\x02 \x01(\x08\x12\x0e\n\x06\x61ppIDs\x18\x03 \x03(\r\"\xab\x01\n\x18\x43MsgClientAppInfoRequest\x12+\n\x04\x61pps\x18\x01 \x03(\x0b\x32\x1d.CMsgClientAppInfoRequest.App\x12\x1f\n\x10supports_batches\x18\x02 \x01(\x08:\x05\x66\x61lse\x1a\x41\n\x03\x41pp\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x15\n\rsection_flags\x18\x02 \x01(\r\x12\x13\n\x0bsection_CRC\x18\x03 \x03(\r\"\x97\x02\n\x19\x43MsgClientAppInfoResponse\x12,\n\x04\x61pps\x18\x01 \x03(\x0b\x32\x1e.CMsgClientAppInfoResponse.App\x12\x14\n\x0c\x61pps_unknown\x18\x02 \x03(\r\x12\x14\n\x0c\x61pps_pending\x18\x03 \x01(\r\x1a\x99\x01\n\x03\x41pp\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x15\n\rchange_number\x18\x02 \x01(\r\x12\x38\n\x08sections\x18\x03 \x03(\x0b\x32&.CMsgClientAppInfoResponse.App.Section\x1a\x31\n\x07Section\x12\x12\n\nsection_id\x18\x01 \x01(\r\x12\x12\n\nsection_kv\x18\x02 \x01(\x0c:\x04\x88\xb5\x18\x00\"K\n\x1c\x43MsgClientPackageInfoRequest\x12\x13\n\x0bpackage_ids\x18\x01 \x03(\r\x12\x16\n\x0emeta_data_only\x18\x02 \x01(\x08\"\xe0\x01\n\x1d\x43MsgClientPackageInfoResponse\x12\x38\n\x08packages\x18\x01 \x03(\x0b\x32&.CMsgClientPackageInfoResponse.Package\x12\x18\n\x10packages_unknown\x18\x02 \x03(\r\x12\x18\n\x10packages_pending\x18\x03 \x01(\r\x1aQ\n\x07Package\x12\x12\n\npackage_id\x18\x01 \x01(\r\x12\x15\n\rchange_number\x18\x02 \x01(\r\x12\x0b\n\x03sha\x18\x03 \x01(\x0c\x12\x0e\n\x06\x62uffer\x18\x04 \x01(\x0c\"\xc0\x01\n!CMsgClientPICSChangesSinceRequest\x12\x1b\n\x13since_change_number\x18\x01 \x01(\r\x12\x1d\n\x15send_app_info_changes\x18\x02 \x01(\x08\x12!\n\x19send_package_info_changes\x18\x03 \x01(\x08\x12\x1b\n\x13num_app_info_cached\x18\x04 \x01(\r\x12\x1f\n\x17num_package_info_cached\x18\x05 \x01(\r\"\xe5\x03\n\"CMsgClientPICSChangesSinceResponse\x12\x1d\n\x15\x63urrent_change_number\x18\x01 \x01(\r\x12\x1b\n\x13since_change_number\x18\x02 \x01(\r\x12\x19\n\x11\x66orce_full_update\x18\x03 \x01(\x08\x12J\n\x0fpackage_changes\x18\x04 \x03(\x0b\x32\x31.CMsgClientPICSChangesSinceResponse.PackageChange\x12\x42\n\x0b\x61pp_changes\x18\x05 \x03(\x0b\x32-.CMsgClientPICSChangesSinceResponse.AppChange\x12\x1d\n\x15\x66orce_full_app_update\x18\x06 \x01(\x08\x12!\n\x19\x66orce_full_package_update\x18\x07 \x01(\x08\x1aN\n\rPackageChange\x12\x11\n\tpackageid\x18\x01 \x01(\r\x12\x15\n\rchange_number\x18\x02 \x01(\r\x12\x13\n\x0bneeds_token\x18\x03 \x01(\x08\x1a\x46\n\tAppChange\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x15\n\rchange_number\x18\x02 \x01(\r\x12\x13\n\x0bneeds_token\x18\x03 \x01(\x08\"\xeb\x02\n CMsgClientPICSProductInfoRequest\x12?\n\x08packages\x18\x01 \x03(\x0b\x32-.CMsgClientPICSProductInfoRequest.PackageInfo\x12\x37\n\x04\x61pps\x18\x02 \x03(\x0b\x32).CMsgClientPICSProductInfoRequest.AppInfo\x12\x16\n\x0emeta_data_only\x18\x03 \x01(\x08\x12\x17\n\x0fnum_prev_failed\x18\x04 \x01(\r\x12\x1f\n\x17supports_package_tokens\x18\x05 \x01(\r\x1a\x43\n\x07\x41ppInfo\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x14\n\x0c\x61\x63\x63\x65ss_token\x18\x02 \x01(\x04\x12\x13\n\x0bonly_public\x18\x03 \x01(\x08\x1a\x36\n\x0bPackageInfo\x12\x11\n\tpackageid\x18\x01 \x01(\r\x12\x14\n\x0c\x61\x63\x63\x65ss_token\x18\x02 \x01(\x04\"\xb9\x04\n!CMsgClientPICSProductInfoResponse\x12\x38\n\x04\x61pps\x18\x01 \x03(\x0b\x32*.CMsgClientPICSProductInfoResponse.AppInfo\x12\x16\n\x0eunknown_appids\x18\x02 \x03(\r\x12@\n\x08packages\x18\x03 \x03(\x0b\x32..CMsgClientPICSProductInfoResponse.PackageInfo\x12\x1a\n\x12unknown_packageids\x18\x04 \x03(\r\x12\x16\n\x0emeta_data_only\x18\x05 \x01(\x08\x12\x18\n\x10response_pending\x18\x06 \x01(\x08\x12\x15\n\rhttp_min_size\x18\x07 \x01(\r\x12\x11\n\thttp_host\x18\x08 \x01(\t\x1a\x86\x01\n\x07\x41ppInfo\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x15\n\rchange_number\x18\x02 \x01(\r\x12\x15\n\rmissing_token\x18\x03 \x01(\x08\x12\x0b\n\x03sha\x18\x04 \x01(\x0c\x12\x0e\n\x06\x62uffer\x18\x05 \x01(\x0c\x12\x13\n\x0bonly_public\x18\x06 \x01(\x08\x12\x0c\n\x04size\x18\x07 \x01(\r\x1ay\n\x0bPackageInfo\x12\x11\n\tpackageid\x18\x01 \x01(\r\x12\x15\n\rchange_number\x18\x02 \x01(\r\x12\x15\n\rmissing_token\x18\x03 \x01(\x08\x12\x0b\n\x03sha\x18\x04 \x01(\x0c\x12\x0e\n\x06\x62uffer\x18\x05 \x01(\x0c\x12\x0c\n\x04size\x18\x06 \x01(\r:\x04\x88\xb5\x18\x00\"F\n CMsgClientPICSAccessTokenRequest\x12\x12\n\npackageids\x18\x01 \x03(\r\x12\x0e\n\x06\x61ppids\x18\x02 \x03(\r\"\xdf\x02\n!CMsgClientPICSAccessTokenResponse\x12N\n\x15package_access_tokens\x18\x01 \x03(\x0b\x32/.CMsgClientPICSAccessTokenResponse.PackageToken\x12\x1d\n\x15package_denied_tokens\x18\x02 \x03(\r\x12\x46\n\x11\x61pp_access_tokens\x18\x03 \x03(\x0b\x32+.CMsgClientPICSAccessTokenResponse.AppToken\x12\x19\n\x11\x61pp_denied_tokens\x18\x04 \x03(\r\x1a\x37\n\x0cPackageToken\x12\x11\n\tpackageid\x18\x01 \x01(\r\x12\x14\n\x0c\x61\x63\x63\x65ss_token\x18\x02 \x01(\x04\x1a/\n\x08\x41ppToken\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x14\n\x0c\x61\x63\x63\x65ss_token\x18\x02 \x01(\x04\"D\n\x1a\x43MsgClientUFSGetUGCDetails\x12&\n\x08hcontent\x18\x01 \x01(\x06:\x14\x31\x38\x34\x34\x36\x37\x34\x34\x30\x37\x33\x37\x30\x39\x35\x35\x31\x36\x31\x35\"\xe5\x01\n\"CMsgClientUFSGetUGCDetailsResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x0b\n\x03url\x18\x02 \x01(\t\x12\x0e\n\x06\x61pp_id\x18\x03 \x01(\r\x12\x10\n\x08\x66ilename\x18\x04 \x01(\t\x12\x17\n\x0fsteamid_creator\x18\x05 \x01(\x06\x12\x11\n\tfile_size\x18\x06 \x01(\r\x12\x1c\n\x14\x63ompressed_file_size\x18\x07 \x01(\r\x12\x17\n\x0frangecheck_host\x18\x08 \x01(\t\x12\x19\n\x11\x66ile_encoded_sha1\x18\t \x01(\t\"C\n\x1e\x43MsgClientUFSGetSingleFileInfo\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x11\n\tfile_name\x18\x02 \x01(\t\"\xb8\x01\n&CMsgClientUFSGetSingleFileInfoResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x0e\n\x06\x61pp_id\x18\x02 \x01(\r\x12\x11\n\tfile_name\x18\x03 \x01(\t\x12\x10\n\x08sha_file\x18\x04 \x01(\x0c\x12\x12\n\ntime_stamp\x18\x05 \x01(\x04\x12\x15\n\rraw_file_size\x18\x06 \x01(\r\x12\x1a\n\x12is_explicit_delete\x18\x07 \x01(\x08\";\n\x16\x43MsgClientUFSShareFile\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x11\n\tfile_name\x18\x02 \x01(\t\"\\\n\x1e\x43MsgClientUFSShareFileResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12&\n\x08hcontent\x18\x02 \x01(\x06:\x14\x31\x38\x34\x34\x36\x37\x34\x34\x30\x37\x33\x37\x30\x39\x35\x35\x31\x36\x31\x35\"3\n\x1b\x43MsgClientAMGetClanOfficers\x12\x14\n\x0csteamid_clan\x18\x01 \x01(\x06\"f\n#CMsgClientAMGetClanOfficersResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x14\n\x0csteamid_clan\x18\x02 \x01(\x06\x12\x15\n\rofficer_count\x18\x03 \x01(\x05\"\x90\x01\n!CMsgClientAMGetPersonaNameHistory\x12\x10\n\x08id_count\x18\x01 \x01(\x05\x12:\n\x03Ids\x18\x02 \x03(\x0b\x32-.CMsgClientAMGetPersonaNameHistory.IdInstance\x1a\x1d\n\nIdInstance\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\"\xc3\x02\n)CMsgClientAMGetPersonaNameHistoryResponse\x12O\n\tresponses\x18\x02 \x03(\x0b\x32<.CMsgClientAMGetPersonaNameHistoryResponse.NameTableInstance\x1a\xc4\x01\n\x11NameTableInstance\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x0f\n\x07steamid\x18\x02 \x01(\x06\x12X\n\x05names\x18\x03 \x03(\x0b\x32I.CMsgClientAMGetPersonaNameHistoryResponse.NameTableInstance.NameInstance\x1a\x30\n\x0cNameInstance\x12\x12\n\nname_since\x18\x01 \x01(\x07\x12\x0c\n\x04name\x18\x02 \x01(\t\"E\n\x1e\x43MsgClientDeregisterWithServer\x12\x13\n\x0b\x65servertype\x18\x01 \x01(\r\x12\x0e\n\x06\x61pp_id\x18\x02 \x01(\r\"\xab\x04\n\x13\x43MsgClientClanState\x12\x14\n\x0csteamid_clan\x18\x01 \x01(\x06\x12\x1a\n\x12\x63lan_account_flags\x18\x03 \x01(\r\x12\x30\n\tname_info\x18\x04 \x01(\x0b\x32\x1d.CMsgClientClanState.NameInfo\x12\x34\n\x0buser_counts\x18\x05 \x01(\x0b\x32\x1f.CMsgClientClanState.UserCounts\x12*\n\x06\x65vents\x18\x06 \x03(\x0b\x32\x1a.CMsgClientClanState.Event\x12\x31\n\rannouncements\x18\x07 \x03(\x0b\x32\x1a.CMsgClientClanState.Event\x12\x19\n\x11\x63hat_room_private\x18\x08 \x01(\x08\x1a\x31\n\x08NameInfo\x12\x11\n\tclan_name\x18\x01 \x01(\t\x12\x12\n\nsha_avatar\x18\x02 \x01(\x0c\x1ak\n\nUserCounts\x12\x0f\n\x07members\x18\x01 \x01(\r\x12\x0e\n\x06online\x18\x02 \x01(\r\x12\x10\n\x08\x63hatting\x18\x03 \x01(\r\x12\x0f\n\x07in_game\x18\x04 \x01(\r\x12\x19\n\x11\x63hat_room_members\x18\x05 \x01(\r\x1a`\n\x05\x45vent\x12\x0b\n\x03gid\x18\x01 \x01(\x06\x12\x12\n\nevent_time\x18\x02 \x01(\r\x12\x10\n\x08headline\x18\x03 \x01(\t\x12\x0f\n\x07game_id\x18\x04 \x01(\x06\x12\x13\n\x0bjust_posted\x18\x05 \x01(\x08\"\xac\x01\n\x1f\x43MsgClientUnsignedInstallScript\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x11\n\tfile_name\x18\x02 \x01(\t\x12\x11\n\tfile_size\x18\x03 \x01(\r\x12\x18\n\x10signature_broken\x18\x04 \x01(\x08\x12\x10\n\x08\x64\x65pot_id\x18\x05 \x01(\r\x12\x13\n\x0bmanifest_id\x18\x06 \x01(\x04\x12\x12\n\nfile_flags\x18\x07 \x01(\r*\x90\x01\n\x0f\x45MMSLobbyStatus\x12\x1c\n\x18k_EMMSLobbyStatusInvalid\x10\x00\x12\x1b\n\x17k_EMMSLobbyStatusExists\x10\x01\x12!\n\x1dk_EMMSLobbyStatusDoesNotExist\x10\x02\x12\x1f\n\x1bk_EMMSLobbyStatusNotAMember\x10\x03\x42\x05H\x01\x90\x01\x00')
+  serialized_pb=_b('\n steammessages_clientserver.proto\x1a\x18steammessages_base.proto\x1a\x1a\x65ncrypted_app_ticket.proto\"G\n\x1e\x43MsgClientUDSP2PSessionStarted\x12\x16\n\x0esteamid_remote\x18\x01 \x01(\x06\x12\r\n\x05\x61ppid\x18\x02 \x01(\x05\"\x81\x02\n\x1c\x43MsgClientUDSP2PSessionEnded\x12\x16\n\x0esteamid_remote\x18\x01 \x01(\x06\x12\r\n\x05\x61ppid\x18\x02 \x01(\x05\x12\x1a\n\x12session_length_sec\x18\x03 \x01(\x05\x12\x15\n\rsession_error\x18\x04 \x01(\x05\x12\x0f\n\x07nattype\x18\x05 \x01(\x05\x12\x12\n\nbytes_recv\x18\x06 \x01(\x05\x12\x12\n\nbytes_sent\x18\x07 \x01(\x05\x12\x18\n\x10\x62ytes_sent_relay\x18\x08 \x01(\x05\x12\x18\n\x10\x62ytes_recv_relay\x18\t \x01(\x05\x12\x1a\n\x12time_to_connect_ms\x18\n \x01(\x05\"j\n\"CMsgClientRegisterAuthTicketWithCM\x12\x18\n\x10protocol_version\x18\x01 \x01(\r\x12\x0e\n\x06ticket\x18\x03 \x01(\x0c\x12\x1a\n\x12\x63lient_instance_id\x18\x04 \x01(\x04\"\xd1\x01\n\x1c\x43MsgClientTicketAuthComplete\x12\x10\n\x08steam_id\x18\x01 \x01(\x06\x12\x0f\n\x07game_id\x18\x02 \x01(\x06\x12\x0e\n\x06\x65state\x18\x03 \x01(\r\x12\x1e\n\x16\x65\x61uth_session_response\x18\x04 \x01(\r\x12\x19\n\x11\x44\x45PRECATED_ticket\x18\x05 \x01(\x0c\x12\x12\n\nticket_crc\x18\x06 \x01(\r\x12\x17\n\x0fticket_sequence\x18\x07 \x01(\r\x12\x16\n\x0eowner_steam_id\x18\x08 \x01(\x06\"\x80\x01\n\x10\x43MsgClientCMList\x12\x14\n\x0c\x63m_addresses\x18\x01 \x03(\r\x12\x10\n\x08\x63m_ports\x18\x02 \x03(\r\x12\x1e\n\x16\x63m_websocket_addresses\x18\x03 \x03(\t\x12$\n\x1cpercent_default_to_websocket\x18\x04 \x01(\r\"\xa3\x01\n\x1b\x43MsgClientP2PConnectionInfo\x12\x15\n\rsteam_id_dest\x18\x01 \x01(\x06\x12\x14\n\x0csteam_id_src\x18\x02 \x01(\x06\x12\x0e\n\x06\x61pp_id\x18\x03 \x01(\r\x12\x11\n\tcandidate\x18\x04 \x01(\x0c\x12 \n\x18legacy_connection_id_src\x18\x05 \x01(\x06\x12\x12\n\nrendezvous\x18\x06 \x01(\x0c\"\xc3\x01\n\x1f\x43MsgClientP2PConnectionFailInfo\x12\x15\n\rsteam_id_dest\x18\x01 \x01(\x06\x12\x14\n\x0csteam_id_src\x18\x02 \x01(\x06\x12\x0e\n\x06\x61pp_id\x18\x03 \x01(\r\x12\x1a\n\x12\x65p2p_session_error\x18\x04 \x01(\r\x12\x1a\n\x12\x63onnection_id_dest\x18\x05 \x01(\x06\x12\x14\n\x0c\x63lose_reason\x18\x07 \x01(\r\x12\x15\n\rclose_message\x18\x08 \x01(\t\"C\n\x1f\x43MsgClientNetworkingCertRequest\x12\x10\n\x08key_data\x18\x02 \x01(\x0c\x12\x0e\n\x06\x61pp_id\x18\x03 \x01(\r\"V\n\x1d\x43MsgClientNetworkingCertReply\x12\x0c\n\x04\x63\x65rt\x18\x04 \x01(\x0c\x12\x11\n\tca_key_id\x18\x05 \x01(\x06\x12\x14\n\x0c\x63\x61_signature\x18\x06 \x01(\x0c\"7\n%CMsgClientNetworkingMobileCertRequest\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\";\n#CMsgClientNetworkingMobileCertReply\x12\x14\n\x0c\x65ncoded_cert\x18\x01 \x01(\t\"1\n\x1f\x43MsgClientGetAppOwnershipTicket\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\"]\n\'CMsgClientGetAppOwnershipTicketResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\r:\x01\x32\x12\x0e\n\x06\x61pp_id\x18\x02 \x01(\r\x12\x0e\n\x06ticket\x18\x03 \x01(\x0c\"\'\n\x16\x43MsgClientSessionToken\x12\r\n\x05token\x18\x01 \x01(\x04\"M\n\x1b\x43MsgClientGameConnectTokens\x12\x1e\n\x12max_tokens_to_keep\x18\x01 \x01(\r:\x02\x31\x30\x12\x0e\n\x06tokens\x18\x02 \x03(\x0c\"\xb0\x01\n\x10\x43MsgGSServerType\x12\x15\n\rapp_id_served\x18\x01 \x01(\r\x12\r\n\x05\x66lags\x18\x02 \x01(\r\x12\"\n\x1a\x64\x65precated_game_ip_address\x18\x03 \x01(\r\x12\x11\n\tgame_port\x18\x04 \x01(\r\x12\x10\n\x08game_dir\x18\x05 \x01(\t\x12\x14\n\x0cgame_version\x18\x06 \x01(\t\x12\x17\n\x0fgame_query_port\x18\x07 \x01(\r\"&\n\x11\x43MsgGSStatusReply\x12\x11\n\tis_secure\x18\x01 \x01(\x08\"\xa9\x01\n\x10\x43MsgGSPlayerList\x12)\n\x07players\x18\x01 \x03(\x0b\x32\x18.CMsgGSPlayerList.Player\x1aj\n\x06Player\x12\x10\n\x08steam_id\x18\x01 \x01(\x04\x12\x1c\n\x14\x64\x65precated_public_ip\x18\x02 \x01(\r\x12\r\n\x05token\x18\x03 \x01(\x0c\x12!\n\tpublic_ip\x18\x04 \x01(\x0b\x32\x0e.CMsgIPAddress\"u\n\x11\x43MsgGSUserPlaying\x12\x10\n\x08steam_id\x18\x01 \x01(\x06\x12\x1c\n\x14\x64\x65precated_public_ip\x18\x02 \x01(\r\x12\r\n\x05token\x18\x03 \x01(\x0c\x12!\n\tpublic_ip\x18\x04 \x01(\x0b\x32\x0e.CMsgIPAddress\"*\n\x16\x43MsgGSDisconnectNotice\x12\x10\n\x08steam_id\x18\x01 \x01(\x06\"\xb9\x06\n\x15\x43MsgClientGamesPlayed\x12\x37\n\x0cgames_played\x18\x01 \x03(\x0b\x32!.CMsgClientGamesPlayed.GamePlayed\x12\x16\n\x0e\x63lient_os_type\x18\x02 \x01(\r\x12\x1d\n\x15\x63loud_gaming_platform\x18\x03 \x01(\r\x1a\xaf\x05\n\nGamePlayed\x12\x13\n\x0bsteam_id_gs\x18\x01 \x01(\x04\x12\x0f\n\x07game_id\x18\x02 \x01(\x06\x12\"\n\x1a\x64\x65precated_game_ip_address\x18\x03 \x01(\r\x12\x11\n\tgame_port\x18\x04 \x01(\r\x12\x11\n\tis_secure\x18\x05 \x01(\x08\x12\r\n\x05token\x18\x06 \x01(\x0c\x12\x17\n\x0fgame_extra_info\x18\x07 \x01(\t\x12\x16\n\x0egame_data_blob\x18\x08 \x01(\x0c\x12\x12\n\nprocess_id\x18\t \x01(\r\x12\x1d\n\x15streaming_provider_id\x18\n \x01(\r\x12\x12\n\ngame_flags\x18\x0b \x01(\r\x12\x10\n\x08owner_id\x18\x0c \x01(\r\x12\x15\n\rvr_hmd_vendor\x18\r \x01(\t\x12\x14\n\x0cvr_hmd_model\x18\x0e \x01(\t\x12\x1d\n\x12launch_option_type\x18\x0f \x01(\r:\x01\x30\x12#\n\x17primary_controller_type\x18\x10 \x01(\x05:\x02-1\x12\'\n\x1fprimary_steam_controller_serial\x18\x11 \x01(\t\x12\'\n\x1ctotal_steam_controller_count\x18\x12 \x01(\r:\x01\x30\x12+\n total_non_steam_controller_count\x18\x13 \x01(\r:\x01\x30\x12&\n\x1b\x63ontroller_workshop_file_id\x18\x14 \x01(\x04:\x01\x30\x12\x18\n\rlaunch_source\x18\x15 \x01(\r:\x01\x30\x12\x16\n\x0evr_hmd_runtime\x18\x16 \x01(\r\x12\'\n\x0fgame_ip_address\x18\x17 \x01(\x0b\x32\x0e.CMsgIPAddress\x12%\n\x1a\x63ontroller_connection_type\x18\x18 \x01(\r:\x01\x30\"9\n\rCMsgGSApprove\x12\x10\n\x08steam_id\x18\x01 \x01(\x06\x12\x16\n\x0eowner_steam_id\x18\x02 \x01(\x06\"I\n\nCMsgGSDeny\x12\x10\n\x08steam_id\x18\x01 \x01(\x06\x12\x14\n\x0c\x65\x64\x65ny_reason\x18\x02 \x01(\x05\x12\x13\n\x0b\x64\x65ny_string\x18\x03 \x01(\t\"4\n\nCMsgGSKick\x12\x10\n\x08steam_id\x18\x01 \x01(\x06\x12\x14\n\x0c\x65\x64\x65ny_reason\x18\x02 \x01(\x05\"\xb6\x01\n\x12\x43MsgClientAuthList\x12\x13\n\x0btokens_left\x18\x01 \x01(\r\x12\x18\n\x10last_request_seq\x18\x02 \x01(\r\x12$\n\x1clast_request_seq_from_server\x18\x03 \x01(\r\x12 \n\x07tickets\x18\x04 \x03(\x0b\x32\x0f.CMsgAuthTicket\x12\x0f\n\x07\x61pp_ids\x18\x05 \x03(\r\x12\x18\n\x10message_sequence\x18\x06 \x01(\r\"V\n\x15\x43MsgClientAuthListAck\x12\x12\n\nticket_crc\x18\x01 \x03(\r\x12\x0f\n\x07\x61pp_ids\x18\x02 \x03(\r\x12\x18\n\x10message_sequence\x18\x03 \x01(\r\"\x8e\x04\n\x15\x43MsgClientLicenseList\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x30\n\x08licenses\x18\x02 \x03(\x0b\x32\x1e.CMsgClientLicenseList.License\x1a\xae\x03\n\x07License\x12\x12\n\npackage_id\x18\x01 \x01(\r\x12\x14\n\x0ctime_created\x18\x02 \x01(\x07\x12\x19\n\x11time_next_process\x18\x03 \x01(\x07\x12\x14\n\x0cminute_limit\x18\x04 \x01(\x05\x12\x14\n\x0cminutes_used\x18\x05 \x01(\x05\x12\x16\n\x0epayment_method\x18\x06 \x01(\r\x12\r\n\x05\x66lags\x18\x07 \x01(\r\x12\x1d\n\x15purchase_country_code\x18\x08 \x01(\t\x12\x14\n\x0clicense_type\x18\t \x01(\r\x12\x16\n\x0eterritory_code\x18\n \x01(\x05\x12\x15\n\rchange_number\x18\x0b \x01(\x05\x12\x10\n\x08owner_id\x18\x0c \x01(\r\x12\x16\n\x0einitial_period\x18\r \x01(\r\x12\x19\n\x11initial_time_unit\x18\x0e \x01(\r\x12\x16\n\x0erenewal_period\x18\x0f \x01(\r\x12\x19\n\x11renewal_time_unit\x18\x10 \x01(\r\x12\x14\n\x0c\x61\x63\x63\x65ss_token\x18\x11 \x01(\x04\x12\x19\n\x11master_package_id\x18\x12 \x01(\r\"|\n\x15\x43MsgClientLBSSetScore\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0eleaderboard_id\x18\x02 \x01(\x05\x12\r\n\x05score\x18\x03 \x01(\x05\x12\x0f\n\x07\x64\x65tails\x18\x04 \x01(\x0c\x12\x1b\n\x13upload_score_method\x18\x05 \x01(\x05\"\xa2\x01\n\x1d\x43MsgClientLBSSetScoreResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x1f\n\x17leaderboard_entry_count\x18\x02 \x01(\x05\x12\x15\n\rscore_changed\x18\x03 \x01(\x08\x12\x1c\n\x14global_rank_previous\x18\x04 \x01(\x05\x12\x17\n\x0fglobal_rank_new\x18\x05 \x01(\x05\"M\n\x13\x43MsgClientLBSSetUGC\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0eleaderboard_id\x18\x02 \x01(\x05\x12\x0e\n\x06ugc_id\x18\x03 \x01(\x06\"1\n\x1b\x43MsgClientLBSSetUGCResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\"\xa7\x01\n\x1b\x43MsgClientLBSFindOrCreateLB\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x1f\n\x17leaderboard_sort_method\x18\x02 \x01(\x05\x12 \n\x18leaderboard_display_type\x18\x03 \x01(\x05\x12\x1b\n\x13\x63reate_if_not_found\x18\x04 \x01(\x08\x12\x18\n\x10leaderboard_name\x18\x05 \x01(\t\"\xd5\x01\n#CMsgClientLBSFindOrCreateLBResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x16\n\x0eleaderboard_id\x18\x02 \x01(\x05\x12\x1f\n\x17leaderboard_entry_count\x18\x03 \x01(\x05\x12\"\n\x17leaderboard_sort_method\x18\x04 \x01(\x05:\x01\x30\x12#\n\x18leaderboard_display_type\x18\x05 \x01(\x05:\x01\x30\x12\x18\n\x10leaderboard_name\x18\x06 \x01(\t\"\x9f\x01\n\x19\x43MsgClientLBSGetLBEntries\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\x05\x12\x16\n\x0eleaderboard_id\x18\x02 \x01(\x05\x12\x13\n\x0brange_start\x18\x03 \x01(\x05\x12\x11\n\trange_end\x18\x04 \x01(\x05\x12 \n\x18leaderboard_data_request\x18\x05 \x01(\x05\x12\x10\n\x08steamids\x18\x06 \x03(\x06\"\xf8\x01\n!CMsgClientLBSGetLBEntriesResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x1f\n\x17leaderboard_entry_count\x18\x02 \x01(\x05\x12\x39\n\x07\x65ntries\x18\x03 \x03(\x0b\x32(.CMsgClientLBSGetLBEntriesResponse.Entry\x1a\x63\n\x05\x45ntry\x12\x15\n\rsteam_id_user\x18\x01 \x01(\x06\x12\x13\n\x0bglobal_rank\x18\x02 \x01(\x05\x12\r\n\x05score\x18\x03 \x01(\x05\x12\x0f\n\x07\x64\x65tails\x18\x04 \x01(\x0c\x12\x0e\n\x06ugc_id\x18\x05 \x01(\x06\"\xaa\x01\n\x1a\x43MsgClientIsLimitedAccount\x12\x1b\n\x13\x62is_limited_account\x18\x01 \x01(\x08\x12\x1c\n\x14\x62is_community_banned\x18\x02 \x01(\x08\x12\x1a\n\x12\x62is_locked_account\x18\x03 \x01(\x08\x12\x35\n-bis_limited_account_allowed_to_invite_friends\x18\x04 \x01(\x08\"\xa7\x01\n\x1e\x43MsgClientRequestedClientStats\x12\x42\n\rstats_to_send\x18\x01 \x03(\x0b\x32+.CMsgClientRequestedClientStats.StatsToSend\x1a\x41\n\x0bStatsToSend\x12\x13\n\x0b\x63lient_stat\x18\x01 \x01(\r\x12\x1d\n\x15stat_aggregate_method\x18\x02 \x01(\r\"\xc0\x01\n\x0f\x43MsgClientStat2\x12\x30\n\x0bstat_detail\x18\x01 \x03(\x0b\x32\x1b.CMsgClientStat2.StatDetail\x1a{\n\nStatDetail\x12\x13\n\x0b\x63lient_stat\x18\x01 \x01(\r\x12\x10\n\x08ll_value\x18\x02 \x01(\x03\x12\x13\n\x0btime_of_day\x18\x03 \x01(\r\x12\x0f\n\x07\x63\x65ll_id\x18\x04 \x01(\r\x12\x10\n\x08\x64\x65pot_id\x18\x05 \x01(\r\x12\x0e\n\x06\x61pp_id\x18\x06 \x01(\r\"\x98\x01\n\'CMsgClientMMSSetRatelimitPolicyOnClient\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x1a\n\x12\x65nable_rate_limits\x18\x02 \x01(\x08\x12\x1b\n\x13seconds_per_message\x18\x03 \x01(\x05\x12$\n\x1cmilliseconds_per_data_update\x18\x04 \x01(\x05\"\xe8\x01\n\x18\x43MsgClientMMSCreateLobby\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x13\n\x0bmax_members\x18\x02 \x01(\x05\x12\x12\n\nlobby_type\x18\x03 \x01(\x05\x12\x13\n\x0blobby_flags\x18\x04 \x01(\x05\x12\x0f\n\x07\x63\x65ll_id\x18\x05 \x01(\r\x12\x1c\n\x14\x64\x65precated_public_ip\x18\x06 \x01(\r\x12\x10\n\x08metadata\x18\x07 \x01(\x0c\x12\x1a\n\x12persona_name_owner\x18\x08 \x01(\t\x12!\n\tpublic_ip\x18\t \x01(\x0b\x32\x0e.CMsgIPAddress\"^\n CMsgClientMMSCreateLobbyResponse\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12\x12\n\x07\x65result\x18\x03 \x01(\x05:\x01\x32\"V\n\x16\x43MsgClientMMSJoinLobby\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12\x14\n\x0cpersona_name\x18\x03 \x01(\t\"\xcf\x02\n\x1e\x43MsgClientMMSJoinLobbyResponse\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12 \n\x18\x63hat_room_enter_response\x18\x03 \x01(\x05\x12\x13\n\x0bmax_members\x18\x04 \x01(\x05\x12\x12\n\nlobby_type\x18\x05 \x01(\x05\x12\x13\n\x0blobby_flags\x18\x06 \x01(\x05\x12\x16\n\x0esteam_id_owner\x18\x07 \x01(\x06\x12\x10\n\x08metadata\x18\x08 \x01(\x0c\x12\x37\n\x07members\x18\t \x03(\x0b\x32&.CMsgClientMMSJoinLobbyResponse.Member\x1a\x42\n\x06Member\x12\x10\n\x08steam_id\x18\x01 \x01(\x06\x12\x14\n\x0cpersona_name\x18\x02 \x01(\t\x12\x10\n\x08metadata\x18\x03 \x01(\x0c\"A\n\x17\x43MsgClientMMSLeaveLobby\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\"]\n\x1f\x43MsgClientMMSLeaveLobbyResponse\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12\x12\n\x07\x65result\x18\x03 \x01(\x05:\x01\x32\"\xa0\x02\n\x19\x43MsgClientMMSGetLobbyList\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x1d\n\x15num_lobbies_requested\x18\x03 \x01(\x05\x12\x0f\n\x07\x63\x65ll_id\x18\x04 \x01(\r\x12\x1c\n\x14\x64\x65precated_public_ip\x18\x05 \x01(\r\x12\x32\n\x07\x66ilters\x18\x06 \x03(\x0b\x32!.CMsgClientMMSGetLobbyList.Filter\x12!\n\tpublic_ip\x18\x07 \x01(\x0b\x32\x0e.CMsgIPAddress\x1aN\n\x06\x46ilter\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\x12\x13\n\x0b\x63omparision\x18\x03 \x01(\x05\x12\x13\n\x0b\x66ilter_type\x18\x04 \x01(\x05\"\xa5\x02\n!CMsgClientMMSGetLobbyListResponse\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x12\n\x07\x65result\x18\x03 \x01(\x05:\x01\x32\x12\x39\n\x07lobbies\x18\x04 \x03(\x0b\x32(.CMsgClientMMSGetLobbyListResponse.Lobby\x1a\xa0\x01\n\x05Lobby\x12\x10\n\x08steam_id\x18\x01 \x01(\x06\x12\x13\n\x0bmax_members\x18\x02 \x01(\x05\x12\x12\n\nlobby_type\x18\x03 \x01(\x05\x12\x13\n\x0blobby_flags\x18\x04 \x01(\x05\x12\x10\n\x08metadata\x18\x05 \x01(\x0c\x12\x13\n\x0bnum_members\x18\x06 \x01(\x05\x12\x10\n\x08\x64istance\x18\x07 \x01(\x02\x12\x0e\n\x06weight\x18\x08 \x01(\x03\"\xac\x01\n\x19\x43MsgClientMMSSetLobbyData\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12\x17\n\x0fsteam_id_member\x18\x03 \x01(\x06\x12\x13\n\x0bmax_members\x18\x04 \x01(\x05\x12\x12\n\nlobby_type\x18\x05 \x01(\x05\x12\x13\n\x0blobby_flags\x18\x06 \x01(\x05\x12\x10\n\x08metadata\x18\x07 \x01(\x0c\"_\n!CMsgClientMMSSetLobbyDataResponse\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12\x12\n\x07\x65result\x18\x03 \x01(\x05:\x01\x32\"C\n\x19\x43MsgClientMMSGetLobbyData\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\"\xed\x02\n\x16\x43MsgClientMMSLobbyData\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12\x13\n\x0bnum_members\x18\x03 \x01(\x05\x12\x13\n\x0bmax_members\x18\x04 \x01(\x05\x12\x12\n\nlobby_type\x18\x05 \x01(\x05\x12\x13\n\x0blobby_flags\x18\x06 \x01(\x05\x12\x16\n\x0esteam_id_owner\x18\x07 \x01(\x06\x12\x10\n\x08metadata\x18\x08 \x01(\x0c\x12/\n\x07members\x18\t \x03(\x0b\x32\x1e.CMsgClientMMSLobbyData.Member\x12\x14\n\x0clobby_cellid\x18\n \x01(\r\x12#\n\x1bowner_should_accept_changes\x18\x0b \x01(\x08\x1a\x42\n\x06Member\x12\x10\n\x08steam_id\x18\x01 \x01(\x06\x12\x14\n\x0cpersona_name\x18\x02 \x01(\t\x12\x10\n\x08metadata\x18\x03 \x01(\x0c\"w\n\x1d\x43MsgClientMMSSendLobbyChatMsg\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12\x17\n\x0fsteam_id_target\x18\x03 \x01(\x06\x12\x15\n\rlobby_message\x18\x04 \x01(\x0c\"s\n\x19\x43MsgClientMMSLobbyChatMsg\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12\x17\n\x0fsteam_id_sender\x18\x03 \x01(\x06\x12\x15\n\rlobby_message\x18\x04 \x01(\x0c\"`\n\x1a\x43MsgClientMMSSetLobbyOwner\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12\x1a\n\x12steam_id_new_owner\x18\x03 \x01(\x06\"`\n\"CMsgClientMMSSetLobbyOwnerResponse\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12\x12\n\x07\x65result\x18\x03 \x01(\x05:\x01\x32\"^\n\x1b\x43MsgClientMMSSetLobbyLinked\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12\x17\n\x0fsteam_id_lobby2\x18\x03 \x01(\x06\"\xcc\x01\n\x1f\x43MsgClientMMSSetLobbyGameServer\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12!\n\x19\x64\x65precated_game_server_ip\x18\x03 \x01(\r\x12\x18\n\x10game_server_port\x18\x04 \x01(\r\x12\x1c\n\x14game_server_steam_id\x18\x05 \x01(\x06\x12&\n\x0egame_server_ip\x18\x06 \x01(\x0b\x32\x0e.CMsgIPAddress\"\xcc\x01\n\x1f\x43MsgClientMMSLobbyGameServerSet\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12!\n\x19\x64\x65precated_game_server_ip\x18\x03 \x01(\r\x12\x18\n\x10game_server_port\x18\x04 \x01(\r\x12\x1c\n\x14game_server_steam_id\x18\x05 \x01(\x06\x12&\n\x0egame_server_ip\x18\x06 \x01(\x0b\x32\x0e.CMsgIPAddress\"s\n\x1c\x43MsgClientMMSUserJoinedLobby\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12\x15\n\rsteam_id_user\x18\x03 \x01(\x06\x12\x14\n\x0cpersona_name\x18\x04 \x01(\t\"q\n\x1a\x43MsgClientMMSUserLeftLobby\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12\x15\n\rsteam_id_user\x18\x03 \x01(\x06\x12\x14\n\x0cpersona_name\x18\x04 \x01(\t\"c\n\x1a\x43MsgClientMMSInviteToLobby\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12\x1d\n\x15steam_id_user_invited\x18\x03 \x01(\x06\"x\n\x1b\x43MsgClientMMSGetLobbyStatus\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12\x18\n\x10\x63laim_membership\x18\x03 \x01(\x08\x12\x17\n\x0f\x63laim_ownership\x18\x04 \x01(\x08\"\x8f\x01\n#CMsgClientMMSGetLobbyStatusResponse\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x16\n\x0esteam_id_lobby\x18\x02 \x01(\x06\x12@\n\x0clobby_status\x18\x03 \x01(\x0e\x32\x10.EMMSLobbyStatus:\x18k_EMMSLobbyStatusInvalid\"r\n\x16\x43MsgClientInviteToGame\x12\x15\n\rsteam_id_dest\x18\x01 \x01(\x06\x12\x14\n\x0csteam_id_src\x18\x02 \x01(\x06\x12\x16\n\x0e\x63onnect_string\x18\x03 \x01(\t\x12\x13\n\x0bremote_play\x18\x04 \x01(\t\"\xb9\x01\n\x14\x43MsgClientChatInvite\x12\x18\n\x10steam_id_invited\x18\x01 \x01(\x06\x12\x15\n\rsteam_id_chat\x18\x02 \x01(\x06\x12\x17\n\x0fsteam_id_patron\x18\x03 \x01(\x06\x12\x15\n\rchatroom_type\x18\x04 \x01(\x05\x12\x1c\n\x14steam_id_friend_chat\x18\x05 \x01(\x06\x12\x11\n\tchat_name\x18\x06 \x01(\t\x12\x0f\n\x07game_id\x18\x07 \x01(\x06\"\x8a\x08\n\x19\x43MsgClientConnectionStats\x12;\n\x0bstats_logon\x18\x01 \x01(\x0b\x32&.CMsgClientConnectionStats.Stats_Logon\x12;\n\x0bstats_vconn\x18\x02 \x01(\x0b\x32&.CMsgClientConnectionStats.Stats_VConn\x1a\xc7\x01\n\x0bStats_Logon\x12\x18\n\x10\x63onnect_attempts\x18\x01 \x01(\x05\x12\x19\n\x11\x63onnect_successes\x18\x02 \x01(\x05\x12\x18\n\x10\x63onnect_failures\x18\x03 \x01(\x05\x12\x1b\n\x13\x63onnections_dropped\x18\x04 \x01(\x05\x12\x17\n\x0fseconds_running\x18\x05 \x01(\r\x12\x1c\n\x14msec_tologonthistime\x18\x06 \x01(\r\x12\x15\n\rcount_bad_cms\x18\x07 \x01(\r\x1aq\n\tStats_UDP\x12\x11\n\tpkts_sent\x18\x01 \x01(\x04\x12\x12\n\nbytes_sent\x18\x02 \x01(\x04\x12\x11\n\tpkts_recv\x18\x03 \x01(\x04\x12\x16\n\x0epkts_processed\x18\x04 \x01(\x04\x12\x12\n\nbytes_recv\x18\x05 \x01(\x04\x1a\xb5\x04\n\x0bStats_VConn\x12\x17\n\x0f\x63onnections_udp\x18\x01 \x01(\r\x12\x17\n\x0f\x63onnections_tcp\x18\x02 \x01(\r\x12\x37\n\tstats_udp\x18\x03 \x01(\x0b\x32$.CMsgClientConnectionStats.Stats_UDP\x12\x16\n\x0epkts_abandoned\x18\x04 \x01(\x04\x12\x19\n\x11\x63onn_req_received\x18\x05 \x01(\x04\x12\x13\n\x0bpkts_resent\x18\x06 \x01(\x04\x12\x11\n\tmsgs_sent\x18\x07 \x01(\x04\x12\x18\n\x10msgs_sent_failed\x18\x08 \x01(\x04\x12\x11\n\tmsgs_recv\x18\t \x01(\x04\x12\x16\n\x0e\x64\x61tagrams_sent\x18\n \x01(\x04\x12\x16\n\x0e\x64\x61tagrams_recv\x18\x0b \x01(\x04\x12\x15\n\rbad_pkts_recv\x18\x0c \x01(\x04\x12\x1e\n\x16unknown_conn_pkts_recv\x18\r \x01(\x04\x12\x18\n\x10missed_pkts_recv\x18\x0e \x01(\x04\x12\x15\n\rdup_pkts_recv\x18\x0f \x01(\x04\x12!\n\x19\x66\x61iled_connect_challenges\x18\x10 \x01(\x04\x12\x1d\n\x15micro_sec_avg_latency\x18\x11 \x01(\r\x12\x1d\n\x15micro_sec_min_latency\x18\x12 \x01(\r\x12\x1d\n\x15micro_sec_max_latency\x18\x13 \x01(\r\x12\x1b\n\x13mem_pool_msg_in_use\x18\x14 \x01(\r\"\xd2\x01\n\x1a\x43MsgClientServersAvailable\x12R\n\x16server_types_available\x18\x01 \x03(\x0b\x32\x32.CMsgClientServersAvailable.Server_Types_Available\x12%\n\x1dserver_type_for_auth_services\x18\x02 \x01(\r\x1a\x39\n\x16Server_Types_Available\x12\x0e\n\x06server\x18\x01 \x01(\r\x12\x0f\n\x07\x63hanged\x18\x02 \x01(\x08\"u\n\x16\x43MsgClientGetUserStats\x12\x0f\n\x07game_id\x18\x01 \x01(\x06\x12\x11\n\tcrc_stats\x18\x02 \x01(\r\x12\x1c\n\x14schema_local_version\x18\x03 \x01(\x05\x12\x19\n\x11steam_id_for_user\x18\x04 \x01(\x06\"\xdf\x02\n\x1e\x43MsgClientGetUserStatsResponse\x12\x0f\n\x07game_id\x18\x01 \x01(\x06\x12\x12\n\x07\x65result\x18\x02 \x01(\x05:\x01\x32\x12\x11\n\tcrc_stats\x18\x03 \x01(\r\x12\x0e\n\x06schema\x18\x04 \x01(\x0c\x12\x34\n\x05stats\x18\x05 \x03(\x0b\x32%.CMsgClientGetUserStatsResponse.Stats\x12N\n\x12\x61\x63hievement_blocks\x18\x06 \x03(\x0b\x32\x32.CMsgClientGetUserStatsResponse.Achievement_Blocks\x1a,\n\x05Stats\x12\x0f\n\x07stat_id\x18\x01 \x01(\r\x12\x12\n\nstat_value\x18\x02 \x01(\r\x1a\x41\n\x12\x41\x63hievement_Blocks\x12\x16\n\x0e\x61\x63hievement_id\x18\x01 \x01(\r\x12\x13\n\x0bunlock_time\x18\x02 \x03(\x07\"\x9a\x02\n CMsgClientStoreUserStatsResponse\x12\x0f\n\x07game_id\x18\x01 \x01(\x06\x12\x12\n\x07\x65result\x18\x02 \x01(\x05:\x01\x32\x12\x11\n\tcrc_stats\x18\x03 \x01(\r\x12Z\n\x17stats_failed_validation\x18\x04 \x03(\x0b\x32\x39.CMsgClientStoreUserStatsResponse.Stats_Failed_Validation\x12\x19\n\x11stats_out_of_date\x18\x05 \x01(\x08\x1aG\n\x17Stats_Failed_Validation\x12\x0f\n\x07stat_id\x18\x01 \x01(\r\x12\x1b\n\x13reverted_stat_value\x18\x02 \x01(\r\"\xe8\x01\n\x19\x43MsgClientStoreUserStats2\x12\x0f\n\x07game_id\x18\x01 \x01(\x06\x12\x17\n\x0fsettor_steam_id\x18\x02 \x01(\x06\x12\x17\n\x0fsettee_steam_id\x18\x03 \x01(\x06\x12\x11\n\tcrc_stats\x18\x04 \x01(\r\x12\x16\n\x0e\x65xplicit_reset\x18\x05 \x01(\x08\x12/\n\x05stats\x18\x06 \x03(\x0b\x32 .CMsgClientStoreUserStats2.Stats\x1a,\n\x05Stats\x12\x0f\n\x07stat_id\x18\x01 \x01(\r\x12\x12\n\nstat_value\x18\x02 \x01(\r\"\xc2\x01\n\x16\x43MsgClientStatsUpdated\x12\x10\n\x08steam_id\x18\x01 \x01(\x06\x12\x0f\n\x07game_id\x18\x02 \x01(\x06\x12\x11\n\tcrc_stats\x18\x03 \x01(\r\x12<\n\rupdated_stats\x18\x04 \x03(\x0b\x32%.CMsgClientStatsUpdated.Updated_Stats\x1a\x34\n\rUpdated_Stats\x12\x0f\n\x07stat_id\x18\x01 \x01(\r\x12\x12\n\nstat_value\x18\x02 \x01(\r\"\xbc\x01\n\x18\x43MsgClientStoreUserStats\x12\x0f\n\x07game_id\x18\x01 \x01(\x06\x12\x16\n\x0e\x65xplicit_reset\x18\x02 \x01(\x08\x12@\n\x0estats_to_store\x18\x03 \x03(\x0b\x32(.CMsgClientStoreUserStats.Stats_To_Store\x1a\x35\n\x0eStats_To_Store\x12\x0f\n\x07stat_id\x18\x01 \x01(\r\x12\x12\n\nstat_value\x18\x02 \x01(\r\"\x1c\n\x1a\x43MsgClientGetClientDetails\"?\n$CMsgClientReportOverlayDetourFailure\x12\x17\n\x0f\x66\x61ilure_strings\x18\x01 \x03(\t\"\xbf\x02\n\"CMsgClientGetClientDetailsResponse\x12\x17\n\x0fpackage_version\x18\x01 \x01(\r\x12\x18\n\x10protocol_version\x18\x08 \x01(\r\x12\n\n\x02os\x18\x02 \x01(\t\x12\x14\n\x0cmachine_name\x18\x03 \x01(\t\x12\x11\n\tip_public\x18\x04 \x01(\t\x12\x12\n\nip_private\x18\x05 \x01(\t\x12\x17\n\x0f\x62ytes_available\x18\x07 \x01(\x04\x12?\n\rgames_running\x18\x06 \x03(\x0b\x32(.CMsgClientGetClientDetailsResponse.Game\x1a\x43\n\x04Game\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x12\n\nextra_info\x18\x02 \x01(\t\x12\x18\n\x10time_running_sec\x18\x03 \x01(\r\"\x88\x01\n\x1a\x43MsgClientGetClientAppList\x12\r\n\x05media\x18\x01 \x01(\x08\x12\r\n\x05tools\x18\x02 \x01(\x08\x12\r\n\x05games\x18\x03 \x01(\x08\x12\x16\n\x0eonly_installed\x18\x04 \x01(\x08\x12\x15\n\ronly_changing\x18\x05 \x01(\x08\x12\x0e\n\x06\x63omics\x18\x06 \x01(\x08\"\x91\x04\n\"CMsgClientGetClientAppListResponse\x12\x35\n\x04\x61pps\x18\x01 \x03(\x0b\x32\'.CMsgClientGetClientAppListResponse.App\x12\x17\n\x0f\x62ytes_available\x18\x02 \x01(\x04\x1a\x9a\x03\n\x03\x41pp\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x10\n\x08\x63\x61tegory\x18\x02 \x01(\t\x12\x10\n\x08\x61pp_type\x18\n \x01(\t\x12\x10\n\x08\x66\x61vorite\x18\x03 \x01(\x08\x12\x11\n\tinstalled\x18\x04 \x01(\x08\x12\x13\n\x0b\x61uto_update\x18\x05 \x01(\x08\x12\x18\n\x10\x62ytes_downloaded\x18\x06 \x01(\x04\x12\x14\n\x0c\x62ytes_needed\x18\x07 \x01(\x04\x12\x1b\n\x13\x62ytes_download_rate\x18\x08 \x01(\r\x12\x17\n\x0f\x64ownload_paused\x18\x0b \x01(\x08\x12\x17\n\x0fnum_downloading\x18\x0c \x01(\r\x12\x12\n\nnum_paused\x18\r \x01(\r\x12\x10\n\x08\x63hanging\x18\x0e \x01(\x08\x12\x1d\n\x15\x61vailable_on_platform\x18\x0f \x01(\x08\x12\x39\n\x04\x64lcs\x18\t \x03(\x0b\x32+.CMsgClientGetClientAppListResponse.App.DLC\x1a\'\n\x03\x44LC\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x11\n\tinstalled\x18\x02 \x01(\x08\"+\n\x1a\x43MsgClientInstallClientApp\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\"4\n\"CMsgClientInstallClientAppResponse\x12\x0e\n\x06result\x18\x01 \x01(\r\"-\n\x1c\x43MsgClientUninstallClientApp\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\"6\n$CMsgClientUninstallClientAppResponse\x12\x0e\n\x06result\x18\x01 \x01(\r\"B\n!CMsgClientSetClientAppUpdateState\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x0e\n\x06update\x18\x02 \x01(\x08\";\n)CMsgClientSetClientAppUpdateStateResponse\x12\x0e\n\x06result\x18\x01 \x01(\r\"\x86\x02\n\x1e\x43MsgClientUFSUploadFileRequest\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x11\n\tfile_size\x18\x02 \x01(\r\x12\x15\n\rraw_file_size\x18\x03 \x01(\r\x12\x10\n\x08sha_file\x18\x04 \x01(\x0c\x12\x12\n\ntime_stamp\x18\x05 \x01(\x04\x12\x11\n\tfile_name\x18\x06 \x01(\t\x12$\n\x1cplatforms_to_sync_deprecated\x18\x07 \x01(\r\x12%\n\x11platforms_to_sync\x18\x08 \x01(\r:\n4294967295\x12\x0f\n\x07\x63\x65ll_id\x18\t \x01(\r\x12\x13\n\x0b\x63\x61n_encrypt\x18\n \x01(\x08\"\xbb\x01\n\x1f\x43MsgClientUFSUploadFileResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x10\n\x08sha_file\x18\x02 \x01(\x0c\x12\x10\n\x08use_http\x18\x03 \x01(\x08\x12\x11\n\thttp_host\x18\x04 \x01(\t\x12\x10\n\x08http_url\x18\x05 \x01(\t\x12\x12\n\nkv_headers\x18\x06 \x01(\x0c\x12\x11\n\tuse_https\x18\x07 \x01(\x08\x12\x14\n\x0c\x65ncrypt_file\x18\x08 \x01(\x08\"\xae\x01\n\x19\x43MsgClientUFSUploadCommit\x12.\n\x05\x66iles\x18\x01 \x03(\x0b\x32\x1f.CMsgClientUFSUploadCommit.File\x1a\x61\n\x04\x46ile\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x0e\n\x06\x61pp_id\x18\x02 \x01(\r\x12\x10\n\x08sha_file\x18\x03 \x01(\x0c\x12\x10\n\x08\x63ub_file\x18\x04 \x01(\r\x12\x11\n\tfile_name\x18\x05 \x01(\t\"\x99\x01\n!CMsgClientUFSUploadCommitResponse\x12\x36\n\x05\x66iles\x18\x01 \x03(\x0b\x32\'.CMsgClientUFSUploadCommitResponse.File\x1a<\n\x04\x46ile\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x0e\n\x06\x61pp_id\x18\x02 \x01(\r\x12\x10\n\x08sha_file\x18\x03 \x01(\x0c\"L\n\x16\x43MsgClientUFSFileChunk\x12\x10\n\x08sha_file\x18\x01 \x01(\x0c\x12\x12\n\nfile_start\x18\x02 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\" \n\x1e\x43MsgClientUFSTransferHeartbeat\"G\n\x1f\x43MsgClientUFSUploadFileFinished\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x10\n\x08sha_file\x18\x02 \x01(\x0c\"_\n\x1e\x43MsgClientUFSDeleteFileRequest\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x11\n\tfile_name\x18\x02 \x01(\t\x12\x1a\n\x12is_explicit_delete\x18\x03 \x01(\x08\"H\n\x1f\x43MsgClientUFSDeleteFileResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x11\n\tfile_name\x18\x02 \x01(\t\"S\n\x1e\x43MsgClientUFSGetFileListForApp\x12\x15\n\rapps_to_query\x18\x01 \x03(\r\x12\x1a\n\x12send_path_prefixes\x18\x02 \x01(\x08\"\xc1\x02\n&CMsgClientUFSGetFileListForAppResponse\x12;\n\x05\x66iles\x18\x01 \x03(\x0b\x32,.CMsgClientUFSGetFileListForAppResponse.File\x12\x15\n\rpath_prefixes\x18\x02 \x03(\t\x1a\xb8\x01\n\x04\x46ile\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x11\n\tfile_name\x18\x02 \x01(\t\x12\x10\n\x08sha_file\x18\x03 \x01(\x0c\x12\x12\n\ntime_stamp\x18\x04 \x01(\x04\x12\x15\n\rraw_file_size\x18\x05 \x01(\r\x12\x1a\n\x12is_explicit_delete\x18\x06 \x01(\x08\x12\x19\n\x11platforms_to_sync\x18\x07 \x01(\r\x12\x19\n\x11path_prefix_index\x18\x08 \x01(\r:\x08\x80\xb5\x18\x08\x88\xb5\x18\x10\"Z\n\x1c\x43MsgClientUFSDownloadRequest\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x11\n\tfile_name\x18\x02 \x01(\t\x12\x17\n\x0f\x63\x61n_handle_http\x18\x03 \x01(\x08\"\xa0\x02\n\x1d\x43MsgClientUFSDownloadResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x0e\n\x06\x61pp_id\x18\x02 \x01(\r\x12\x11\n\tfile_size\x18\x03 \x01(\r\x12\x15\n\rraw_file_size\x18\x04 \x01(\r\x12\x10\n\x08sha_file\x18\x05 \x01(\x0c\x12\x12\n\ntime_stamp\x18\x06 \x01(\x04\x12\x1a\n\x12is_explicit_delete\x18\x07 \x01(\x08\x12\x10\n\x08use_http\x18\x08 \x01(\x08\x12\x11\n\thttp_host\x18\t \x01(\t\x12\x10\n\x08http_url\x18\n \x01(\t\x12\x12\n\nkv_headers\x18\x0b \x01(\x0c\x12\x11\n\tuse_https\x18\x0c \x01(\x08\x12\x11\n\tencrypted\x18\r \x01(\x08\"]\n\x19\x43MsgClientUFSLoginRequest\x12\x18\n\x10protocol_version\x18\x01 \x01(\r\x12\x18\n\x10\x61m_session_token\x18\x02 \x01(\x04\x12\x0c\n\x04\x61pps\x18\x03 \x03(\r\"0\n\x1a\x43MsgClientUFSLoginResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\"G\n#CMsgClientRequestEncryptedAppTicket\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x10\n\x08userdata\x18\x02 \x01(\x0c\"\x84\x01\n+CMsgClientRequestEncryptedAppTicketResponse\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x12\n\x07\x65result\x18\x02 \x01(\x05:\x01\x32\x12\x31\n\x14\x65ncrypted_app_ticket\x18\x03 \x01(\x0b\x32\x13.EncryptedAppTicket\"\xb5\x01\n\x1a\x43MsgClientWalletInfoUpdate\x12\x12\n\nhas_wallet\x18\x01 \x01(\x08\x12\x0f\n\x07\x62\x61lance\x18\x02 \x01(\x05\x12\x10\n\x08\x63urrency\x18\x03 \x01(\x05\x12\x17\n\x0f\x62\x61lance_delayed\x18\x04 \x01(\x05\x12\x17\n\tbalance64\x18\x05 \x01(\x03\x42\x04\xa0\xb6\x18\x01\x12\x1f\n\x11\x62\x61lance64_delayed\x18\x06 \x01(\x03\x42\x04\xa0\xb6\x18\x01\x12\r\n\x05realm\x18\x07 \x01(\x05\"M\n\x17\x43MsgClientAppInfoUpdate\x12\x19\n\x11last_changenumber\x18\x01 \x01(\r\x12\x17\n\x0fsend_changelist\x18\x02 \x01(\x08\"d\n\x18\x43MsgClientAppInfoChanges\x12\x1d\n\x15\x63urrent_change_number\x18\x01 \x01(\r\x12\x19\n\x11\x66orce_full_update\x18\x02 \x01(\x08\x12\x0e\n\x06\x61ppIDs\x18\x03 \x03(\r\"\xab\x01\n\x18\x43MsgClientAppInfoRequest\x12+\n\x04\x61pps\x18\x01 \x03(\x0b\x32\x1d.CMsgClientAppInfoRequest.App\x12\x1f\n\x10supports_batches\x18\x02 \x01(\x08:\x05\x66\x61lse\x1a\x41\n\x03\x41pp\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x15\n\rsection_flags\x18\x02 \x01(\r\x12\x13\n\x0bsection_CRC\x18\x03 \x03(\r\"\x97\x02\n\x19\x43MsgClientAppInfoResponse\x12,\n\x04\x61pps\x18\x01 \x03(\x0b\x32\x1e.CMsgClientAppInfoResponse.App\x12\x14\n\x0c\x61pps_unknown\x18\x02 \x03(\r\x12\x14\n\x0c\x61pps_pending\x18\x03 \x01(\r\x1a\x99\x01\n\x03\x41pp\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x15\n\rchange_number\x18\x02 \x01(\r\x12\x38\n\x08sections\x18\x03 \x03(\x0b\x32&.CMsgClientAppInfoResponse.App.Section\x1a\x31\n\x07Section\x12\x12\n\nsection_id\x18\x01 \x01(\r\x12\x12\n\nsection_kv\x18\x02 \x01(\x0c:\x04\x88\xb5\x18\x00\"K\n\x1c\x43MsgClientPackageInfoRequest\x12\x13\n\x0bpackage_ids\x18\x01 \x03(\r\x12\x16\n\x0emeta_data_only\x18\x02 \x01(\x08\"\xe0\x01\n\x1d\x43MsgClientPackageInfoResponse\x12\x38\n\x08packages\x18\x01 \x03(\x0b\x32&.CMsgClientPackageInfoResponse.Package\x12\x18\n\x10packages_unknown\x18\x02 \x03(\r\x12\x18\n\x10packages_pending\x18\x03 \x01(\r\x1aQ\n\x07Package\x12\x12\n\npackage_id\x18\x01 \x01(\r\x12\x15\n\rchange_number\x18\x02 \x01(\r\x12\x0b\n\x03sha\x18\x03 \x01(\x0c\x12\x0e\n\x06\x62uffer\x18\x04 \x01(\x0c\"\xc0\x01\n!CMsgClientPICSChangesSinceRequest\x12\x1b\n\x13since_change_number\x18\x01 \x01(\r\x12\x1d\n\x15send_app_info_changes\x18\x02 \x01(\x08\x12!\n\x19send_package_info_changes\x18\x03 \x01(\x08\x12\x1b\n\x13num_app_info_cached\x18\x04 \x01(\r\x12\x1f\n\x17num_package_info_cached\x18\x05 \x01(\r\"\xe5\x03\n\"CMsgClientPICSChangesSinceResponse\x12\x1d\n\x15\x63urrent_change_number\x18\x01 \x01(\r\x12\x1b\n\x13since_change_number\x18\x02 \x01(\r\x12\x19\n\x11\x66orce_full_update\x18\x03 \x01(\x08\x12J\n\x0fpackage_changes\x18\x04 \x03(\x0b\x32\x31.CMsgClientPICSChangesSinceResponse.PackageChange\x12\x42\n\x0b\x61pp_changes\x18\x05 \x03(\x0b\x32-.CMsgClientPICSChangesSinceResponse.AppChange\x12\x1d\n\x15\x66orce_full_app_update\x18\x06 \x01(\x08\x12!\n\x19\x66orce_full_package_update\x18\x07 \x01(\x08\x1aN\n\rPackageChange\x12\x11\n\tpackageid\x18\x01 \x01(\r\x12\x15\n\rchange_number\x18\x02 \x01(\r\x12\x13\n\x0bneeds_token\x18\x03 \x01(\x08\x1a\x46\n\tAppChange\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x15\n\rchange_number\x18\x02 \x01(\r\x12\x13\n\x0bneeds_token\x18\x03 \x01(\x08\"\xf4\x02\n CMsgClientPICSProductInfoRequest\x12?\n\x08packages\x18\x01 \x03(\x0b\x32-.CMsgClientPICSProductInfoRequest.PackageInfo\x12\x37\n\x04\x61pps\x18\x02 \x03(\x0b\x32).CMsgClientPICSProductInfoRequest.AppInfo\x12\x16\n\x0emeta_data_only\x18\x03 \x01(\x08\x12\x17\n\x0fnum_prev_failed\x18\x04 \x01(\r\x12\x1f\n\x17supports_package_tokens\x18\x05 \x01(\r\x1aL\n\x07\x41ppInfo\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x14\n\x0c\x61\x63\x63\x65ss_token\x18\x02 \x01(\x04\x12\x1c\n\x14only_public_obsolete\x18\x03 \x01(\x08\x1a\x36\n\x0bPackageInfo\x12\x11\n\tpackageid\x18\x01 \x01(\r\x12\x14\n\x0c\x61\x63\x63\x65ss_token\x18\x02 \x01(\x04\"\xb9\x04\n!CMsgClientPICSProductInfoResponse\x12\x38\n\x04\x61pps\x18\x01 \x03(\x0b\x32*.CMsgClientPICSProductInfoResponse.AppInfo\x12\x16\n\x0eunknown_appids\x18\x02 \x03(\r\x12@\n\x08packages\x18\x03 \x03(\x0b\x32..CMsgClientPICSProductInfoResponse.PackageInfo\x12\x1a\n\x12unknown_packageids\x18\x04 \x03(\r\x12\x16\n\x0emeta_data_only\x18\x05 \x01(\x08\x12\x18\n\x10response_pending\x18\x06 \x01(\x08\x12\x15\n\rhttp_min_size\x18\x07 \x01(\r\x12\x11\n\thttp_host\x18\x08 \x01(\t\x1a\x86\x01\n\x07\x41ppInfo\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x15\n\rchange_number\x18\x02 \x01(\r\x12\x15\n\rmissing_token\x18\x03 \x01(\x08\x12\x0b\n\x03sha\x18\x04 \x01(\x0c\x12\x0e\n\x06\x62uffer\x18\x05 \x01(\x0c\x12\x13\n\x0bonly_public\x18\x06 \x01(\x08\x12\x0c\n\x04size\x18\x07 \x01(\r\x1ay\n\x0bPackageInfo\x12\x11\n\tpackageid\x18\x01 \x01(\r\x12\x15\n\rchange_number\x18\x02 \x01(\r\x12\x15\n\rmissing_token\x18\x03 \x01(\x08\x12\x0b\n\x03sha\x18\x04 \x01(\x0c\x12\x0e\n\x06\x62uffer\x18\x05 \x01(\x0c\x12\x0c\n\x04size\x18\x06 \x01(\r:\x04\x88\xb5\x18\x00\"F\n CMsgClientPICSAccessTokenRequest\x12\x12\n\npackageids\x18\x01 \x03(\r\x12\x0e\n\x06\x61ppids\x18\x02 \x03(\r\"\xdf\x02\n!CMsgClientPICSAccessTokenResponse\x12N\n\x15package_access_tokens\x18\x01 \x03(\x0b\x32/.CMsgClientPICSAccessTokenResponse.PackageToken\x12\x1d\n\x15package_denied_tokens\x18\x02 \x03(\r\x12\x46\n\x11\x61pp_access_tokens\x18\x03 \x03(\x0b\x32+.CMsgClientPICSAccessTokenResponse.AppToken\x12\x19\n\x11\x61pp_denied_tokens\x18\x04 \x03(\r\x1a\x37\n\x0cPackageToken\x12\x11\n\tpackageid\x18\x01 \x01(\r\x12\x14\n\x0c\x61\x63\x63\x65ss_token\x18\x02 \x01(\x04\x1a/\n\x08\x41ppToken\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x14\n\x0c\x61\x63\x63\x65ss_token\x18\x02 \x01(\x04\"D\n\x1a\x43MsgClientUFSGetUGCDetails\x12&\n\x08hcontent\x18\x01 \x01(\x06:\x14\x31\x38\x34\x34\x36\x37\x34\x34\x30\x37\x33\x37\x30\x39\x35\x35\x31\x36\x31\x35\"\xe5\x01\n\"CMsgClientUFSGetUGCDetailsResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x0b\n\x03url\x18\x02 \x01(\t\x12\x0e\n\x06\x61pp_id\x18\x03 \x01(\r\x12\x10\n\x08\x66ilename\x18\x04 \x01(\t\x12\x17\n\x0fsteamid_creator\x18\x05 \x01(\x06\x12\x11\n\tfile_size\x18\x06 \x01(\r\x12\x1c\n\x14\x63ompressed_file_size\x18\x07 \x01(\r\x12\x17\n\x0frangecheck_host\x18\x08 \x01(\t\x12\x19\n\x11\x66ile_encoded_sha1\x18\t \x01(\t\"C\n\x1e\x43MsgClientUFSGetSingleFileInfo\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x11\n\tfile_name\x18\x02 \x01(\t\"\xb8\x01\n&CMsgClientUFSGetSingleFileInfoResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x0e\n\x06\x61pp_id\x18\x02 \x01(\r\x12\x11\n\tfile_name\x18\x03 \x01(\t\x12\x10\n\x08sha_file\x18\x04 \x01(\x0c\x12\x12\n\ntime_stamp\x18\x05 \x01(\x04\x12\x15\n\rraw_file_size\x18\x06 \x01(\r\x12\x1a\n\x12is_explicit_delete\x18\x07 \x01(\x08\";\n\x16\x43MsgClientUFSShareFile\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x11\n\tfile_name\x18\x02 \x01(\t\"\\\n\x1e\x43MsgClientUFSShareFileResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12&\n\x08hcontent\x18\x02 \x01(\x06:\x14\x31\x38\x34\x34\x36\x37\x34\x34\x30\x37\x33\x37\x30\x39\x35\x35\x31\x36\x31\x35\"3\n\x1b\x43MsgClientAMGetClanOfficers\x12\x14\n\x0csteamid_clan\x18\x01 \x01(\x06\"f\n#CMsgClientAMGetClanOfficersResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x14\n\x0csteamid_clan\x18\x02 \x01(\x06\x12\x15\n\rofficer_count\x18\x03 \x01(\x05\"\x90\x01\n!CMsgClientAMGetPersonaNameHistory\x12\x10\n\x08id_count\x18\x01 \x01(\x05\x12:\n\x03Ids\x18\x02 \x03(\x0b\x32-.CMsgClientAMGetPersonaNameHistory.IdInstance\x1a\x1d\n\nIdInstance\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\"\xc3\x02\n)CMsgClientAMGetPersonaNameHistoryResponse\x12O\n\tresponses\x18\x02 \x03(\x0b\x32<.CMsgClientAMGetPersonaNameHistoryResponse.NameTableInstance\x1a\xc4\x01\n\x11NameTableInstance\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12\x0f\n\x07steamid\x18\x02 \x01(\x06\x12X\n\x05names\x18\x03 \x03(\x0b\x32I.CMsgClientAMGetPersonaNameHistoryResponse.NameTableInstance.NameInstance\x1a\x30\n\x0cNameInstance\x12\x12\n\nname_since\x18\x01 \x01(\x07\x12\x0c\n\x04name\x18\x02 \x01(\t\"E\n\x1e\x43MsgClientDeregisterWithServer\x12\x13\n\x0b\x65servertype\x18\x01 \x01(\r\x12\x0e\n\x06\x61pp_id\x18\x02 \x01(\r\"\xab\x04\n\x13\x43MsgClientClanState\x12\x14\n\x0csteamid_clan\x18\x01 \x01(\x06\x12\x1a\n\x12\x63lan_account_flags\x18\x03 \x01(\r\x12\x30\n\tname_info\x18\x04 \x01(\x0b\x32\x1d.CMsgClientClanState.NameInfo\x12\x34\n\x0buser_counts\x18\x05 \x01(\x0b\x32\x1f.CMsgClientClanState.UserCounts\x12*\n\x06\x65vents\x18\x06 \x03(\x0b\x32\x1a.CMsgClientClanState.Event\x12\x31\n\rannouncements\x18\x07 \x03(\x0b\x32\x1a.CMsgClientClanState.Event\x12\x19\n\x11\x63hat_room_private\x18\x08 \x01(\x08\x1a\x31\n\x08NameInfo\x12\x11\n\tclan_name\x18\x01 \x01(\t\x12\x12\n\nsha_avatar\x18\x02 \x01(\x0c\x1ak\n\nUserCounts\x12\x0f\n\x07members\x18\x01 \x01(\r\x12\x0e\n\x06online\x18\x02 \x01(\r\x12\x10\n\x08\x63hatting\x18\x03 \x01(\r\x12\x0f\n\x07in_game\x18\x04 \x01(\r\x12\x19\n\x11\x63hat_room_members\x18\x05 \x01(\r\x1a`\n\x05\x45vent\x12\x0b\n\x03gid\x18\x01 \x01(\x06\x12\x12\n\nevent_time\x18\x02 \x01(\r\x12\x10\n\x08headline\x18\x03 \x01(\t\x12\x0f\n\x07game_id\x18\x04 \x01(\x06\x12\x13\n\x0bjust_posted\x18\x05 \x01(\x08\"\xac\x01\n\x1f\x43MsgClientUnsignedInstallScript\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x11\n\tfile_name\x18\x02 \x01(\t\x12\x11\n\tfile_size\x18\x03 \x01(\r\x12\x18\n\x10signature_broken\x18\x04 \x01(\x08\x12\x10\n\x08\x64\x65pot_id\x18\x05 \x01(\r\x12\x13\n\x0bmanifest_id\x18\x06 \x01(\x04\x12\x12\n\nfile_flags\x18\x07 \x01(\r*\x90\x01\n\x0f\x45MMSLobbyStatus\x12\x1c\n\x18k_EMMSLobbyStatusInvalid\x10\x00\x12\x1b\n\x17k_EMMSLobbyStatusExists\x10\x01\x12!\n\x1dk_EMMSLobbyStatusDoesNotExist\x10\x02\x12\x1f\n\x1bk_EMMSLobbyStatusNotAMember\x10\x03\x42\x05H\x01\x90\x01\x00')
   ,
   dependencies=[steammessages__base__pb2.DESCRIPTOR,encrypted__app__ticket__pb2.DESCRIPTOR,])
 
@@ -52,8 +52,8 @@ _EMMSLOBBYSTATUS = _descriptor.EnumDescriptor(
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=21959,
-  serialized_end=22103,
+  serialized_start=21796,
+  serialized_end=21940,
 )
 _sym_db.RegisterEnumDescriptor(_EMMSLOBBYSTATUS)
 
@@ -410,7 +410,7 @@ _CMSGCLIENTP2PCONNECTIONINFO = _descriptor.Descriptor(
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='connection_id_src', full_name='CMsgClientP2PConnectionInfo.connection_id_src', index=4,
+      name='legacy_connection_id_src', full_name='CMsgClientP2PConnectionInfo.legacy_connection_id_src', index=4,
       number=5, type=6, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
@@ -436,7 +436,7 @@ _CMSGCLIENTP2PCONNECTIONINFO = _descriptor.Descriptor(
   oneofs=[
   ],
   serialized_start=875,
-  serialized_end=1031,
+  serialized_end=1038,
 )
 
 
@@ -508,8 +508,8 @@ _CMSGCLIENTP2PCONNECTIONFAILINFO = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1034,
-  serialized_end=1229,
+  serialized_start=1041,
+  serialized_end=1236,
 )
 
 
@@ -546,8 +546,8 @@ _CMSGCLIENTNETWORKINGCERTREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1231,
-  serialized_end=1298,
+  serialized_start=1238,
+  serialized_end=1305,
 )
 
 
@@ -591,8 +591,8 @@ _CMSGCLIENTNETWORKINGCERTREPLY = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1300,
-  serialized_end=1386,
+  serialized_start=1307,
+  serialized_end=1393,
 )
 
 
@@ -622,8 +622,8 @@ _CMSGCLIENTNETWORKINGMOBILECERTREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1388,
-  serialized_end=1443,
+  serialized_start=1395,
+  serialized_end=1450,
 )
 
 
@@ -653,8 +653,8 @@ _CMSGCLIENTNETWORKINGMOBILECERTREPLY = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1445,
-  serialized_end=1504,
+  serialized_start=1452,
+  serialized_end=1511,
 )
 
 
@@ -684,8 +684,8 @@ _CMSGCLIENTGETAPPOWNERSHIPTICKET = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1506,
-  serialized_end=1555,
+  serialized_start=1513,
+  serialized_end=1562,
 )
 
 
@@ -729,8 +729,8 @@ _CMSGCLIENTGETAPPOWNERSHIPTICKETRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1557,
-  serialized_end=1650,
+  serialized_start=1564,
+  serialized_end=1657,
 )
 
 
@@ -760,8 +760,8 @@ _CMSGCLIENTSESSIONTOKEN = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1652,
-  serialized_end=1691,
+  serialized_start=1659,
+  serialized_end=1698,
 )
 
 
@@ -798,8 +798,8 @@ _CMSGCLIENTGAMECONNECTTOKENS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1693,
-  serialized_end=1770,
+  serialized_start=1700,
+  serialized_end=1777,
 )
 
 
@@ -871,8 +871,8 @@ _CMSGGSSERVERTYPE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1773,
-  serialized_end=1949,
+  serialized_start=1780,
+  serialized_end=1956,
 )
 
 
@@ -902,8 +902,8 @@ _CMSGGSSTATUSREPLY = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1951,
-  serialized_end=1989,
+  serialized_start=1958,
+  serialized_end=1996,
 )
 
 
@@ -954,8 +954,8 @@ _CMSGGSPLAYERLIST_PLAYER = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2055,
-  serialized_end=2161,
+  serialized_start=2062,
+  serialized_end=2168,
 )
 
 _CMSGGSPLAYERLIST = _descriptor.Descriptor(
@@ -984,8 +984,8 @@ _CMSGGSPLAYERLIST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1992,
-  serialized_end=2161,
+  serialized_start=1999,
+  serialized_end=2168,
 )
 
 
@@ -1036,8 +1036,8 @@ _CMSGGSUSERPLAYING = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2163,
-  serialized_end=2280,
+  serialized_start=2170,
+  serialized_end=2287,
 )
 
 
@@ -1067,8 +1067,8 @@ _CMSGGSDISCONNECTNOTICE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2282,
-  serialized_end=2324,
+  serialized_start=2289,
+  serialized_end=2331,
 )
 
 
@@ -1259,8 +1259,8 @@ _CMSGCLIENTGAMESPLAYED_GAMEPLAYED = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2465,
-  serialized_end=3152,
+  serialized_start=2472,
+  serialized_end=3159,
 )
 
 _CMSGCLIENTGAMESPLAYED = _descriptor.Descriptor(
@@ -1303,8 +1303,8 @@ _CMSGCLIENTGAMESPLAYED = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2327,
-  serialized_end=3152,
+  serialized_start=2334,
+  serialized_end=3159,
 )
 
 
@@ -1341,8 +1341,8 @@ _CMSGGSAPPROVE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3154,
-  serialized_end=3211,
+  serialized_start=3161,
+  serialized_end=3218,
 )
 
 
@@ -1386,8 +1386,8 @@ _CMSGGSDENY = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3213,
-  serialized_end=3286,
+  serialized_start=3220,
+  serialized_end=3293,
 )
 
 
@@ -1424,8 +1424,8 @@ _CMSGGSKICK = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3288,
-  serialized_end=3340,
+  serialized_start=3295,
+  serialized_end=3347,
 )
 
 
@@ -1490,8 +1490,8 @@ _CMSGCLIENTAUTHLIST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3343,
-  serialized_end=3525,
+  serialized_start=3350,
+  serialized_end=3532,
 )
 
 
@@ -1535,8 +1535,8 @@ _CMSGCLIENTAUTHLISTACK = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3527,
-  serialized_end=3613,
+  serialized_start=3534,
+  serialized_end=3620,
 )
 
 
@@ -1685,8 +1685,8 @@ _CMSGCLIENTLICENSELIST_LICENSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3712,
-  serialized_end=4142,
+  serialized_start=3719,
+  serialized_end=4149,
 )
 
 _CMSGCLIENTLICENSELIST = _descriptor.Descriptor(
@@ -1722,8 +1722,8 @@ _CMSGCLIENTLICENSELIST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3616,
-  serialized_end=4142,
+  serialized_start=3623,
+  serialized_end=4149,
 )
 
 
@@ -1781,8 +1781,8 @@ _CMSGCLIENTLBSSETSCORE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4144,
-  serialized_end=4268,
+  serialized_start=4151,
+  serialized_end=4275,
 )
 
 
@@ -1840,8 +1840,8 @@ _CMSGCLIENTLBSSETSCORERESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4271,
-  serialized_end=4433,
+  serialized_start=4278,
+  serialized_end=4440,
 )
 
 
@@ -1885,8 +1885,8 @@ _CMSGCLIENTLBSSETUGC = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4435,
-  serialized_end=4512,
+  serialized_start=4442,
+  serialized_end=4519,
 )
 
 
@@ -1916,8 +1916,8 @@ _CMSGCLIENTLBSSETUGCRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4514,
-  serialized_end=4563,
+  serialized_start=4521,
+  serialized_end=4570,
 )
 
 
@@ -1975,8 +1975,8 @@ _CMSGCLIENTLBSFINDORCREATELB = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4566,
-  serialized_end=4733,
+  serialized_start=4573,
+  serialized_end=4740,
 )
 
 
@@ -2041,8 +2041,8 @@ _CMSGCLIENTLBSFINDORCREATELBRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4736,
-  serialized_end=4949,
+  serialized_start=4743,
+  serialized_end=4956,
 )
 
 
@@ -2107,8 +2107,8 @@ _CMSGCLIENTLBSGETLBENTRIES = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4952,
-  serialized_end=5111,
+  serialized_start=4959,
+  serialized_end=5118,
 )
 
 
@@ -2166,8 +2166,8 @@ _CMSGCLIENTLBSGETLBENTRIESRESPONSE_ENTRY = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5263,
-  serialized_end=5362,
+  serialized_start=5270,
+  serialized_end=5369,
 )
 
 _CMSGCLIENTLBSGETLBENTRIESRESPONSE = _descriptor.Descriptor(
@@ -2210,83 +2210,8 @@ _CMSGCLIENTLBSGETLBENTRIESRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5114,
-  serialized_end=5362,
-)
-
-
-_CMSGCLIENTAPPMINUTESPLAYEDDATA_APPMINUTESPLAYEDDATA = _descriptor.Descriptor(
-  name='AppMinutesPlayedData',
-  full_name='CMsgClientAppMinutesPlayedData.AppMinutesPlayedData',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='app_id', full_name='CMsgClientAppMinutesPlayedData.AppMinutesPlayedData.app_id', index=0,
-      number=1, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='forever', full_name='CMsgClientAppMinutesPlayedData.AppMinutesPlayedData.forever', index=1,
-      number=2, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='last_two_weeks', full_name='CMsgClientAppMinutesPlayedData.AppMinutesPlayedData.last_two_weeks', index=2,
-      number=3, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=5477,
-  serialized_end=5556,
-)
-
-_CMSGCLIENTAPPMINUTESPLAYEDDATA = _descriptor.Descriptor(
-  name='CMsgClientAppMinutesPlayedData',
-  full_name='CMsgClientAppMinutesPlayedData',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='minutes_played', full_name='CMsgClientAppMinutesPlayedData.minutes_played', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[_CMSGCLIENTAPPMINUTESPLAYEDDATA_APPMINUTESPLAYEDDATA, ],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=5365,
-  serialized_end=5556,
+  serialized_start=5121,
+  serialized_end=5369,
 )
 
 
@@ -2337,8 +2262,8 @@ _CMSGCLIENTISLIMITEDACCOUNT = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5559,
-  serialized_end=5729,
+  serialized_start=5372,
+  serialized_end=5542,
 )
 
 
@@ -2375,8 +2300,8 @@ _CMSGCLIENTREQUESTEDCLIENTSTATS_STATSTOSEND = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5834,
-  serialized_end=5899,
+  serialized_start=5647,
+  serialized_end=5712,
 )
 
 _CMSGCLIENTREQUESTEDCLIENTSTATS = _descriptor.Descriptor(
@@ -2405,8 +2330,8 @@ _CMSGCLIENTREQUESTEDCLIENTSTATS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5732,
-  serialized_end=5899,
+  serialized_start=5545,
+  serialized_end=5712,
 )
 
 
@@ -2471,8 +2396,8 @@ _CMSGCLIENTSTAT2_STATDETAIL = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5971,
-  serialized_end=6094,
+  serialized_start=5784,
+  serialized_end=5907,
 )
 
 _CMSGCLIENTSTAT2 = _descriptor.Descriptor(
@@ -2501,8 +2426,8 @@ _CMSGCLIENTSTAT2 = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5902,
-  serialized_end=6094,
+  serialized_start=5715,
+  serialized_end=5907,
 )
 
 
@@ -2553,8 +2478,8 @@ _CMSGCLIENTMMSSETRATELIMITPOLICYONCLIENT = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6097,
-  serialized_end=6249,
+  serialized_start=5910,
+  serialized_end=6062,
 )
 
 
@@ -2640,8 +2565,8 @@ _CMSGCLIENTMMSCREATELOBBY = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6252,
-  serialized_end=6484,
+  serialized_start=6065,
+  serialized_end=6297,
 )
 
 
@@ -2685,8 +2610,8 @@ _CMSGCLIENTMMSCREATELOBBYRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6486,
-  serialized_end=6580,
+  serialized_start=6299,
+  serialized_end=6393,
 )
 
 
@@ -2730,8 +2655,8 @@ _CMSGCLIENTMMSJOINLOBBY = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6582,
-  serialized_end=6668,
+  serialized_start=6395,
+  serialized_end=6481,
 )
 
 
@@ -2775,8 +2700,8 @@ _CMSGCLIENTMMSJOINLOBBYRESPONSE_MEMBER = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6940,
-  serialized_end=7006,
+  serialized_start=6753,
+  serialized_end=6819,
 )
 
 _CMSGCLIENTMMSJOINLOBBYRESPONSE = _descriptor.Descriptor(
@@ -2861,8 +2786,8 @@ _CMSGCLIENTMMSJOINLOBBYRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6671,
-  serialized_end=7006,
+  serialized_start=6484,
+  serialized_end=6819,
 )
 
 
@@ -2899,8 +2824,8 @@ _CMSGCLIENTMMSLEAVELOBBY = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=7008,
-  serialized_end=7073,
+  serialized_start=6821,
+  serialized_end=6886,
 )
 
 
@@ -2944,8 +2869,8 @@ _CMSGCLIENTMMSLEAVELOBBYRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=7075,
-  serialized_end=7168,
+  serialized_start=6888,
+  serialized_end=6981,
 )
 
 
@@ -2996,8 +2921,8 @@ _CMSGCLIENTMMSGETLOBBYLIST_FILTER = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=7381,
-  serialized_end=7459,
+  serialized_start=7194,
+  serialized_end=7272,
 )
 
 _CMSGCLIENTMMSGETLOBBYLIST = _descriptor.Descriptor(
@@ -3061,8 +2986,8 @@ _CMSGCLIENTMMSGETLOBBYLIST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=7171,
-  serialized_end=7459,
+  serialized_start=6984,
+  serialized_end=7272,
 )
 
 
@@ -3141,8 +3066,8 @@ _CMSGCLIENTMMSGETLOBBYLISTRESPONSE_LOBBY = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=7595,
-  serialized_end=7755,
+  serialized_start=7408,
+  serialized_end=7568,
 )
 
 _CMSGCLIENTMMSGETLOBBYLISTRESPONSE = _descriptor.Descriptor(
@@ -3185,8 +3110,8 @@ _CMSGCLIENTMMSGETLOBBYLISTRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=7462,
-  serialized_end=7755,
+  serialized_start=7275,
+  serialized_end=7568,
 )
 
 
@@ -3258,8 +3183,8 @@ _CMSGCLIENTMMSSETLOBBYDATA = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=7758,
-  serialized_end=7930,
+  serialized_start=7571,
+  serialized_end=7743,
 )
 
 
@@ -3303,8 +3228,8 @@ _CMSGCLIENTMMSSETLOBBYDATARESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=7932,
-  serialized_end=8027,
+  serialized_start=7745,
+  serialized_end=7840,
 )
 
 
@@ -3341,8 +3266,8 @@ _CMSGCLIENTMMSGETLOBBYDATA = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8029,
-  serialized_end=8096,
+  serialized_start=7842,
+  serialized_end=7909,
 )
 
 
@@ -3386,8 +3311,8 @@ _CMSGCLIENTMMSLOBBYDATA_MEMBER = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6940,
-  serialized_end=7006,
+  serialized_start=6753,
+  serialized_end=6819,
 )
 
 _CMSGCLIENTMMSLOBBYDATA = _descriptor.Descriptor(
@@ -3486,8 +3411,8 @@ _CMSGCLIENTMMSLOBBYDATA = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8099,
-  serialized_end=8464,
+  serialized_start=7912,
+  serialized_end=8277,
 )
 
 
@@ -3538,8 +3463,8 @@ _CMSGCLIENTMMSSENDLOBBYCHATMSG = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8466,
-  serialized_end=8585,
+  serialized_start=8279,
+  serialized_end=8398,
 )
 
 
@@ -3590,8 +3515,8 @@ _CMSGCLIENTMMSLOBBYCHATMSG = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8587,
-  serialized_end=8702,
+  serialized_start=8400,
+  serialized_end=8515,
 )
 
 
@@ -3635,8 +3560,8 @@ _CMSGCLIENTMMSSETLOBBYOWNER = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8704,
-  serialized_end=8800,
+  serialized_start=8517,
+  serialized_end=8613,
 )
 
 
@@ -3680,8 +3605,8 @@ _CMSGCLIENTMMSSETLOBBYOWNERRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8802,
-  serialized_end=8898,
+  serialized_start=8615,
+  serialized_end=8711,
 )
 
 
@@ -3725,8 +3650,8 @@ _CMSGCLIENTMMSSETLOBBYLINKED = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8900,
-  serialized_end=8994,
+  serialized_start=8713,
+  serialized_end=8807,
 )
 
 
@@ -3791,8 +3716,8 @@ _CMSGCLIENTMMSSETLOBBYGAMESERVER = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8997,
-  serialized_end=9201,
+  serialized_start=8810,
+  serialized_end=9014,
 )
 
 
@@ -3857,8 +3782,8 @@ _CMSGCLIENTMMSLOBBYGAMESERVERSET = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9204,
-  serialized_end=9408,
+  serialized_start=9017,
+  serialized_end=9221,
 )
 
 
@@ -3909,8 +3834,8 @@ _CMSGCLIENTMMSUSERJOINEDLOBBY = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9410,
-  serialized_end=9525,
+  serialized_start=9223,
+  serialized_end=9338,
 )
 
 
@@ -3961,8 +3886,8 @@ _CMSGCLIENTMMSUSERLEFTLOBBY = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9527,
-  serialized_end=9640,
+  serialized_start=9340,
+  serialized_end=9453,
 )
 
 
@@ -4006,8 +3931,8 @@ _CMSGCLIENTMMSINVITETOLOBBY = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9642,
-  serialized_end=9741,
+  serialized_start=9455,
+  serialized_end=9554,
 )
 
 
@@ -4058,8 +3983,8 @@ _CMSGCLIENTMMSGETLOBBYSTATUS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9743,
-  serialized_end=9863,
+  serialized_start=9556,
+  serialized_end=9676,
 )
 
 
@@ -4103,8 +4028,8 @@ _CMSGCLIENTMMSGETLOBBYSTATUSRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9866,
-  serialized_end=10009,
+  serialized_start=9679,
+  serialized_end=9822,
 )
 
 
@@ -4155,8 +4080,8 @@ _CMSGCLIENTINVITETOGAME = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10011,
-  serialized_end=10125,
+  serialized_start=9824,
+  serialized_end=9938,
 )
 
 
@@ -4228,8 +4153,8 @@ _CMSGCLIENTCHATINVITE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10128,
-  serialized_end=10313,
+  serialized_start=9941,
+  serialized_end=10126,
 )
 
 
@@ -4301,8 +4226,8 @@ _CMSGCLIENTCONNECTIONSTATS_STATS_LOGON = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10468,
-  serialized_end=10667,
+  serialized_start=10281,
+  serialized_end=10480,
 )
 
 _CMSGCLIENTCONNECTIONSTATS_STATS_UDP = _descriptor.Descriptor(
@@ -4359,8 +4284,8 @@ _CMSGCLIENTCONNECTIONSTATS_STATS_UDP = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10669,
-  serialized_end=10782,
+  serialized_start=10482,
+  serialized_end=10595,
 )
 
 _CMSGCLIENTCONNECTIONSTATS_STATS_VCONN = _descriptor.Descriptor(
@@ -4522,8 +4447,8 @@ _CMSGCLIENTCONNECTIONSTATS_STATS_VCONN = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10785,
-  serialized_end=11350,
+  serialized_start=10598,
+  serialized_end=11163,
 )
 
 _CMSGCLIENTCONNECTIONSTATS = _descriptor.Descriptor(
@@ -4559,8 +4484,8 @@ _CMSGCLIENTCONNECTIONSTATS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10316,
-  serialized_end=11350,
+  serialized_start=10129,
+  serialized_end=11163,
 )
 
 
@@ -4597,8 +4522,8 @@ _CMSGCLIENTSERVERSAVAILABLE_SERVER_TYPES_AVAILABLE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11506,
-  serialized_end=11563,
+  serialized_start=11319,
+  serialized_end=11376,
 )
 
 _CMSGCLIENTSERVERSAVAILABLE = _descriptor.Descriptor(
@@ -4634,8 +4559,8 @@ _CMSGCLIENTSERVERSAVAILABLE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11353,
-  serialized_end=11563,
+  serialized_start=11166,
+  serialized_end=11376,
 )
 
 
@@ -4686,8 +4611,8 @@ _CMSGCLIENTGETUSERSTATS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11565,
-  serialized_end=11682,
+  serialized_start=11378,
+  serialized_end=11495,
 )
 
 
@@ -4724,8 +4649,8 @@ _CMSGCLIENTGETUSERSTATSRESPONSE_STATS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11925,
-  serialized_end=11969,
+  serialized_start=11738,
+  serialized_end=11782,
 )
 
 _CMSGCLIENTGETUSERSTATSRESPONSE_ACHIEVEMENT_BLOCKS = _descriptor.Descriptor(
@@ -4761,8 +4686,8 @@ _CMSGCLIENTGETUSERSTATSRESPONSE_ACHIEVEMENT_BLOCKS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11971,
-  serialized_end=12036,
+  serialized_start=11784,
+  serialized_end=11849,
 )
 
 _CMSGCLIENTGETUSERSTATSRESPONSE = _descriptor.Descriptor(
@@ -4826,8 +4751,8 @@ _CMSGCLIENTGETUSERSTATSRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11685,
-  serialized_end=12036,
+  serialized_start=11498,
+  serialized_end=11849,
 )
 
 
@@ -4864,8 +4789,8 @@ _CMSGCLIENTSTOREUSERSTATSRESPONSE_STATS_FAILED_VALIDATION = _descriptor.Descript
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12250,
-  serialized_end=12321,
+  serialized_start=12063,
+  serialized_end=12134,
 )
 
 _CMSGCLIENTSTOREUSERSTATSRESPONSE = _descriptor.Descriptor(
@@ -4922,8 +4847,8 @@ _CMSGCLIENTSTOREUSERSTATSRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12039,
-  serialized_end=12321,
+  serialized_start=11852,
+  serialized_end=12134,
 )
 
 
@@ -4960,8 +4885,8 @@ _CMSGCLIENTSTOREUSERSTATS2_STATS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11925,
-  serialized_end=11969,
+  serialized_start=11738,
+  serialized_end=11782,
 )
 
 _CMSGCLIENTSTOREUSERSTATS2 = _descriptor.Descriptor(
@@ -5025,8 +4950,8 @@ _CMSGCLIENTSTOREUSERSTATS2 = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12324,
-  serialized_end=12556,
+  serialized_start=12137,
+  serialized_end=12369,
 )
 
 
@@ -5063,8 +4988,8 @@ _CMSGCLIENTSTATSUPDATED_UPDATED_STATS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12701,
-  serialized_end=12753,
+  serialized_start=12514,
+  serialized_end=12566,
 )
 
 _CMSGCLIENTSTATSUPDATED = _descriptor.Descriptor(
@@ -5114,8 +5039,8 @@ _CMSGCLIENTSTATSUPDATED = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12559,
-  serialized_end=12753,
+  serialized_start=12372,
+  serialized_end=12566,
 )
 
 
@@ -5152,8 +5077,8 @@ _CMSGCLIENTSTOREUSERSTATS_STATS_TO_STORE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12891,
-  serialized_end=12944,
+  serialized_start=12704,
+  serialized_end=12757,
 )
 
 _CMSGCLIENTSTOREUSERSTATS = _descriptor.Descriptor(
@@ -5196,8 +5121,8 @@ _CMSGCLIENTSTOREUSERSTATS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12756,
-  serialized_end=12944,
+  serialized_start=12569,
+  serialized_end=12757,
 )
 
 
@@ -5220,8 +5145,8 @@ _CMSGCLIENTGETCLIENTDETAILS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12946,
-  serialized_end=12974,
+  serialized_start=12759,
+  serialized_end=12787,
 )
 
 
@@ -5251,8 +5176,8 @@ _CMSGCLIENTREPORTOVERLAYDETOURFAILURE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12976,
-  serialized_end=13039,
+  serialized_start=12789,
+  serialized_end=12852,
 )
 
 
@@ -5296,8 +5221,8 @@ _CMSGCLIENTGETCLIENTDETAILSRESPONSE_GAME = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=13294,
-  serialized_end=13361,
+  serialized_start=13107,
+  serialized_end=13174,
 )
 
 _CMSGCLIENTGETCLIENTDETAILSRESPONSE = _descriptor.Descriptor(
@@ -5375,8 +5300,8 @@ _CMSGCLIENTGETCLIENTDETAILSRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=13042,
-  serialized_end=13361,
+  serialized_start=12855,
+  serialized_end=13174,
 )
 
 
@@ -5441,8 +5366,8 @@ _CMSGCLIENTGETCLIENTAPPLIST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=13364,
-  serialized_end=13500,
+  serialized_start=13177,
+  serialized_end=13313,
 )
 
 
@@ -5479,8 +5404,8 @@ _CMSGCLIENTGETCLIENTAPPLISTRESPONSE_APP_DLC = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=13993,
-  serialized_end=14032,
+  serialized_start=13806,
+  serialized_end=13845,
 )
 
 _CMSGCLIENTGETCLIENTAPPLISTRESPONSE_APP = _descriptor.Descriptor(
@@ -5607,8 +5532,8 @@ _CMSGCLIENTGETCLIENTAPPLISTRESPONSE_APP = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=13622,
-  serialized_end=14032,
+  serialized_start=13435,
+  serialized_end=13845,
 )
 
 _CMSGCLIENTGETCLIENTAPPLISTRESPONSE = _descriptor.Descriptor(
@@ -5644,8 +5569,8 @@ _CMSGCLIENTGETCLIENTAPPLISTRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=13503,
-  serialized_end=14032,
+  serialized_start=13316,
+  serialized_end=13845,
 )
 
 
@@ -5675,8 +5600,8 @@ _CMSGCLIENTINSTALLCLIENTAPP = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=14034,
-  serialized_end=14077,
+  serialized_start=13847,
+  serialized_end=13890,
 )
 
 
@@ -5706,8 +5631,8 @@ _CMSGCLIENTINSTALLCLIENTAPPRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=14079,
-  serialized_end=14131,
+  serialized_start=13892,
+  serialized_end=13944,
 )
 
 
@@ -5737,8 +5662,8 @@ _CMSGCLIENTUNINSTALLCLIENTAPP = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=14133,
-  serialized_end=14178,
+  serialized_start=13946,
+  serialized_end=13991,
 )
 
 
@@ -5768,8 +5693,8 @@ _CMSGCLIENTUNINSTALLCLIENTAPPRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=14180,
-  serialized_end=14234,
+  serialized_start=13993,
+  serialized_end=14047,
 )
 
 
@@ -5806,8 +5731,8 @@ _CMSGCLIENTSETCLIENTAPPUPDATESTATE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=14236,
-  serialized_end=14302,
+  serialized_start=14049,
+  serialized_end=14115,
 )
 
 
@@ -5837,8 +5762,8 @@ _CMSGCLIENTSETCLIENTAPPUPDATESTATERESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=14304,
-  serialized_end=14363,
+  serialized_start=14117,
+  serialized_end=14176,
 )
 
 
@@ -5931,8 +5856,8 @@ _CMSGCLIENTUFSUPLOADFILEREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=14366,
-  serialized_end=14628,
+  serialized_start=14179,
+  serialized_end=14441,
 )
 
 
@@ -6011,8 +5936,8 @@ _CMSGCLIENTUFSUPLOADFILERESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=14631,
-  serialized_end=14818,
+  serialized_start=14444,
+  serialized_end=14631,
 )
 
 
@@ -6070,8 +5995,8 @@ _CMSGCLIENTUFSUPLOADCOMMIT_FILE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=14898,
-  serialized_end=14995,
+  serialized_start=14711,
+  serialized_end=14808,
 )
 
 _CMSGCLIENTUFSUPLOADCOMMIT = _descriptor.Descriptor(
@@ -6100,8 +6025,8 @@ _CMSGCLIENTUFSUPLOADCOMMIT = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=14821,
-  serialized_end=14995,
+  serialized_start=14634,
+  serialized_end=14808,
 )
 
 
@@ -6145,8 +6070,8 @@ _CMSGCLIENTUFSUPLOADCOMMITRESPONSE_FILE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=14898,
-  serialized_end=14958,
+  serialized_start=14711,
+  serialized_end=14771,
 )
 
 _CMSGCLIENTUFSUPLOADCOMMITRESPONSE = _descriptor.Descriptor(
@@ -6175,8 +6100,8 @@ _CMSGCLIENTUFSUPLOADCOMMITRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=14998,
-  serialized_end=15151,
+  serialized_start=14811,
+  serialized_end=14964,
 )
 
 
@@ -6220,8 +6145,8 @@ _CMSGCLIENTUFSFILECHUNK = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=15153,
-  serialized_end=15229,
+  serialized_start=14966,
+  serialized_end=15042,
 )
 
 
@@ -6244,8 +6169,8 @@ _CMSGCLIENTUFSTRANSFERHEARTBEAT = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=15231,
-  serialized_end=15263,
+  serialized_start=15044,
+  serialized_end=15076,
 )
 
 
@@ -6282,8 +6207,8 @@ _CMSGCLIENTUFSUPLOADFILEFINISHED = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=15265,
-  serialized_end=15336,
+  serialized_start=15078,
+  serialized_end=15149,
 )
 
 
@@ -6327,8 +6252,8 @@ _CMSGCLIENTUFSDELETEFILEREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=15338,
-  serialized_end=15433,
+  serialized_start=15151,
+  serialized_end=15246,
 )
 
 
@@ -6365,8 +6290,8 @@ _CMSGCLIENTUFSDELETEFILERESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=15435,
-  serialized_end=15507,
+  serialized_start=15248,
+  serialized_end=15320,
 )
 
 
@@ -6403,8 +6328,8 @@ _CMSGCLIENTUFSGETFILELISTFORAPP = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=15509,
-  serialized_end=15592,
+  serialized_start=15322,
+  serialized_end=15405,
 )
 
 
@@ -6483,8 +6408,8 @@ _CMSGCLIENTUFSGETFILELISTFORAPPRESPONSE_FILE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=15722,
-  serialized_end=15906,
+  serialized_start=15535,
+  serialized_end=15719,
 )
 
 _CMSGCLIENTUFSGETFILELISTFORAPPRESPONSE = _descriptor.Descriptor(
@@ -6520,8 +6445,8 @@ _CMSGCLIENTUFSGETFILELISTFORAPPRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=15595,
-  serialized_end=15916,
+  serialized_start=15408,
+  serialized_end=15729,
 )
 
 
@@ -6565,8 +6490,8 @@ _CMSGCLIENTUFSDOWNLOADREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=15918,
-  serialized_end=16008,
+  serialized_start=15731,
+  serialized_end=15821,
 )
 
 
@@ -6680,8 +6605,8 @@ _CMSGCLIENTUFSDOWNLOADRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=16011,
-  serialized_end=16299,
+  serialized_start=15824,
+  serialized_end=16112,
 )
 
 
@@ -6725,8 +6650,8 @@ _CMSGCLIENTUFSLOGINREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=16301,
-  serialized_end=16394,
+  serialized_start=16114,
+  serialized_end=16207,
 )
 
 
@@ -6756,8 +6681,8 @@ _CMSGCLIENTUFSLOGINRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=16396,
-  serialized_end=16444,
+  serialized_start=16209,
+  serialized_end=16257,
 )
 
 
@@ -6794,8 +6719,8 @@ _CMSGCLIENTREQUESTENCRYPTEDAPPTICKET = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=16446,
-  serialized_end=16517,
+  serialized_start=16259,
+  serialized_end=16330,
 )
 
 
@@ -6839,8 +6764,8 @@ _CMSGCLIENTREQUESTENCRYPTEDAPPTICKETRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=16520,
-  serialized_end=16652,
+  serialized_start=16333,
+  serialized_end=16465,
 )
 
 
@@ -6893,6 +6818,13 @@ _CMSGCLIENTWALLETINFOUPDATE = _descriptor.Descriptor(
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=_b('\240\266\030\001'), file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='realm', full_name='CMsgClientWalletInfoUpdate.realm', index=6,
+      number=7, type=5, cpp_type=1, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -6905,8 +6837,8 @@ _CMSGCLIENTWALLETINFOUPDATE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=16655,
-  serialized_end=16821,
+  serialized_start=16468,
+  serialized_end=16649,
 )
 
 
@@ -6943,8 +6875,8 @@ _CMSGCLIENTAPPINFOUPDATE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=16823,
-  serialized_end=16900,
+  serialized_start=16651,
+  serialized_end=16728,
 )
 
 
@@ -6988,8 +6920,8 @@ _CMSGCLIENTAPPINFOCHANGES = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=16902,
-  serialized_end=17002,
+  serialized_start=16730,
+  serialized_end=16830,
 )
 
 
@@ -7033,8 +6965,8 @@ _CMSGCLIENTAPPINFOREQUEST_APP = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17111,
-  serialized_end=17176,
+  serialized_start=16939,
+  serialized_end=17004,
 )
 
 _CMSGCLIENTAPPINFOREQUEST = _descriptor.Descriptor(
@@ -7070,8 +7002,8 @@ _CMSGCLIENTAPPINFOREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17005,
-  serialized_end=17176,
+  serialized_start=16833,
+  serialized_end=17004,
 )
 
 
@@ -7108,8 +7040,8 @@ _CMSGCLIENTAPPINFORESPONSE_APP_SECTION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17403,
-  serialized_end=17452,
+  serialized_start=17231,
+  serialized_end=17280,
 )
 
 _CMSGCLIENTAPPINFORESPONSE_APP = _descriptor.Descriptor(
@@ -7152,8 +7084,8 @@ _CMSGCLIENTAPPINFORESPONSE_APP = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17299,
-  serialized_end=17452,
+  serialized_start=17127,
+  serialized_end=17280,
 )
 
 _CMSGCLIENTAPPINFORESPONSE = _descriptor.Descriptor(
@@ -7196,8 +7128,8 @@ _CMSGCLIENTAPPINFORESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17179,
-  serialized_end=17458,
+  serialized_start=17007,
+  serialized_end=17286,
 )
 
 
@@ -7234,8 +7166,8 @@ _CMSGCLIENTPACKAGEINFOREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17460,
-  serialized_end=17535,
+  serialized_start=17288,
+  serialized_end=17363,
 )
 
 
@@ -7286,8 +7218,8 @@ _CMSGCLIENTPACKAGEINFORESPONSE_PACKAGE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17681,
-  serialized_end=17762,
+  serialized_start=17509,
+  serialized_end=17590,
 )
 
 _CMSGCLIENTPACKAGEINFORESPONSE = _descriptor.Descriptor(
@@ -7330,8 +7262,8 @@ _CMSGCLIENTPACKAGEINFORESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17538,
-  serialized_end=17762,
+  serialized_start=17366,
+  serialized_end=17590,
 )
 
 
@@ -7389,8 +7321,8 @@ _CMSGCLIENTPICSCHANGESSINCEREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17765,
-  serialized_end=17957,
+  serialized_start=17593,
+  serialized_end=17785,
 )
 
 
@@ -7434,8 +7366,8 @@ _CMSGCLIENTPICSCHANGESSINCERESPONSE_PACKAGECHANGE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=18295,
-  serialized_end=18373,
+  serialized_start=18123,
+  serialized_end=18201,
 )
 
 _CMSGCLIENTPICSCHANGESSINCERESPONSE_APPCHANGE = _descriptor.Descriptor(
@@ -7478,8 +7410,8 @@ _CMSGCLIENTPICSCHANGESSINCERESPONSE_APPCHANGE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=18375,
-  serialized_end=18445,
+  serialized_start=18203,
+  serialized_end=18273,
 )
 
 _CMSGCLIENTPICSCHANGESSINCERESPONSE = _descriptor.Descriptor(
@@ -7550,8 +7482,8 @@ _CMSGCLIENTPICSCHANGESSINCERESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17960,
-  serialized_end=18445,
+  serialized_start=17788,
+  serialized_end=18273,
 )
 
 
@@ -7577,7 +7509,7 @@ _CMSGCLIENTPICSPRODUCTINFOREQUEST_APPINFO = _descriptor.Descriptor(
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='only_public', full_name='CMsgClientPICSProductInfoRequest.AppInfo.only_public', index=2,
+      name='only_public_obsolete', full_name='CMsgClientPICSProductInfoRequest.AppInfo.only_public_obsolete', index=2,
       number=3, type=8, cpp_type=7, label=1,
       has_default_value=False, default_value=False,
       message_type=None, enum_type=None, containing_type=None,
@@ -7595,8 +7527,8 @@ _CMSGCLIENTPICSPRODUCTINFOREQUEST_APPINFO = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=18688,
-  serialized_end=18755,
+  serialized_start=18516,
+  serialized_end=18592,
 )
 
 _CMSGCLIENTPICSPRODUCTINFOREQUEST_PACKAGEINFO = _descriptor.Descriptor(
@@ -7632,8 +7564,8 @@ _CMSGCLIENTPICSPRODUCTINFOREQUEST_PACKAGEINFO = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=18757,
-  serialized_end=18811,
+  serialized_start=18594,
+  serialized_end=18648,
 )
 
 _CMSGCLIENTPICSPRODUCTINFOREQUEST = _descriptor.Descriptor(
@@ -7690,8 +7622,8 @@ _CMSGCLIENTPICSPRODUCTINFOREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=18448,
-  serialized_end=18811,
+  serialized_start=18276,
+  serialized_end=18648,
 )
 
 
@@ -7763,8 +7695,8 @@ _CMSGCLIENTPICSPRODUCTINFORESPONSE_APPINFO = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=19120,
-  serialized_end=19254,
+  serialized_start=18957,
+  serialized_end=19091,
 )
 
 _CMSGCLIENTPICSPRODUCTINFORESPONSE_PACKAGEINFO = _descriptor.Descriptor(
@@ -7828,8 +7760,8 @@ _CMSGCLIENTPICSPRODUCTINFORESPONSE_PACKAGEINFO = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=19256,
-  serialized_end=19377,
+  serialized_start=19093,
+  serialized_end=19214,
 )
 
 _CMSGCLIENTPICSPRODUCTINFORESPONSE = _descriptor.Descriptor(
@@ -7907,8 +7839,8 @@ _CMSGCLIENTPICSPRODUCTINFORESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=18814,
-  serialized_end=19383,
+  serialized_start=18651,
+  serialized_end=19220,
 )
 
 
@@ -7945,8 +7877,8 @@ _CMSGCLIENTPICSACCESSTOKENREQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=19385,
-  serialized_end=19455,
+  serialized_start=19222,
+  serialized_end=19292,
 )
 
 
@@ -7983,8 +7915,8 @@ _CMSGCLIENTPICSACCESSTOKENRESPONSE_PACKAGETOKEN = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=19705,
-  serialized_end=19760,
+  serialized_start=19542,
+  serialized_end=19597,
 )
 
 _CMSGCLIENTPICSACCESSTOKENRESPONSE_APPTOKEN = _descriptor.Descriptor(
@@ -8020,8 +7952,8 @@ _CMSGCLIENTPICSACCESSTOKENRESPONSE_APPTOKEN = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=19762,
-  serialized_end=19809,
+  serialized_start=19599,
+  serialized_end=19646,
 )
 
 _CMSGCLIENTPICSACCESSTOKENRESPONSE = _descriptor.Descriptor(
@@ -8071,8 +8003,8 @@ _CMSGCLIENTPICSACCESSTOKENRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=19458,
-  serialized_end=19809,
+  serialized_start=19295,
+  serialized_end=19646,
 )
 
 
@@ -8102,8 +8034,8 @@ _CMSGCLIENTUFSGETUGCDETAILS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=19811,
-  serialized_end=19879,
+  serialized_start=19648,
+  serialized_end=19716,
 )
 
 
@@ -8189,8 +8121,8 @@ _CMSGCLIENTUFSGETUGCDETAILSRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=19882,
-  serialized_end=20111,
+  serialized_start=19719,
+  serialized_end=19948,
 )
 
 
@@ -8227,8 +8159,8 @@ _CMSGCLIENTUFSGETSINGLEFILEINFO = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=20113,
-  serialized_end=20180,
+  serialized_start=19950,
+  serialized_end=20017,
 )
 
 
@@ -8300,8 +8232,8 @@ _CMSGCLIENTUFSGETSINGLEFILEINFORESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=20183,
-  serialized_end=20367,
+  serialized_start=20020,
+  serialized_end=20204,
 )
 
 
@@ -8338,8 +8270,8 @@ _CMSGCLIENTUFSSHAREFILE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=20369,
-  serialized_end=20428,
+  serialized_start=20206,
+  serialized_end=20265,
 )
 
 
@@ -8376,8 +8308,8 @@ _CMSGCLIENTUFSSHAREFILERESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=20430,
-  serialized_end=20522,
+  serialized_start=20267,
+  serialized_end=20359,
 )
 
 
@@ -8407,8 +8339,8 @@ _CMSGCLIENTAMGETCLANOFFICERS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=20524,
-  serialized_end=20575,
+  serialized_start=20361,
+  serialized_end=20412,
 )
 
 
@@ -8452,8 +8384,8 @@ _CMSGCLIENTAMGETCLANOFFICERSRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=20577,
-  serialized_end=20679,
+  serialized_start=20414,
+  serialized_end=20516,
 )
 
 
@@ -8483,8 +8415,8 @@ _CMSGCLIENTAMGETPERSONANAMEHISTORY_IDINSTANCE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=20797,
-  serialized_end=20826,
+  serialized_start=20634,
+  serialized_end=20663,
 )
 
 _CMSGCLIENTAMGETPERSONANAMEHISTORY = _descriptor.Descriptor(
@@ -8520,8 +8452,8 @@ _CMSGCLIENTAMGETPERSONANAMEHISTORY = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=20682,
-  serialized_end=20826,
+  serialized_start=20519,
+  serialized_end=20663,
 )
 
 
@@ -8558,8 +8490,8 @@ _CMSGCLIENTAMGETPERSONANAMEHISTORYRESPONSE_NAMETABLEINSTANCE_NAMEINSTANCE = _des
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=21104,
-  serialized_end=21152,
+  serialized_start=20941,
+  serialized_end=20989,
 )
 
 _CMSGCLIENTAMGETPERSONANAMEHISTORYRESPONSE_NAMETABLEINSTANCE = _descriptor.Descriptor(
@@ -8602,8 +8534,8 @@ _CMSGCLIENTAMGETPERSONANAMEHISTORYRESPONSE_NAMETABLEINSTANCE = _descriptor.Descr
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=20956,
-  serialized_end=21152,
+  serialized_start=20793,
+  serialized_end=20989,
 )
 
 _CMSGCLIENTAMGETPERSONANAMEHISTORYRESPONSE = _descriptor.Descriptor(
@@ -8632,8 +8564,8 @@ _CMSGCLIENTAMGETPERSONANAMEHISTORYRESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=20829,
-  serialized_end=21152,
+  serialized_start=20666,
+  serialized_end=20989,
 )
 
 
@@ -8670,8 +8602,8 @@ _CMSGCLIENTDEREGISTERWITHSERVER = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=21154,
-  serialized_end=21223,
+  serialized_start=20991,
+  serialized_end=21060,
 )
 
 
@@ -8708,8 +8640,8 @@ _CMSGCLIENTCLANSTATE_NAMEINFO = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=21525,
-  serialized_end=21574,
+  serialized_start=21362,
+  serialized_end=21411,
 )
 
 _CMSGCLIENTCLANSTATE_USERCOUNTS = _descriptor.Descriptor(
@@ -8766,8 +8698,8 @@ _CMSGCLIENTCLANSTATE_USERCOUNTS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=21576,
-  serialized_end=21683,
+  serialized_start=21413,
+  serialized_end=21520,
 )
 
 _CMSGCLIENTCLANSTATE_EVENT = _descriptor.Descriptor(
@@ -8824,8 +8756,8 @@ _CMSGCLIENTCLANSTATE_EVENT = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=21685,
-  serialized_end=21781,
+  serialized_start=21522,
+  serialized_end=21618,
 )
 
 _CMSGCLIENTCLANSTATE = _descriptor.Descriptor(
@@ -8896,8 +8828,8 @@ _CMSGCLIENTCLANSTATE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=21226,
-  serialized_end=21781,
+  serialized_start=21063,
+  serialized_end=21618,
 )
 
 
@@ -8969,8 +8901,8 @@ _CMSGCLIENTUNSIGNEDINSTALLSCRIPT = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=21784,
-  serialized_end=21956,
+  serialized_start=21621,
+  serialized_end=21793,
 )
 
 _CMSGGSPLAYERLIST_PLAYER.fields_by_name['public_ip'].message_type = steammessages__base__pb2._CMSGIPADDRESS
@@ -8985,8 +8917,6 @@ _CMSGCLIENTLICENSELIST_LICENSE.containing_type = _CMSGCLIENTLICENSELIST
 _CMSGCLIENTLICENSELIST.fields_by_name['licenses'].message_type = _CMSGCLIENTLICENSELIST_LICENSE
 _CMSGCLIENTLBSGETLBENTRIESRESPONSE_ENTRY.containing_type = _CMSGCLIENTLBSGETLBENTRIESRESPONSE
 _CMSGCLIENTLBSGETLBENTRIESRESPONSE.fields_by_name['entries'].message_type = _CMSGCLIENTLBSGETLBENTRIESRESPONSE_ENTRY
-_CMSGCLIENTAPPMINUTESPLAYEDDATA_APPMINUTESPLAYEDDATA.containing_type = _CMSGCLIENTAPPMINUTESPLAYEDDATA
-_CMSGCLIENTAPPMINUTESPLAYEDDATA.fields_by_name['minutes_played'].message_type = _CMSGCLIENTAPPMINUTESPLAYEDDATA_APPMINUTESPLAYEDDATA
 _CMSGCLIENTREQUESTEDCLIENTSTATS_STATSTOSEND.containing_type = _CMSGCLIENTREQUESTEDCLIENTSTATS
 _CMSGCLIENTREQUESTEDCLIENTSTATS.fields_by_name['stats_to_send'].message_type = _CMSGCLIENTREQUESTEDCLIENTSTATS_STATSTOSEND
 _CMSGCLIENTSTAT2_STATDETAIL.containing_type = _CMSGCLIENTSTAT2
@@ -9109,7 +9039,6 @@ DESCRIPTOR.message_types_by_name['CMsgClientLBSFindOrCreateLB'] = _CMSGCLIENTLBS
 DESCRIPTOR.message_types_by_name['CMsgClientLBSFindOrCreateLBResponse'] = _CMSGCLIENTLBSFINDORCREATELBRESPONSE
 DESCRIPTOR.message_types_by_name['CMsgClientLBSGetLBEntries'] = _CMSGCLIENTLBSGETLBENTRIES
 DESCRIPTOR.message_types_by_name['CMsgClientLBSGetLBEntriesResponse'] = _CMSGCLIENTLBSGETLBENTRIESRESPONSE
-DESCRIPTOR.message_types_by_name['CMsgClientAppMinutesPlayedData'] = _CMSGCLIENTAPPMINUTESPLAYEDDATA
 DESCRIPTOR.message_types_by_name['CMsgClientIsLimitedAccount'] = _CMSGCLIENTISLIMITEDACCOUNT
 DESCRIPTOR.message_types_by_name['CMsgClientRequestedClientStats'] = _CMSGCLIENTREQUESTEDCLIENTSTATS
 DESCRIPTOR.message_types_by_name['CMsgClientStat2'] = _CMSGCLIENTSTAT2
@@ -9482,21 +9411,6 @@ CMsgClientLBSGetLBEntriesResponse = _reflection.GeneratedProtocolMessageType('CM
 _sym_db.RegisterMessage(CMsgClientLBSGetLBEntriesResponse)
 _sym_db.RegisterMessage(CMsgClientLBSGetLBEntriesResponse.Entry)
 
-CMsgClientAppMinutesPlayedData = _reflection.GeneratedProtocolMessageType('CMsgClientAppMinutesPlayedData', (_message.Message,), dict(
-
-  AppMinutesPlayedData = _reflection.GeneratedProtocolMessageType('AppMinutesPlayedData', (_message.Message,), dict(
-    DESCRIPTOR = _CMSGCLIENTAPPMINUTESPLAYEDDATA_APPMINUTESPLAYEDDATA,
-    __module__ = 'steammessages_clientserver_pb2'
-    # @@protoc_insertion_point(class_scope:CMsgClientAppMinutesPlayedData.AppMinutesPlayedData)
-    ))
-  ,
-  DESCRIPTOR = _CMSGCLIENTAPPMINUTESPLAYEDDATA,
-  __module__ = 'steammessages_clientserver_pb2'
-  # @@protoc_insertion_point(class_scope:CMsgClientAppMinutesPlayedData)
-  ))
-_sym_db.RegisterMessage(CMsgClientAppMinutesPlayedData)
-_sym_db.RegisterMessage(CMsgClientAppMinutesPlayedData.AppMinutesPlayedData)
-
 CMsgClientIsLimitedAccount = _reflection.GeneratedProtocolMessageType('CMsgClientIsLimitedAccount', (_message.Message,), dict(
   DESCRIPTOR = _CMSGCLIENTISLIMITEDACCOUNT,
   __module__ = 'steammessages_clientserver_pb2'
diff --git a/steam/protobufs/steammessages_credentials_pb2.py b/steam/protobufs/steammessages_credentials_pb2.py
index bea5fea..eb384f9 100644
--- a/steam/protobufs/steammessages_credentials_pb2.py
+++ b/steam/protobufs/steammessages_credentials_pb2.py
@@ -23,7 +23,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
   package='',
   syntax='proto2',
   serialized_options=_b('\220\001\001'),
-  serialized_pb=_b('\n\x1fsteammessages_credentials.proto\x1a steammessages_unified_base.proto\"q\n*CCredentials_TestAvailablePassword_Request\x12\x10\n\x08password\x18\x01 \x01(\t\x12\x1b\n\x13sha_digest_password\x18\x02 \x01(\x0c\x12\x14\n\x0c\x61\x63\x63ount_name\x18\x03 \x01(\t\"?\n+CCredentials_TestAvailablePassword_Response\x12\x10\n\x08is_valid\x18\x03 \x01(\x08\"\xef\x02\n)CCredentials_GetSteamGuardDetails_Request\x12u\n\x1binclude_new_authentications\x18\x01 \x01(\x08:\x04trueBJ\x82\xb5\x18\x46Whether or not to populate the newauthentication field in the response\x12\x95\x01\n\twebcookie\x18\x02 \x01(\tB\x81\x01\x82\xb5\x18}The user\'s Steam Guard machine auth cookie. If present, it\'ll be used to get the user\'s machine ID instead of the AM session.\x12 \n\x18timestamp_minimum_wanted\x18\x03 \x01(\x07\x12\x11\n\tipaddress\x18\x04 \x01(\x05\"\x84\t\n*CCredentials_GetSteamGuardDetails_Response\x12\x1d\n\x15is_steamguard_enabled\x18\x01 \x01(\x08\x12$\n\x1ctimestamp_steamguard_enabled\x18\x02 \x01(\x07\x12\x63\n\x1c\x64\x65precated_newauthentication\x18\x03 \x03(\x0b\x32=.CCredentials_GetSteamGuardDetails_Response.NewAuthentication\x12*\n\"deprecated_machine_name_userchosen\x18\x04 \x01(\t\x12\x37\n/deprecated_timestamp_machine_steamguard_enabled\x18\x05 \x01(\x07\x12\x43\n;deprecated_authentication_exists_from_geoloc_before_mintime\x18\x06 \x01(\x08\x12\x1d\n\x15\x64\x65precated_machine_id\x18\x07 \x01(\x04\x12M\n\x0csession_data\x18\x08 \x03(\x0b\x32\x37.CCredentials_GetSteamGuardDetails_Response.SessionData\x12\x1c\n\x14is_twofactor_enabled\x18\t \x01(\x08\x12#\n\x1btimestamp_twofactor_enabled\x18\n \x01(\x07\x12\x19\n\x11is_phone_verified\x18\x0b \x01(\x08\x1a\xc3\x01\n\x11NewAuthentication\x12$\n\x1ctimestamp_steamguard_enabled\x18\x01 \x01(\x07\x12\x15\n\ris_web_cookie\x18\x02 \x01(\x08\x12\x11\n\tipaddress\x18\x03 \x01(\x05\x12\x13\n\x0bgeoloc_info\x18\x04 \x01(\t\x12\x15\n\ris_remembered\x18\x05 \x01(\x08\x12\"\n\x1amachine_name_user_supplied\x18\x06 \x01(\t\x12\x0e\n\x06status\x18\x07 \x01(\x05\x1a\xef\x02\n\x0bSessionData\x12\x12\n\nmachine_id\x18\x01 \x01(\x04\x12\x1f\n\x17machine_name_userchosen\x18\x02 \x01(\t\x12,\n$timestamp_machine_steamguard_enabled\x18\x03 \x01(\x07\x12\x38\n0authentication_exists_from_geoloc_before_mintime\x18\x04 \x01(\x08\x12X\n\x11newauthentication\x18\x05 \x03(\x0b\x32=.CCredentials_GetSteamGuardDetails_Response.NewAuthentication\x12\x39\n1authentication_exists_from_same_ip_before_mintime\x18\x06 \x01(\x08\x12\x13\n\x0bpublic_ipv4\x18\x07 \x01(\r\x12\x19\n\x11public_ip_address\x18\x08 \x01(\t\"d\n1CCredentials_NewMachineNotificationDialog_Request\x12\x13\n\x0bis_approved\x18\x01 \x01(\x08\x12\x1a\n\x12is_wizard_complete\x18\x02 \x01(\x08\"4\n2CCredentials_NewMachineNotificationDialog_Response\";\n)CCredentials_ValidateEmailAddress_Request\x12\x0e\n\x06stoken\x18\x01 \x01(\t\"C\n*CCredentials_ValidateEmailAddress_Response\x12\x15\n\rwas_validated\x18\x01 \x01(\x08\"_\n-CCredentials_SteamGuardPhishingReport_Request\x12\x14\n\x0cparam_string\x18\x01 \x01(\t\x12\x18\n\x10ipaddress_actual\x18\x02 \x01(\r\"\xb3\x02\n.CCredentials_SteamGuardPhishingReport_Response\x12\x1e\n\x16ipaddress_loginattempt\x18\x01 \x01(\r\x12 \n\x18\x63ountryname_loginattempt\x18\x02 \x01(\t\x12\x1e\n\x16statename_loginattempt\x18\x03 \x01(\t\x12\x1d\n\x15\x63ityname_loginattempt\x18\x04 \x01(\t\x12\x18\n\x10ipaddress_actual\x18\x05 \x01(\r\x12\x1a\n\x12\x63ountryname_actual\x18\x06 \x01(\t\x12\x18\n\x10statename_actual\x18\x07 \x01(\t\x12\x17\n\x0f\x63ityname_actual\x18\x08 \x01(\t\x12\x17\n\x0fsteamguard_code\x18\t \x01(\t\"J\n-CCredentials_LastCredentialChangeTime_Request\x12\x19\n\x11user_changes_only\x18\x01 \x01(\x08\"\xa4\x01\n.CCredentials_LastCredentialChangeTime_Response\x12&\n\x1etimestamp_last_password_change\x18\x01 \x01(\x07\x12#\n\x1btimestamp_last_email_change\x18\x02 \x01(\x07\x12%\n\x1dtimestamp_last_password_reset\x18\x03 \x01(\x07\"+\n)CCredentials_GetAccountAuthSecret_Request\"O\n*CCredentials_GetAccountAuthSecret_Response\x12\x11\n\tsecret_id\x18\x01 \x01(\x05\x12\x0e\n\x06secret\x18\x02 \x01(\x0c\x32\xed\x08\n\x0b\x43redentials\x12\x8e\x01\n\x15TestAvailablePassword\x12+.CCredentials_TestAvailablePassword_Request\x1a,.CCredentials_TestAvailablePassword_Response\"\x1a\x82\xb5\x18\x16TestAvailablePassword.\x12\x8a\x01\n\x14GetSteamGuardDetails\x12*.CCredentials_GetSteamGuardDetails_Request\x1a+.CCredentials_GetSteamGuardDetails_Response\"\x19\x82\xb5\x18\x15GetSteamGuardDetails.\x12\xb6\x01\n\"NewMachineNotificationDialogResult\x12\x32.CCredentials_NewMachineNotificationDialog_Request\x1a\x33.CCredentials_NewMachineNotificationDialog_Response\"\'\x82\xb5\x18#NewMachineNotificationDialogResult.\x12\x9c\x01\n\x14ValidateEmailAddress\x12*.CCredentials_ValidateEmailAddress_Request\x1a+.CCredentials_ValidateEmailAddress_Response\"+\x82\xb5\x18\'Validate an email address given a token\x12\x99\x01\n\x18SteamGuardPhishingReport\x12..CCredentials_SteamGuardPhishingReport_Request\x1a/.CCredentials_SteamGuardPhishingReport_Response\"\x1c\x82\xb5\x18\x18SteamGuardPhishingReport\x12\xa6\x01\n\x1eGetCredentialChangeTimeDetails\x12..CCredentials_LastCredentialChangeTime_Request\x1a/.CCredentials_LastCredentialChangeTime_Response\"#\x82\xb5\x18\x1fGetCredentialChangeTimeDetails.\x12\x89\x01\n\x14GetAccountAuthSecret\x12*.CCredentials_GetAccountAuthSecret_Request\x1a+.CCredentials_GetAccountAuthSecret_Response\"\x18\x82\xb5\x18\x14GetAccountAuthSecret\x1a\x17\x82\xb5\x18\x13\x43redentials serviceB\x03\x90\x01\x01')
+  serialized_pb=_b('\n\x1fsteammessages_credentials.proto\x1a steammessages_unified_base.proto\"q\n*CCredentials_TestAvailablePassword_Request\x12\x10\n\x08password\x18\x01 \x01(\t\x12\x1b\n\x13sha_digest_password\x18\x02 \x01(\x0c\x12\x14\n\x0c\x61\x63\x63ount_name\x18\x03 \x01(\t\"?\n+CCredentials_TestAvailablePassword_Response\x12\x10\n\x08is_valid\x18\x03 \x01(\x08\"\xef\x02\n)CCredentials_GetSteamGuardDetails_Request\x12u\n\x1binclude_new_authentications\x18\x01 \x01(\x08:\x04trueBJ\x82\xb5\x18\x46Whether or not to populate the newauthentication field in the response\x12\x95\x01\n\twebcookie\x18\x02 \x01(\tB\x81\x01\x82\xb5\x18}The user\'s Steam Guard machine auth cookie. If present, it\'ll be used to get the user\'s machine ID instead of the AM session.\x12 \n\x18timestamp_minimum_wanted\x18\x03 \x01(\x07\x12\x11\n\tipaddress\x18\x04 \x01(\x05\"\x84\t\n*CCredentials_GetSteamGuardDetails_Response\x12\x1d\n\x15is_steamguard_enabled\x18\x01 \x01(\x08\x12$\n\x1ctimestamp_steamguard_enabled\x18\x02 \x01(\x07\x12\x63\n\x1c\x64\x65precated_newauthentication\x18\x03 \x03(\x0b\x32=.CCredentials_GetSteamGuardDetails_Response.NewAuthentication\x12*\n\"deprecated_machine_name_userchosen\x18\x04 \x01(\t\x12\x37\n/deprecated_timestamp_machine_steamguard_enabled\x18\x05 \x01(\x07\x12\x43\n;deprecated_authentication_exists_from_geoloc_before_mintime\x18\x06 \x01(\x08\x12\x1d\n\x15\x64\x65precated_machine_id\x18\x07 \x01(\x04\x12M\n\x0csession_data\x18\x08 \x03(\x0b\x32\x37.CCredentials_GetSteamGuardDetails_Response.SessionData\x12\x1c\n\x14is_twofactor_enabled\x18\t \x01(\x08\x12#\n\x1btimestamp_twofactor_enabled\x18\n \x01(\x07\x12\x19\n\x11is_phone_verified\x18\x0b \x01(\x08\x1a\xc3\x01\n\x11NewAuthentication\x12$\n\x1ctimestamp_steamguard_enabled\x18\x01 \x01(\x07\x12\x15\n\ris_web_cookie\x18\x02 \x01(\x08\x12\x11\n\tipaddress\x18\x03 \x01(\x05\x12\x13\n\x0bgeoloc_info\x18\x04 \x01(\t\x12\x15\n\ris_remembered\x18\x05 \x01(\x08\x12\"\n\x1amachine_name_user_supplied\x18\x06 \x01(\t\x12\x0e\n\x06status\x18\x07 \x01(\x05\x1a\xef\x02\n\x0bSessionData\x12\x12\n\nmachine_id\x18\x01 \x01(\x04\x12\x1f\n\x17machine_name_userchosen\x18\x02 \x01(\t\x12,\n$timestamp_machine_steamguard_enabled\x18\x03 \x01(\x07\x12\x38\n0authentication_exists_from_geoloc_before_mintime\x18\x04 \x01(\x08\x12X\n\x11newauthentication\x18\x05 \x03(\x0b\x32=.CCredentials_GetSteamGuardDetails_Response.NewAuthentication\x12\x39\n1authentication_exists_from_same_ip_before_mintime\x18\x06 \x01(\x08\x12\x13\n\x0bpublic_ipv4\x18\x07 \x01(\r\x12\x19\n\x11public_ip_address\x18\x08 \x01(\t\"d\n1CCredentials_NewMachineNotificationDialog_Request\x12\x13\n\x0bis_approved\x18\x01 \x01(\x08\x12\x1a\n\x12is_wizard_complete\x18\x02 \x01(\x08\"4\n2CCredentials_NewMachineNotificationDialog_Response\";\n)CCredentials_ValidateEmailAddress_Request\x12\x0e\n\x06stoken\x18\x01 \x01(\t\"C\n*CCredentials_ValidateEmailAddress_Response\x12\x15\n\rwas_validated\x18\x01 \x01(\x08\"_\n-CCredentials_SteamGuardPhishingReport_Request\x12\x14\n\x0cparam_string\x18\x01 \x01(\t\x12\x18\n\x10ipaddress_actual\x18\x02 \x01(\t\"\xb3\x02\n.CCredentials_SteamGuardPhishingReport_Response\x12\x1e\n\x16ipaddress_loginattempt\x18\x01 \x01(\t\x12 \n\x18\x63ountryname_loginattempt\x18\x02 \x01(\t\x12\x1e\n\x16statename_loginattempt\x18\x03 \x01(\t\x12\x1d\n\x15\x63ityname_loginattempt\x18\x04 \x01(\t\x12\x18\n\x10ipaddress_actual\x18\x05 \x01(\t\x12\x1a\n\x12\x63ountryname_actual\x18\x06 \x01(\t\x12\x18\n\x10statename_actual\x18\x07 \x01(\t\x12\x17\n\x0f\x63ityname_actual\x18\x08 \x01(\t\x12\x17\n\x0fsteamguard_code\x18\t \x01(\t\"J\n-CCredentials_LastCredentialChangeTime_Request\x12\x19\n\x11user_changes_only\x18\x01 \x01(\x08\"\xa4\x01\n.CCredentials_LastCredentialChangeTime_Response\x12&\n\x1etimestamp_last_password_change\x18\x01 \x01(\x07\x12#\n\x1btimestamp_last_email_change\x18\x02 \x01(\x07\x12%\n\x1dtimestamp_last_password_reset\x18\x03 \x01(\x07\"+\n)CCredentials_GetAccountAuthSecret_Request\"O\n*CCredentials_GetAccountAuthSecret_Response\x12\x11\n\tsecret_id\x18\x01 \x01(\x05\x12\x0e\n\x06secret\x18\x02 \x01(\x0c\x32\xed\x08\n\x0b\x43redentials\x12\x8e\x01\n\x15TestAvailablePassword\x12+.CCredentials_TestAvailablePassword_Request\x1a,.CCredentials_TestAvailablePassword_Response\"\x1a\x82\xb5\x18\x16TestAvailablePassword.\x12\x8a\x01\n\x14GetSteamGuardDetails\x12*.CCredentials_GetSteamGuardDetails_Request\x1a+.CCredentials_GetSteamGuardDetails_Response\"\x19\x82\xb5\x18\x15GetSteamGuardDetails.\x12\xb6\x01\n\"NewMachineNotificationDialogResult\x12\x32.CCredentials_NewMachineNotificationDialog_Request\x1a\x33.CCredentials_NewMachineNotificationDialog_Response\"\'\x82\xb5\x18#NewMachineNotificationDialogResult.\x12\x9c\x01\n\x14ValidateEmailAddress\x12*.CCredentials_ValidateEmailAddress_Request\x1a+.CCredentials_ValidateEmailAddress_Response\"+\x82\xb5\x18\'Validate an email address given a token\x12\x99\x01\n\x18SteamGuardPhishingReport\x12..CCredentials_SteamGuardPhishingReport_Request\x1a/.CCredentials_SteamGuardPhishingReport_Response\"\x1c\x82\xb5\x18\x18SteamGuardPhishingReport\x12\xa6\x01\n\x1eGetCredentialChangeTimeDetails\x12..CCredentials_LastCredentialChangeTime_Request\x1a/.CCredentials_LastCredentialChangeTime_Response\"#\x82\xb5\x18\x1fGetCredentialChangeTimeDetails.\x12\x89\x01\n\x14GetAccountAuthSecret\x12*.CCredentials_GetAccountAuthSecret_Request\x1a+.CCredentials_GetAccountAuthSecret_Response\"\x18\x82\xb5\x18\x14GetAccountAuthSecret\x1a\x17\x82\xb5\x18\x13\x43redentials serviceB\x03\x90\x01\x01')
   ,
   dependencies=[steammessages__unified__base__pb2.DESCRIPTOR,])
 
@@ -550,8 +550,8 @@ _CCREDENTIALS_STEAMGUARDPHISHINGREPORT_REQUEST = _descriptor.Descriptor(
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
       name='ipaddress_actual', full_name='CCredentials_SteamGuardPhishingReport_Request.ipaddress_actual', index=1,
-      number=2, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
+      number=2, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
@@ -581,8 +581,8 @@ _CCREDENTIALS_STEAMGUARDPHISHINGREPORT_RESPONSE = _descriptor.Descriptor(
   fields=[
     _descriptor.FieldDescriptor(
       name='ipaddress_loginattempt', full_name='CCredentials_SteamGuardPhishingReport_Response.ipaddress_loginattempt', index=0,
-      number=1, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
@@ -609,8 +609,8 @@ _CCREDENTIALS_STEAMGUARDPHISHINGREPORT_RESPONSE = _descriptor.Descriptor(
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
       name='ipaddress_actual', full_name='CCredentials_SteamGuardPhishingReport_Response.ipaddress_actual', index=4,
-      number=5, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
+      number=5, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
diff --git a/steam/protobufs/steammessages_depotbuilder_pb2.py b/steam/protobufs/steammessages_depotbuilder_pb2.py
index 09e5798..547cacd 100644
--- a/steam/protobufs/steammessages_depotbuilder_pb2.py
+++ b/steam/protobufs/steammessages_depotbuilder_pb2.py
@@ -23,7 +23,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
   package='',
   syntax='proto2',
   serialized_options=_b('\220\001\001'),
-  serialized_pb=_b('\n steammessages_depotbuilder.proto\x1a steammessages_unified_base.proto\"w\n&CContentBuilder_InitDepotBuild_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x0f\n\x07\x64\x65potid\x18\x02 \x01(\r\x12\x17\n\x0fworkshop_itemid\x18\x03 \x01(\x04\x12\x14\n\x0c\x66or_local_cs\x18\x04 \x01(\x08\"\xb1\x02\n\'CContentBuilder_InitDepotBuild_Response\x12\x1b\n\x13\x62\x61seline_manifestid\x18\x01 \x01(\x04\x12\x12\n\nchunk_size\x18\x02 \x01(\r\x12\x0f\n\x07\x61\x65s_key\x18\x03 \x01(\x0c\x12\x0f\n\x07rsa_key\x18\x04 \x01(\x0c\x12\x10\n\x08url_host\x18\x05 \x01(\t\x12 \n\x18offset_detection_enabled\x18\x06 \x01(\x08\x12(\n offset_detection_min_clean_chunk\x18\x07 \x01(\r\x12)\n!offset_detection_blast_radius_pre\x18\x08 \x01(\r\x12*\n\"offset_detection_blast_radius_post\x18\t \x01(\r\"\xad\x01\n(CContentBuilder_StartDepotUpload_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x0f\n\x07\x64\x65potid\x18\x02 \x01(\r\x12\x17\n\x0fworkshop_itemid\x18\x03 \x01(\x04\x12\x14\n\x0c\x66or_local_cs\x18\x04 \x01(\x08\x12\x1b\n\x13\x62\x61seline_manifestid\x18\x05 \x01(\x04\x12\x15\n\rmanifest_size\x18\x06 \x01(\r\"G\n)CContentBuilder_StartDepotUpload_Response\x12\x1a\n\x12\x64\x65pot_build_handle\x18\x01 \x01(\x04\"Z\n-CContentBuilder_GetMissingDepotChunks_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x1a\n\x12\x64\x65pot_build_handle\x18\x02 \x01(\x04\"\xd2\x01\n.CContentBuilder_GetMissingDepotChunks_Response\x12N\n\x0emissing_chunks\x18\x01 \x03(\x0b\x32\x36.CContentBuilder_GetMissingDepotChunks_Response.Chunks\x12\x1c\n\x14total_missing_chunks\x18\x02 \x01(\r\x12\x1b\n\x13total_missing_bytes\x18\x03 \x01(\x04\x1a\x15\n\x06\x43hunks\x12\x0b\n\x03sha\x18\x01 \x01(\x0c\"V\n)CContentBuilder_FinishDepotUpload_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x1a\n\x12\x64\x65pot_build_handle\x18\x02 \x01(\x04\"U\n*CContentBuilder_FinishDepotUpload_Response\x12\x12\n\nmanifestid\x18\x01 \x01(\x04\x12\x13\n\x0bprev_reused\x18\x02 \x01(\x08\"\xd9\x01\n&CContentBuilder_CommitAppBuild_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12G\n\x0f\x64\x65pot_manifests\x18\x02 \x03(\x0b\x32..CContentBuilder_CommitAppBuild_Request.Depots\x12\x13\n\x0b\x62uild_notes\x18\x04 \x01(\t\x12\x13\n\x0blive_branch\x18\x05 \x01(\t\x1a-\n\x06\x44\x65pots\x12\x0f\n\x07\x64\x65potid\x18\x01 \x01(\r\x12\x12\n\nmanifestid\x18\x02 \x01(\x04\":\n\'CContentBuilder_CommitAppBuild_Response\x12\x0f\n\x07\x62uildid\x18\x01 \x01(\r\"c\n)CContentBuilder_SignInstallScript_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x0f\n\x07\x64\x65potid\x18\x02 \x01(\r\x12\x16\n\x0einstall_script\x18\x03 \x01(\t\"K\n*CContentBuilder_SignInstallScript_Response\x12\x1d\n\x15signed_install_script\x18\x01 \x01(\t2\x92\x08\n\x0e\x43ontentBuilder\x12\x98\x01\n\x0eInitDepotBuild\x12\'.CContentBuilder_InitDepotBuild_Request\x1a(.CContentBuilder_InitDepotBuild_Response\"3\x82\xb5\x18/Get inital parameters to start building a depot\x12\x9e\x01\n\x10StartDepotUpload\x12).CContentBuilder_StartDepotUpload_Request\x1a*.CContentBuilder_StartDepotUpload_Response\"3\x82\xb5\x18/Start uploading manifest and chunks for a depot\x12\xa9\x01\n\x15GetMissingDepotChunks\x12..CContentBuilder_GetMissingDepotChunks_Request\x1a/.CContentBuilder_GetMissingDepotChunks_Response\"/\x82\xb5\x18+Get list of missing chunks for depot upload\x12\xb1\x01\n\x11\x46inishDepotUpload\x12*.CContentBuilder_FinishDepotUpload_Request\x1a+.CContentBuilder_FinishDepotUpload_Response\"C\x82\xb5\x18?Commit a depot build after manifest and all chunks are uploaded\x12\xa7\x01\n\x0e\x43ommitAppBuild\x12\'.CContentBuilder_CommitAppBuild_Request\x1a(.CContentBuilder_CommitAppBuild_Response\"B\x82\xb5\x18>Combine previous depot uploads into an app build and commit it\x12\x88\x01\n\x11SignInstallScript\x12*.CContentBuilder_SignInstallScript_Request\x1a+.CContentBuilder_SignInstallScript_Response\"\x1a\x82\xb5\x18\x16Sign an install script\x1a/\x82\xb5\x18+Interface to build and upload depot contentB\x03\x90\x01\x01')
+  serialized_pb=_b('\n steammessages_depotbuilder.proto\x1a steammessages_unified_base.proto\"\x8e\x01\n&CContentBuilder_InitDepotBuild_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x0f\n\x07\x64\x65potid\x18\x02 \x01(\r\x12\x17\n\x0fworkshop_itemid\x18\x03 \x01(\x04\x12\x14\n\x0c\x66or_local_cs\x18\x04 \x01(\x08\x12\x15\n\rtarget_branch\x18\x05 \x01(\t\"\x88\x03\n\'CContentBuilder_InitDepotBuild_Response\x12\x1b\n\x13\x62\x61seline_manifestid\x18\x01 \x01(\x04\x12\x12\n\nchunk_size\x18\x02 \x01(\r\x12\x0f\n\x07\x61\x65s_key\x18\x03 \x01(\x0c\x12\x0f\n\x07rsa_key\x18\x04 \x01(\x0c\x12\x10\n\x08url_host\x18\x05 \x01(\t\x12 \n\x18offset_detection_enabled\x18\x06 \x01(\x08\x12(\n offset_detection_min_clean_chunk\x18\x07 \x01(\r\x12)\n!offset_detection_blast_radius_pre\x18\x08 \x01(\r\x12*\n\"offset_detection_blast_radius_post\x18\t \x01(\r\x12)\n!offset_detection_max_distance_pre\x18\n \x01(\r\x12*\n\"offset_detection_max_distance_post\x18\x0b \x01(\r\"\xad\x01\n(CContentBuilder_StartDepotUpload_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x0f\n\x07\x64\x65potid\x18\x02 \x01(\r\x12\x17\n\x0fworkshop_itemid\x18\x03 \x01(\x04\x12\x14\n\x0c\x66or_local_cs\x18\x04 \x01(\x08\x12\x1b\n\x13\x62\x61seline_manifestid\x18\x05 \x01(\x04\x12\x15\n\rmanifest_size\x18\x06 \x01(\r\"G\n)CContentBuilder_StartDepotUpload_Response\x12\x1a\n\x12\x64\x65pot_build_handle\x18\x01 \x01(\x04\"Z\n-CContentBuilder_GetMissingDepotChunks_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x1a\n\x12\x64\x65pot_build_handle\x18\x02 \x01(\x04\"\xd2\x01\n.CContentBuilder_GetMissingDepotChunks_Response\x12N\n\x0emissing_chunks\x18\x01 \x03(\x0b\x32\x36.CContentBuilder_GetMissingDepotChunks_Response.Chunks\x12\x1c\n\x14total_missing_chunks\x18\x02 \x01(\r\x12\x1b\n\x13total_missing_bytes\x18\x03 \x01(\x04\x1a\x15\n\x06\x43hunks\x12\x0b\n\x03sha\x18\x01 \x01(\x0c\"V\n)CContentBuilder_FinishDepotUpload_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x1a\n\x12\x64\x65pot_build_handle\x18\x02 \x01(\x04\"U\n*CContentBuilder_FinishDepotUpload_Response\x12\x12\n\nmanifestid\x18\x01 \x01(\x04\x12\x13\n\x0bprev_reused\x18\x02 \x01(\x08\"\xd9\x01\n&CContentBuilder_CommitAppBuild_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12G\n\x0f\x64\x65pot_manifests\x18\x02 \x03(\x0b\x32..CContentBuilder_CommitAppBuild_Request.Depots\x12\x13\n\x0b\x62uild_notes\x18\x04 \x01(\t\x12\x13\n\x0blive_branch\x18\x05 \x01(\t\x1a-\n\x06\x44\x65pots\x12\x0f\n\x07\x64\x65potid\x18\x01 \x01(\r\x12\x12\n\nmanifestid\x18\x02 \x01(\x04\":\n\'CContentBuilder_CommitAppBuild_Response\x12\x0f\n\x07\x62uildid\x18\x01 \x01(\r\"c\n)CContentBuilder_SignInstallScript_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x0f\n\x07\x64\x65potid\x18\x02 \x01(\r\x12\x16\n\x0einstall_script\x18\x03 \x01(\t\"K\n*CContentBuilder_SignInstallScript_Response\x12\x1d\n\x15signed_install_script\x18\x01 \x01(\t2\x92\x08\n\x0e\x43ontentBuilder\x12\x98\x01\n\x0eInitDepotBuild\x12\'.CContentBuilder_InitDepotBuild_Request\x1a(.CContentBuilder_InitDepotBuild_Response\"3\x82\xb5\x18/Get inital parameters to start building a depot\x12\x9e\x01\n\x10StartDepotUpload\x12).CContentBuilder_StartDepotUpload_Request\x1a*.CContentBuilder_StartDepotUpload_Response\"3\x82\xb5\x18/Start uploading manifest and chunks for a depot\x12\xa9\x01\n\x15GetMissingDepotChunks\x12..CContentBuilder_GetMissingDepotChunks_Request\x1a/.CContentBuilder_GetMissingDepotChunks_Response\"/\x82\xb5\x18+Get list of missing chunks for depot upload\x12\xb1\x01\n\x11\x46inishDepotUpload\x12*.CContentBuilder_FinishDepotUpload_Request\x1a+.CContentBuilder_FinishDepotUpload_Response\"C\x82\xb5\x18?Commit a depot build after manifest and all chunks are uploaded\x12\xa7\x01\n\x0e\x43ommitAppBuild\x12\'.CContentBuilder_CommitAppBuild_Request\x1a(.CContentBuilder_CommitAppBuild_Response\"B\x82\xb5\x18>Combine previous depot uploads into an app build and commit it\x12\x88\x01\n\x11SignInstallScript\x12*.CContentBuilder_SignInstallScript_Request\x1a+.CContentBuilder_SignInstallScript_Response\"\x1a\x82\xb5\x18\x16Sign an install script\x1a/\x82\xb5\x18+Interface to build and upload depot contentB\x03\x90\x01\x01')
   ,
   dependencies=[steammessages__unified__base__pb2.DESCRIPTOR,])
 
@@ -65,6 +65,13 @@ _CCONTENTBUILDER_INITDEPOTBUILD_REQUEST = _descriptor.Descriptor(
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='target_branch', full_name='CContentBuilder_InitDepotBuild_Request.target_branch', index=4,
+      number=5, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -77,8 +84,8 @@ _CCONTENTBUILDER_INITDEPOTBUILD_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=70,
-  serialized_end=189,
+  serialized_start=71,
+  serialized_end=213,
 )
 
 
@@ -152,6 +159,20 @@ _CCONTENTBUILDER_INITDEPOTBUILD_RESPONSE = _descriptor.Descriptor(
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='offset_detection_max_distance_pre', full_name='CContentBuilder_InitDepotBuild_Response.offset_detection_max_distance_pre', index=9,
+      number=10, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='offset_detection_max_distance_post', full_name='CContentBuilder_InitDepotBuild_Response.offset_detection_max_distance_post', index=10,
+      number=11, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -164,8 +185,8 @@ _CCONTENTBUILDER_INITDEPOTBUILD_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=192,
-  serialized_end=497,
+  serialized_start=216,
+  serialized_end=608,
 )
 
 
@@ -230,8 +251,8 @@ _CCONTENTBUILDER_STARTDEPOTUPLOAD_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=500,
-  serialized_end=673,
+  serialized_start=611,
+  serialized_end=784,
 )
 
 
@@ -261,8 +282,8 @@ _CCONTENTBUILDER_STARTDEPOTUPLOAD_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=675,
-  serialized_end=746,
+  serialized_start=786,
+  serialized_end=857,
 )
 
 
@@ -299,8 +320,8 @@ _CCONTENTBUILDER_GETMISSINGDEPOTCHUNKS_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=748,
-  serialized_end=838,
+  serialized_start=859,
+  serialized_end=949,
 )
 
 
@@ -330,8 +351,8 @@ _CCONTENTBUILDER_GETMISSINGDEPOTCHUNKS_RESPONSE_CHUNKS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1030,
-  serialized_end=1051,
+  serialized_start=1141,
+  serialized_end=1162,
 )
 
 _CCONTENTBUILDER_GETMISSINGDEPOTCHUNKS_RESPONSE = _descriptor.Descriptor(
@@ -374,8 +395,8 @@ _CCONTENTBUILDER_GETMISSINGDEPOTCHUNKS_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=841,
-  serialized_end=1051,
+  serialized_start=952,
+  serialized_end=1162,
 )
 
 
@@ -412,8 +433,8 @@ _CCONTENTBUILDER_FINISHDEPOTUPLOAD_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1053,
-  serialized_end=1139,
+  serialized_start=1164,
+  serialized_end=1250,
 )
 
 
@@ -450,8 +471,8 @@ _CCONTENTBUILDER_FINISHDEPOTUPLOAD_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1141,
-  serialized_end=1226,
+  serialized_start=1252,
+  serialized_end=1337,
 )
 
 
@@ -488,8 +509,8 @@ _CCONTENTBUILDER_COMMITAPPBUILD_REQUEST_DEPOTS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1401,
-  serialized_end=1446,
+  serialized_start=1512,
+  serialized_end=1557,
 )
 
 _CCONTENTBUILDER_COMMITAPPBUILD_REQUEST = _descriptor.Descriptor(
@@ -539,8 +560,8 @@ _CCONTENTBUILDER_COMMITAPPBUILD_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1229,
-  serialized_end=1446,
+  serialized_start=1340,
+  serialized_end=1557,
 )
 
 
@@ -570,8 +591,8 @@ _CCONTENTBUILDER_COMMITAPPBUILD_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1448,
-  serialized_end=1506,
+  serialized_start=1559,
+  serialized_end=1617,
 )
 
 
@@ -615,8 +636,8 @@ _CCONTENTBUILDER_SIGNINSTALLSCRIPT_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1508,
-  serialized_end=1607,
+  serialized_start=1619,
+  serialized_end=1718,
 )
 
 
@@ -646,8 +667,8 @@ _CCONTENTBUILDER_SIGNINSTALLSCRIPT_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1609,
-  serialized_end=1684,
+  serialized_start=1720,
+  serialized_end=1795,
 )
 
 _CCONTENTBUILDER_GETMISSINGDEPOTCHUNKS_RESPONSE_CHUNKS.containing_type = _CCONTENTBUILDER_GETMISSINGDEPOTCHUNKS_RESPONSE
@@ -777,8 +798,8 @@ _CONTENTBUILDER = _descriptor.ServiceDescriptor(
   file=DESCRIPTOR,
   index=0,
   serialized_options=_b('\202\265\030+Interface to build and upload depot content'),
-  serialized_start=1687,
-  serialized_end=2729,
+  serialized_start=1798,
+  serialized_end=2840,
   methods=[
   _descriptor.MethodDescriptor(
     name='InitDepotBuild',
diff --git a/steam/protobufs/steammessages_friendmessages_pb2.py b/steam/protobufs/steammessages_friendmessages_pb2.py
index 8c9ba66..df00cb7 100755
--- a/steam/protobufs/steammessages_friendmessages_pb2.py
+++ b/steam/protobufs/steammessages_friendmessages_pb2.py
@@ -4,6 +4,7 @@
 
 import sys
 _b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
+from google.protobuf.internal import enum_type_wrapper
 from google.protobuf import descriptor as _descriptor
 from google.protobuf import message as _message
 from google.protobuf import reflection as _reflection
@@ -23,10 +24,35 @@ DESCRIPTOR = _descriptor.FileDescriptor(
   package='',
   syntax='proto2',
   serialized_options=_b('\220\001\001'),
-  serialized_pb=_b('\n\"steammessages_friendmessages.proto\x1a steammessages_unified_base.proto\"\xf1\x05\n)CFriendMessages_GetRecentMessages_Request\x12\x10\n\x08steamid1\x18\x01 \x01(\x06\x12\x10\n\x08steamid2\x18\x02 \x01(\x06\x12L\n\x05\x63ount\x18\x03 \x01(\rB=\x82\xb5\x18\x39If non-zero, cap the number of recent messages to return.\x12s\n\x18most_recent_conversation\x18\x04 \x01(\x08\x42Q\x82\xb5\x18MGrab the block of chat from the most recent conversation (a ~5 minute period)\x12\xa9\x01\n\x12rtime32_start_time\x18\x05 \x01(\x07\x42\x8c\x01\x82\xb5\x18\x87\x01If non-zero, return only messages with timestamps greater or equal to this. If zero, we only return messages from a recent time cutoff.\x12\x45\n\rbbcode_format\x18\x06 \x01(\x08\x42.\x82\xb5\x18*Return the results with bbcode formatting.\x12\x84\x01\n\rstart_ordinal\x18\x07 \x01(\rBm\x82\xb5\x18iCombined with start time, only messages after this ordinal are returned (dedupes messages in same second)\x12M\n\ttime_last\x18\x08 \x01(\rB:\x82\xb5\x18\x36if present/non-zero, return only messages before this.\x12\x14\n\x0cordinal_last\x18\t \x01(\r\"\x9d\x02\n*CFriendMessages_GetRecentMessages_Response\x12~\n\x08messages\x18\x01 \x03(\x0b\x32\x39.CFriendMessages_GetRecentMessages_Response.FriendMessageB1\x82\xb5\x18-Array of messages, returned newest to oldest.\x12\x16\n\x0emore_available\x18\x04 \x01(\x08\x1aW\n\rFriendMessage\x12\x11\n\taccountid\x18\x01 \x01(\r\x12\x11\n\ttimestamp\x18\x02 \x01(\r\x12\x0f\n\x07message\x18\x03 \x01(\t\x12\x0f\n\x07ordinal\x18\x04 \x01(\r\"\xdf\x02\n1CFriendsMessages_GetActiveMessageSessions_Request\x12\x7f\n\x11lastmessage_since\x18\x01 \x01(\rBd\x82\xb5\x18`return only session information where a chat message has been sent since this time (for polling)\x12\xa8\x01\n\x1bonly_sessions_with_messages\x18\x02 \x01(\x08\x42\x82\x01\x82\xb5\x18~If non-zero, return only message sessions that have messages since our message cutoff. If zero, we return all active sessions.\"\xfc\x02\n2CFriendsMessages_GetActiveMessageSessions_Response\x12\x62\n\x10message_sessions\x18\x01 \x03(\x0b\x32H.CFriendsMessages_GetActiveMessageSessions_Response.FriendMessageSession\x12i\n\ttimestamp\x18\x02 \x01(\rBV\x82\xb5\x18RThis should be passed in the next request as lastmessage_since to poll for updates\x1aw\n\x14\x46riendMessageSession\x12\x18\n\x10\x61\x63\x63ountid_friend\x18\x01 \x01(\r\x12\x14\n\x0clast_message\x18\x02 \x01(\r\x12\x11\n\tlast_view\x18\x03 \x01(\r\x12\x1c\n\x14unread_message_count\x18\x04 \x01(\r\"\xc2\x01\n#CFriendMessages_SendMessage_Request\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x17\n\x0f\x63hat_entry_type\x18\x02 \x01(\x05\x12\x0f\n\x07message\x18\x03 \x01(\t\x12\x17\n\x0f\x63ontains_bbcode\x18\x04 \x01(\x08\x12\x16\n\x0e\x65\x63ho_to_sender\x18\x05 \x01(\x08\x12\x14\n\x0clow_priority\x18\x06 \x01(\x08\x12\x19\n\x11\x63lient_message_id\x18\x08 \x01(\t\"\x8c\x01\n$CFriendMessages_SendMessage_Response\x12\x18\n\x10modified_message\x18\x01 \x01(\t\x12\x18\n\x10server_timestamp\x18\x02 \x01(\r\x12\x0f\n\x07ordinal\x18\x03 \x01(\r\x12\x1f\n\x17message_without_bb_code\x18\x04 \x01(\t\"U\n\'CFriendMessages_AckMessage_Notification\x12\x17\n\x0fsteamid_partner\x18\x01 \x01(\x06\x12\x11\n\ttimestamp\x18\x02 \x01(\r\"<\n)CFriendMessages_IsInFriendsUIBeta_Request\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\"e\n*CFriendMessages_IsInFriendsUIBeta_Response\x12\x1b\n\x13online_in_friendsui\x18\x01 \x01(\x08\x12\x1a\n\x12has_used_friendsui\x18\x02 \x01(\x08\"\x86\x02\n,CFriendMessages_IncomingMessage_Notification\x12\x16\n\x0esteamid_friend\x18\x01 \x01(\x06\x12\x17\n\x0f\x63hat_entry_type\x18\x02 \x01(\x05\x12\x1c\n\x14\x66rom_limited_account\x18\x03 \x01(\x08\x12\x0f\n\x07message\x18\x04 \x01(\t\x12 \n\x18rtime32_server_timestamp\x18\x05 \x01(\x07\x12\x0f\n\x07ordinal\x18\x06 \x01(\r\x12\x12\n\nlocal_echo\x18\x07 \x01(\x08\x12\x19\n\x11message_no_bbcode\x18\x08 \x01(\t\x12\x14\n\x0clow_priority\x18\t \x01(\x08\x32\x8c\x07\n\x0e\x46riendMessages\x12\xa5\x01\n\x11GetRecentMessages\x12*.CFriendMessages_GetRecentMessages_Request\x1a+.CFriendMessages_GetRecentMessages_Response\"7\x82\xb5\x18\x33Get a log of recent chat messages between two users\x12\xc0\x01\n\x18GetActiveMessageSessions\x12\x32.CFriendsMessages_GetActiveMessageSessions_Request\x1a\x33.CFriendsMessages_GetActiveMessageSessions_Response\";\x82\xb5\x18\x37Get information about recent offline messages and chats\x12\x7f\n\x0bSendMessage\x12$.CFriendMessages_SendMessage_Request\x1a%.CFriendMessages_SendMessage_Response\"#\x82\xb5\x18\x1fSend a chat message to a friend\x12\x8c\x01\n\nAckMessage\x12(.CFriendMessages_AckMessage_Notification\x1a\x0b.NoResponse\"G\x82\xb5\x18\x43\x41\x63knowledge that we have seen the most recent message from a friend\x12\x9b\x01\n\x11IsInFriendsUIBeta\x12*.CFriendMessages_IsInFriendsUIBeta_Request\x1a+.CFriendMessages_IsInFriendsUIBeta_Response\"-\x82\xb5\x18)See if a friend is in the friendsui beta.\x1a\x61\x82\xb5\x18]A service for relaying and logging friend messages (user-to-user chats and offline messaging)2\xa0\x02\n\x14\x46riendMessagesClient\x12r\n\x0fIncomingMessage\x12-.CFriendMessages_IncomingMessage_Notification\x1a\x0b.NoResponse\"#\x82\xb5\x18\x1fNew chat message from a friend.\x12\x8d\x01\n\x14NotifyAckMessageEcho\x12(.CFriendMessages_AckMessage_Notification\x1a\x0b.NoResponse\">\x82\xb5\x18:A session acked an unread message, echo to other sessions.\x1a\x04\xc0\xb5\x18\x02\x42\x03\x90\x01\x01')
+  serialized_pb=_b('\n\"steammessages_friendmessages.proto\x1a steammessages_unified_base.proto\"\xf1\x05\n)CFriendMessages_GetRecentMessages_Request\x12\x10\n\x08steamid1\x18\x01 \x01(\x06\x12\x10\n\x08steamid2\x18\x02 \x01(\x06\x12L\n\x05\x63ount\x18\x03 \x01(\rB=\x82\xb5\x18\x39If non-zero, cap the number of recent messages to return.\x12s\n\x18most_recent_conversation\x18\x04 \x01(\x08\x42Q\x82\xb5\x18MGrab the block of chat from the most recent conversation (a ~5 minute period)\x12\xa9\x01\n\x12rtime32_start_time\x18\x05 \x01(\x07\x42\x8c\x01\x82\xb5\x18\x87\x01If non-zero, return only messages with timestamps greater or equal to this. If zero, we only return messages from a recent time cutoff.\x12\x45\n\rbbcode_format\x18\x06 \x01(\x08\x42.\x82\xb5\x18*Return the results with bbcode formatting.\x12\x84\x01\n\rstart_ordinal\x18\x07 \x01(\rBm\x82\xb5\x18iCombined with start time, only messages after this ordinal are returned (dedupes messages in same second)\x12M\n\ttime_last\x18\x08 \x01(\rB:\x82\xb5\x18\x36if present/non-zero, return only messages before this.\x12\x14\n\x0cordinal_last\x18\t \x01(\r\"\x82\x04\n*CFriendMessages_GetRecentMessages_Response\x12~\n\x08messages\x18\x01 \x03(\x0b\x32\x39.CFriendMessages_GetRecentMessages_Response.FriendMessageB1\x82\xb5\x18-Array of messages, returned newest to oldest.\x12\x16\n\x0emore_available\x18\x04 \x01(\x08\x1a\xbb\x02\n\rFriendMessage\x12\x11\n\taccountid\x18\x01 \x01(\r\x12\x11\n\ttimestamp\x18\x02 \x01(\r\x12\x0f\n\x07message\x18\x03 \x01(\t\x12\x0f\n\x07ordinal\x18\x04 \x01(\r\x12\\\n\treactions\x18\x05 \x03(\x0b\x32I.CFriendMessages_GetRecentMessages_Response.FriendMessage.MessageReaction\x1a\x83\x01\n\x0fMessageReaction\x12L\n\rreaction_type\x18\x01 \x01(\x0e\x32\x15.EMessageReactionType:\x1ek_EMessageReactionType_Invalid\x12\x10\n\x08reaction\x18\x02 \x01(\t\x12\x10\n\x08reactors\x18\x03 \x03(\r\"\xdf\x02\n1CFriendsMessages_GetActiveMessageSessions_Request\x12\x7f\n\x11lastmessage_since\x18\x01 \x01(\rBd\x82\xb5\x18`return only session information where a chat message has been sent since this time (for polling)\x12\xa8\x01\n\x1bonly_sessions_with_messages\x18\x02 \x01(\x08\x42\x82\x01\x82\xb5\x18~If non-zero, return only message sessions that have messages since our message cutoff. If zero, we return all active sessions.\"\xfc\x02\n2CFriendsMessages_GetActiveMessageSessions_Response\x12\x62\n\x10message_sessions\x18\x01 \x03(\x0b\x32H.CFriendsMessages_GetActiveMessageSessions_Response.FriendMessageSession\x12i\n\ttimestamp\x18\x02 \x01(\rBV\x82\xb5\x18RThis should be passed in the next request as lastmessage_since to poll for updates\x1aw\n\x14\x46riendMessageSession\x12\x18\n\x10\x61\x63\x63ountid_friend\x18\x01 \x01(\r\x12\x14\n\x0clast_message\x18\x02 \x01(\r\x12\x11\n\tlast_view\x18\x03 \x01(\r\x12\x1c\n\x14unread_message_count\x18\x04 \x01(\r\"\xc2\x01\n#CFriendMessages_SendMessage_Request\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x17\n\x0f\x63hat_entry_type\x18\x02 \x01(\x05\x12\x0f\n\x07message\x18\x03 \x01(\t\x12\x17\n\x0f\x63ontains_bbcode\x18\x04 \x01(\x08\x12\x16\n\x0e\x65\x63ho_to_sender\x18\x05 \x01(\x08\x12\x14\n\x0clow_priority\x18\x06 \x01(\x08\x12\x19\n\x11\x63lient_message_id\x18\x08 \x01(\t\"\x8c\x01\n$CFriendMessages_SendMessage_Response\x12\x18\n\x10modified_message\x18\x01 \x01(\t\x12\x18\n\x10server_timestamp\x18\x02 \x01(\r\x12\x0f\n\x07ordinal\x18\x03 \x01(\r\x12\x1f\n\x17message_without_bb_code\x18\x04 \x01(\t\"U\n\'CFriendMessages_AckMessage_Notification\x12\x17\n\x0fsteamid_partner\x18\x01 \x01(\x06\x12\x11\n\ttimestamp\x18\x02 \x01(\r\"<\n)CFriendMessages_IsInFriendsUIBeta_Request\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\"e\n*CFriendMessages_IsInFriendsUIBeta_Response\x12\x1b\n\x13online_in_friendsui\x18\x01 \x01(\x08\x12\x1a\n\x12has_used_friendsui\x18\x02 \x01(\x08\"\xdb\x01\n-CFriendMessages_UpdateMessageReaction_Request\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x18\n\x10server_timestamp\x18\x02 \x01(\r\x12\x0f\n\x07ordinal\x18\x03 \x01(\r\x12L\n\rreaction_type\x18\x04 \x01(\x0e\x32\x15.EMessageReactionType:\x1ek_EMessageReactionType_Invalid\x12\x10\n\x08reaction\x18\x05 \x01(\t\x12\x0e\n\x06is_add\x18\x06 \x01(\x08\"B\n.CFriendMessages_UpdateMessageReaction_Response\x12\x10\n\x08reactors\x18\x01 \x03(\r\"\x86\x02\n,CFriendMessages_IncomingMessage_Notification\x12\x16\n\x0esteamid_friend\x18\x01 \x01(\x06\x12\x17\n\x0f\x63hat_entry_type\x18\x02 \x01(\x05\x12\x1c\n\x14\x66rom_limited_account\x18\x03 \x01(\x08\x12\x0f\n\x07message\x18\x04 \x01(\t\x12 \n\x18rtime32_server_timestamp\x18\x05 \x01(\x07\x12\x0f\n\x07ordinal\x18\x06 \x01(\r\x12\x12\n\nlocal_echo\x18\x07 \x01(\x08\x12\x19\n\x11message_no_bbcode\x18\x08 \x01(\t\x12\x14\n\x0clow_priority\x18\t \x01(\x08\"\xf2\x01\n,CFriendMessages_MessageReaction_Notification\x12\x16\n\x0esteamid_friend\x18\x01 \x01(\x06\x12\x18\n\x10server_timestamp\x18\x02 \x01(\r\x12\x0f\n\x07ordinal\x18\x03 \x01(\r\x12\x0f\n\x07reactor\x18\x04 \x01(\x06\x12L\n\rreaction_type\x18\x05 \x01(\x0e\x32\x15.EMessageReactionType:\x1ek_EMessageReactionType_Invalid\x12\x10\n\x08reaction\x18\x06 \x01(\t\x12\x0e\n\x06is_add\x18\x07 \x01(\x08*_\n\x14\x45MessageReactionType\x12\"\n\x1ek_EMessageReactionType_Invalid\x10\x00\x12#\n\x1fk_EMessageReactionType_Emoticon\x10\x01\x32\xbd\x08\n\x0e\x46riendMessages\x12\xa5\x01\n\x11GetRecentMessages\x12*.CFriendMessages_GetRecentMessages_Request\x1a+.CFriendMessages_GetRecentMessages_Response\"7\x82\xb5\x18\x33Get a log of recent chat messages between two users\x12\xc0\x01\n\x18GetActiveMessageSessions\x12\x32.CFriendsMessages_GetActiveMessageSessions_Request\x1a\x33.CFriendsMessages_GetActiveMessageSessions_Response\";\x82\xb5\x18\x37Get information about recent offline messages and chats\x12\x7f\n\x0bSendMessage\x12$.CFriendMessages_SendMessage_Request\x1a%.CFriendMessages_SendMessage_Response\"#\x82\xb5\x18\x1fSend a chat message to a friend\x12\x8c\x01\n\nAckMessage\x12(.CFriendMessages_AckMessage_Notification\x1a\x0b.NoResponse\"G\x82\xb5\x18\x43\x41\x63knowledge that we have seen the most recent message from a friend\x12\x9b\x01\n\x11IsInFriendsUIBeta\x12*.CFriendMessages_IsInFriendsUIBeta_Request\x1a+.CFriendMessages_IsInFriendsUIBeta_Response\"-\x82\xb5\x18)See if a friend is in the friendsui beta.\x12\xae\x01\n\x15UpdateMessageReaction\x12..CFriendMessages_UpdateMessageReaction_Request\x1a/.CFriendMessages_UpdateMessageReaction_Response\"4\x82\xb5\x18\x30\x41\x64\x64s/removes a reaction to/from a friend message\x1a\x61\x82\xb5\x18]A service for relaying and logging friend messages (user-to-user chats and offline messaging)2\x98\x03\n\x14\x46riendMessagesClient\x12r\n\x0fIncomingMessage\x12-.CFriendMessages_IncomingMessage_Notification\x1a\x0b.NoResponse\"#\x82\xb5\x18\x1fNew chat message from a friend.\x12\x8d\x01\n\x14NotifyAckMessageEcho\x12(.CFriendMessages_AckMessage_Notification\x1a\x0b.NoResponse\">\x82\xb5\x18:A session acked an unread message, echo to other sessions.\x12v\n\x0fMessageReaction\x12-.CFriendMessages_MessageReaction_Notification\x1a\x0b.NoResponse\"\'\x82\xb5\x18#New message reaction from a friend.\x1a\x04\xc0\xb5\x18\x02\x42\x03\x90\x01\x01')
   ,
   dependencies=[steammessages__unified__base__pb2.DESCRIPTOR,])
 
+_EMESSAGEREACTIONTYPE = _descriptor.EnumDescriptor(
+  name='EMessageReactionType',
+  full_name='EMessageReactionType',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='k_EMessageReactionType_Invalid', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EMessageReactionType_Emoticon', index=1, number=1,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=3474,
+  serialized_end=3569,
+)
+_sym_db.RegisterEnumDescriptor(_EMESSAGEREACTIONTYPE)
+
+EMessageReactionType = enum_type_wrapper.EnumTypeWrapper(_EMESSAGEREACTIONTYPE)
+k_EMessageReactionType_Invalid = 0
+k_EMessageReactionType_Emoticon = 1
 
 
 
@@ -117,6 +143,50 @@ _CFRIENDMESSAGES_GETRECENTMESSAGES_REQUEST = _descriptor.Descriptor(
 )
 
 
+_CFRIENDMESSAGES_GETRECENTMESSAGES_RESPONSE_FRIENDMESSAGE_MESSAGEREACTION = _descriptor.Descriptor(
+  name='MessageReaction',
+  full_name='CFriendMessages_GetRecentMessages_Response.FriendMessage.MessageReaction',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='reaction_type', full_name='CFriendMessages_GetRecentMessages_Response.FriendMessage.MessageReaction.reaction_type', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=True, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='reaction', full_name='CFriendMessages_GetRecentMessages_Response.FriendMessage.MessageReaction.reaction', index=1,
+      number=2, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='reactors', full_name='CFriendMessages_GetRecentMessages_Response.FriendMessage.MessageReaction.reactors', index=2,
+      number=3, type=13, cpp_type=3, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=1212,
+  serialized_end=1343,
+)
+
 _CFRIENDMESSAGES_GETRECENTMESSAGES_RESPONSE_FRIENDMESSAGE = _descriptor.Descriptor(
   name='FriendMessage',
   full_name='CFriendMessages_GetRecentMessages_Response.FriendMessage',
@@ -152,10 +222,17 @@ _CFRIENDMESSAGES_GETRECENTMESSAGES_RESPONSE_FRIENDMESSAGE = _descriptor.Descript
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='reactions', full_name='CFriendMessages_GetRecentMessages_Response.FriendMessage.reactions', index=4,
+      number=5, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
-  nested_types=[],
+  nested_types=[_CFRIENDMESSAGES_GETRECENTMESSAGES_RESPONSE_FRIENDMESSAGE_MESSAGEREACTION, ],
   enum_types=[
   ],
   serialized_options=None,
@@ -164,8 +241,8 @@ _CFRIENDMESSAGES_GETRECENTMESSAGES_RESPONSE_FRIENDMESSAGE = _descriptor.Descript
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1027,
-  serialized_end=1114,
+  serialized_start=1028,
+  serialized_end=1343,
 )
 
 _CFRIENDMESSAGES_GETRECENTMESSAGES_RESPONSE = _descriptor.Descriptor(
@@ -202,7 +279,7 @@ _CFRIENDMESSAGES_GETRECENTMESSAGES_RESPONSE = _descriptor.Descriptor(
   oneofs=[
   ],
   serialized_start=829,
-  serialized_end=1114,
+  serialized_end=1343,
 )
 
 
@@ -239,8 +316,8 @@ _CFRIENDSMESSAGES_GETACTIVEMESSAGESESSIONS_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1117,
-  serialized_end=1468,
+  serialized_start=1346,
+  serialized_end=1697,
 )
 
 
@@ -291,8 +368,8 @@ _CFRIENDSMESSAGES_GETACTIVEMESSAGESESSIONS_RESPONSE_FRIENDMESSAGESESSION = _desc
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1732,
-  serialized_end=1851,
+  serialized_start=1961,
+  serialized_end=2080,
 )
 
 _CFRIENDSMESSAGES_GETACTIVEMESSAGESESSIONS_RESPONSE = _descriptor.Descriptor(
@@ -328,8 +405,8 @@ _CFRIENDSMESSAGES_GETACTIVEMESSAGESESSIONS_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1471,
-  serialized_end=1851,
+  serialized_start=1700,
+  serialized_end=2080,
 )
 
 
@@ -401,8 +478,8 @@ _CFRIENDMESSAGES_SENDMESSAGE_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1854,
-  serialized_end=2048,
+  serialized_start=2083,
+  serialized_end=2277,
 )
 
 
@@ -453,8 +530,8 @@ _CFRIENDMESSAGES_SENDMESSAGE_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2051,
-  serialized_end=2191,
+  serialized_start=2280,
+  serialized_end=2420,
 )
 
 
@@ -491,8 +568,8 @@ _CFRIENDMESSAGES_ACKMESSAGE_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2193,
-  serialized_end=2278,
+  serialized_start=2422,
+  serialized_end=2507,
 )
 
 
@@ -522,8 +599,8 @@ _CFRIENDMESSAGES_ISINFRIENDSUIBETA_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2280,
-  serialized_end=2340,
+  serialized_start=2509,
+  serialized_end=2569,
 )
 
 
@@ -560,8 +637,105 @@ _CFRIENDMESSAGES_ISINFRIENDSUIBETA_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2342,
-  serialized_end=2443,
+  serialized_start=2571,
+  serialized_end=2672,
+)
+
+
+_CFRIENDMESSAGES_UPDATEMESSAGEREACTION_REQUEST = _descriptor.Descriptor(
+  name='CFriendMessages_UpdateMessageReaction_Request',
+  full_name='CFriendMessages_UpdateMessageReaction_Request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='steamid', full_name='CFriendMessages_UpdateMessageReaction_Request.steamid', index=0,
+      number=1, type=6, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='server_timestamp', full_name='CFriendMessages_UpdateMessageReaction_Request.server_timestamp', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='ordinal', full_name='CFriendMessages_UpdateMessageReaction_Request.ordinal', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='reaction_type', full_name='CFriendMessages_UpdateMessageReaction_Request.reaction_type', index=3,
+      number=4, type=14, cpp_type=8, label=1,
+      has_default_value=True, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='reaction', full_name='CFriendMessages_UpdateMessageReaction_Request.reaction', index=4,
+      number=5, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='is_add', full_name='CFriendMessages_UpdateMessageReaction_Request.is_add', index=5,
+      number=6, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=2675,
+  serialized_end=2894,
+)
+
+
+_CFRIENDMESSAGES_UPDATEMESSAGEREACTION_RESPONSE = _descriptor.Descriptor(
+  name='CFriendMessages_UpdateMessageReaction_Response',
+  full_name='CFriendMessages_UpdateMessageReaction_Response',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='reactors', full_name='CFriendMessages_UpdateMessageReaction_Response.reactors', index=0,
+      number=1, type=13, cpp_type=3, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=2896,
+  serialized_end=2962,
 )
 
 
@@ -647,14 +821,92 @@ _CFRIENDMESSAGES_INCOMINGMESSAGE_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2446,
-  serialized_end=2708,
+  serialized_start=2965,
+  serialized_end=3227,
 )
 
+
+_CFRIENDMESSAGES_MESSAGEREACTION_NOTIFICATION = _descriptor.Descriptor(
+  name='CFriendMessages_MessageReaction_Notification',
+  full_name='CFriendMessages_MessageReaction_Notification',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='steamid_friend', full_name='CFriendMessages_MessageReaction_Notification.steamid_friend', index=0,
+      number=1, type=6, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='server_timestamp', full_name='CFriendMessages_MessageReaction_Notification.server_timestamp', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='ordinal', full_name='CFriendMessages_MessageReaction_Notification.ordinal', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='reactor', full_name='CFriendMessages_MessageReaction_Notification.reactor', index=3,
+      number=4, type=6, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='reaction_type', full_name='CFriendMessages_MessageReaction_Notification.reaction_type', index=4,
+      number=5, type=14, cpp_type=8, label=1,
+      has_default_value=True, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='reaction', full_name='CFriendMessages_MessageReaction_Notification.reaction', index=5,
+      number=6, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='is_add', full_name='CFriendMessages_MessageReaction_Notification.is_add', index=6,
+      number=7, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=3230,
+  serialized_end=3472,
+)
+
+_CFRIENDMESSAGES_GETRECENTMESSAGES_RESPONSE_FRIENDMESSAGE_MESSAGEREACTION.fields_by_name['reaction_type'].enum_type = _EMESSAGEREACTIONTYPE
+_CFRIENDMESSAGES_GETRECENTMESSAGES_RESPONSE_FRIENDMESSAGE_MESSAGEREACTION.containing_type = _CFRIENDMESSAGES_GETRECENTMESSAGES_RESPONSE_FRIENDMESSAGE
+_CFRIENDMESSAGES_GETRECENTMESSAGES_RESPONSE_FRIENDMESSAGE.fields_by_name['reactions'].message_type = _CFRIENDMESSAGES_GETRECENTMESSAGES_RESPONSE_FRIENDMESSAGE_MESSAGEREACTION
 _CFRIENDMESSAGES_GETRECENTMESSAGES_RESPONSE_FRIENDMESSAGE.containing_type = _CFRIENDMESSAGES_GETRECENTMESSAGES_RESPONSE
 _CFRIENDMESSAGES_GETRECENTMESSAGES_RESPONSE.fields_by_name['messages'].message_type = _CFRIENDMESSAGES_GETRECENTMESSAGES_RESPONSE_FRIENDMESSAGE
 _CFRIENDSMESSAGES_GETACTIVEMESSAGESESSIONS_RESPONSE_FRIENDMESSAGESESSION.containing_type = _CFRIENDSMESSAGES_GETACTIVEMESSAGESESSIONS_RESPONSE
 _CFRIENDSMESSAGES_GETACTIVEMESSAGESESSIONS_RESPONSE.fields_by_name['message_sessions'].message_type = _CFRIENDSMESSAGES_GETACTIVEMESSAGESESSIONS_RESPONSE_FRIENDMESSAGESESSION
+_CFRIENDMESSAGES_UPDATEMESSAGEREACTION_REQUEST.fields_by_name['reaction_type'].enum_type = _EMESSAGEREACTIONTYPE
+_CFRIENDMESSAGES_MESSAGEREACTION_NOTIFICATION.fields_by_name['reaction_type'].enum_type = _EMESSAGEREACTIONTYPE
 DESCRIPTOR.message_types_by_name['CFriendMessages_GetRecentMessages_Request'] = _CFRIENDMESSAGES_GETRECENTMESSAGES_REQUEST
 DESCRIPTOR.message_types_by_name['CFriendMessages_GetRecentMessages_Response'] = _CFRIENDMESSAGES_GETRECENTMESSAGES_RESPONSE
 DESCRIPTOR.message_types_by_name['CFriendsMessages_GetActiveMessageSessions_Request'] = _CFRIENDSMESSAGES_GETACTIVEMESSAGESESSIONS_REQUEST
@@ -664,7 +916,11 @@ DESCRIPTOR.message_types_by_name['CFriendMessages_SendMessage_Response'] = _CFRI
 DESCRIPTOR.message_types_by_name['CFriendMessages_AckMessage_Notification'] = _CFRIENDMESSAGES_ACKMESSAGE_NOTIFICATION
 DESCRIPTOR.message_types_by_name['CFriendMessages_IsInFriendsUIBeta_Request'] = _CFRIENDMESSAGES_ISINFRIENDSUIBETA_REQUEST
 DESCRIPTOR.message_types_by_name['CFriendMessages_IsInFriendsUIBeta_Response'] = _CFRIENDMESSAGES_ISINFRIENDSUIBETA_RESPONSE
+DESCRIPTOR.message_types_by_name['CFriendMessages_UpdateMessageReaction_Request'] = _CFRIENDMESSAGES_UPDATEMESSAGEREACTION_REQUEST
+DESCRIPTOR.message_types_by_name['CFriendMessages_UpdateMessageReaction_Response'] = _CFRIENDMESSAGES_UPDATEMESSAGEREACTION_RESPONSE
 DESCRIPTOR.message_types_by_name['CFriendMessages_IncomingMessage_Notification'] = _CFRIENDMESSAGES_INCOMINGMESSAGE_NOTIFICATION
+DESCRIPTOR.message_types_by_name['CFriendMessages_MessageReaction_Notification'] = _CFRIENDMESSAGES_MESSAGEREACTION_NOTIFICATION
+DESCRIPTOR.enum_types_by_name['EMessageReactionType'] = _EMESSAGEREACTIONTYPE
 _sym_db.RegisterFileDescriptor(DESCRIPTOR)
 
 CFriendMessages_GetRecentMessages_Request = _reflection.GeneratedProtocolMessageType('CFriendMessages_GetRecentMessages_Request', (_message.Message,), dict(
@@ -677,6 +933,13 @@ _sym_db.RegisterMessage(CFriendMessages_GetRecentMessages_Request)
 CFriendMessages_GetRecentMessages_Response = _reflection.GeneratedProtocolMessageType('CFriendMessages_GetRecentMessages_Response', (_message.Message,), dict(
 
   FriendMessage = _reflection.GeneratedProtocolMessageType('FriendMessage', (_message.Message,), dict(
+
+    MessageReaction = _reflection.GeneratedProtocolMessageType('MessageReaction', (_message.Message,), dict(
+      DESCRIPTOR = _CFRIENDMESSAGES_GETRECENTMESSAGES_RESPONSE_FRIENDMESSAGE_MESSAGEREACTION,
+      __module__ = 'steammessages_friendmessages_pb2'
+      # @@protoc_insertion_point(class_scope:CFriendMessages_GetRecentMessages_Response.FriendMessage.MessageReaction)
+      ))
+    ,
     DESCRIPTOR = _CFRIENDMESSAGES_GETRECENTMESSAGES_RESPONSE_FRIENDMESSAGE,
     __module__ = 'steammessages_friendmessages_pb2'
     # @@protoc_insertion_point(class_scope:CFriendMessages_GetRecentMessages_Response.FriendMessage)
@@ -688,6 +951,7 @@ CFriendMessages_GetRecentMessages_Response = _reflection.GeneratedProtocolMessag
   ))
 _sym_db.RegisterMessage(CFriendMessages_GetRecentMessages_Response)
 _sym_db.RegisterMessage(CFriendMessages_GetRecentMessages_Response.FriendMessage)
+_sym_db.RegisterMessage(CFriendMessages_GetRecentMessages_Response.FriendMessage.MessageReaction)
 
 CFriendsMessages_GetActiveMessageSessions_Request = _reflection.GeneratedProtocolMessageType('CFriendsMessages_GetActiveMessageSessions_Request', (_message.Message,), dict(
   DESCRIPTOR = _CFRIENDSMESSAGES_GETACTIVEMESSAGESESSIONS_REQUEST,
@@ -746,6 +1010,20 @@ CFriendMessages_IsInFriendsUIBeta_Response = _reflection.GeneratedProtocolMessag
   ))
 _sym_db.RegisterMessage(CFriendMessages_IsInFriendsUIBeta_Response)
 
+CFriendMessages_UpdateMessageReaction_Request = _reflection.GeneratedProtocolMessageType('CFriendMessages_UpdateMessageReaction_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CFRIENDMESSAGES_UPDATEMESSAGEREACTION_REQUEST,
+  __module__ = 'steammessages_friendmessages_pb2'
+  # @@protoc_insertion_point(class_scope:CFriendMessages_UpdateMessageReaction_Request)
+  ))
+_sym_db.RegisterMessage(CFriendMessages_UpdateMessageReaction_Request)
+
+CFriendMessages_UpdateMessageReaction_Response = _reflection.GeneratedProtocolMessageType('CFriendMessages_UpdateMessageReaction_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CFRIENDMESSAGES_UPDATEMESSAGEREACTION_RESPONSE,
+  __module__ = 'steammessages_friendmessages_pb2'
+  # @@protoc_insertion_point(class_scope:CFriendMessages_UpdateMessageReaction_Response)
+  ))
+_sym_db.RegisterMessage(CFriendMessages_UpdateMessageReaction_Response)
+
 CFriendMessages_IncomingMessage_Notification = _reflection.GeneratedProtocolMessageType('CFriendMessages_IncomingMessage_Notification', (_message.Message,), dict(
   DESCRIPTOR = _CFRIENDMESSAGES_INCOMINGMESSAGE_NOTIFICATION,
   __module__ = 'steammessages_friendmessages_pb2'
@@ -753,6 +1031,13 @@ CFriendMessages_IncomingMessage_Notification = _reflection.GeneratedProtocolMess
   ))
 _sym_db.RegisterMessage(CFriendMessages_IncomingMessage_Notification)
 
+CFriendMessages_MessageReaction_Notification = _reflection.GeneratedProtocolMessageType('CFriendMessages_MessageReaction_Notification', (_message.Message,), dict(
+  DESCRIPTOR = _CFRIENDMESSAGES_MESSAGEREACTION_NOTIFICATION,
+  __module__ = 'steammessages_friendmessages_pb2'
+  # @@protoc_insertion_point(class_scope:CFriendMessages_MessageReaction_Notification)
+  ))
+_sym_db.RegisterMessage(CFriendMessages_MessageReaction_Notification)
+
 
 DESCRIPTOR._options = None
 _CFRIENDMESSAGES_GETRECENTMESSAGES_REQUEST.fields_by_name['count']._options = None
@@ -772,8 +1057,8 @@ _FRIENDMESSAGES = _descriptor.ServiceDescriptor(
   file=DESCRIPTOR,
   index=0,
   serialized_options=_b('\202\265\030]A service for relaying and logging friend messages (user-to-user chats and offline messaging)'),
-  serialized_start=2711,
-  serialized_end=3619,
+  serialized_start=3572,
+  serialized_end=4657,
   methods=[
   _descriptor.MethodDescriptor(
     name='GetRecentMessages',
@@ -820,6 +1105,15 @@ _FRIENDMESSAGES = _descriptor.ServiceDescriptor(
     output_type=_CFRIENDMESSAGES_ISINFRIENDSUIBETA_RESPONSE,
     serialized_options=_b('\202\265\030)See if a friend is in the friendsui beta.'),
   ),
+  _descriptor.MethodDescriptor(
+    name='UpdateMessageReaction',
+    full_name='FriendMessages.UpdateMessageReaction',
+    index=5,
+    containing_service=None,
+    input_type=_CFRIENDMESSAGES_UPDATEMESSAGEREACTION_REQUEST,
+    output_type=_CFRIENDMESSAGES_UPDATEMESSAGEREACTION_RESPONSE,
+    serialized_options=_b('\202\265\0300Adds/removes a reaction to/from a friend message'),
+  ),
 ])
 _sym_db.RegisterServiceDescriptor(_FRIENDMESSAGES)
 
@@ -832,8 +1126,8 @@ _FRIENDMESSAGESCLIENT = _descriptor.ServiceDescriptor(
   file=DESCRIPTOR,
   index=1,
   serialized_options=_b('\300\265\030\002'),
-  serialized_start=3622,
-  serialized_end=3910,
+  serialized_start=4660,
+  serialized_end=5068,
   methods=[
   _descriptor.MethodDescriptor(
     name='IncomingMessage',
@@ -853,6 +1147,15 @@ _FRIENDMESSAGESCLIENT = _descriptor.ServiceDescriptor(
     output_type=steammessages__unified__base__pb2._NORESPONSE,
     serialized_options=_b('\202\265\030:A session acked an unread message, echo to other sessions.'),
   ),
+  _descriptor.MethodDescriptor(
+    name='MessageReaction',
+    full_name='FriendMessagesClient.MessageReaction',
+    index=2,
+    containing_service=None,
+    input_type=_CFRIENDMESSAGES_MESSAGEREACTION_NOTIFICATION,
+    output_type=steammessages__unified__base__pb2._NORESPONSE,
+    serialized_options=_b('\202\265\030#New message reaction from a friend.'),
+  ),
 ])
 _sym_db.RegisterServiceDescriptor(_FRIENDMESSAGESCLIENT)
 
diff --git a/steam/protobufs/steammessages_player_pb2.py b/steam/protobufs/steammessages_player_pb2.py
index 822ea60..3c30b7c 100644
--- a/steam/protobufs/steammessages_player_pb2.py
+++ b/steam/protobufs/steammessages_player_pb2.py
@@ -17,6 +17,7 @@ _sym_db = _symbol_database.Default()
 
 
 import steam.protobufs.steammessages_unified_base_pb2 as steammessages__unified__base__pb2
+import steam.protobufs.enums_pb2 as enums__pb2
 
 
 DESCRIPTOR = _descriptor.FileDescriptor(
@@ -24,10 +25,76 @@ DESCRIPTOR = _descriptor.FileDescriptor(
   package='',
   syntax='proto2',
   serialized_options=_b('\220\001\001'),
-  serialized_pb=_b('\n\x1asteammessages_player.proto\x1a steammessages_unified_base.proto\"4\n2CPlayer_GetMutualFriendsForIncomingInvites_Request\"\\\n&CPlayer_IncomingInviteMutualFriendList\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12!\n\x19mutual_friend_account_ids\x18\x02 \x03(\r\"\x8c\x01\n3CPlayer_GetMutualFriendsForIncomingInvites_Response\x12U\n$incoming_invite_mutual_friends_lists\x18\x01 \x03(\x0b\x32\'.CPlayer_IncomingInviteMutualFriendList\"\xed\x03\n\x1d\x43Player_GetOwnedGames_Request\x12\x32\n\x07steamid\x18\x01 \x01(\x04\x42!\x82\xb5\x18\x1dThe player we\'re asking about\x12\\\n\x0finclude_appinfo\x18\x02 \x01(\x08\x42\x43\x82\xb5\x18?true if we want additional details (name, icon) about each game\x12\x8c\x01\n\x19include_played_free_games\x18\x03 \x01(\x08\x42i\x82\xb5\x18\x65\x46ree games are excluded by default.  If this is set, free games the user has played will be returned.\x12M\n\rappids_filter\x18\x04 \x03(\rB6\x82\xb5\x18\x32if set, restricts result set to the passed in apps\x12\\\n\x10include_free_sub\x18\x05 \x01(\x08\x42\x42\x82\xb5\x18>Some games are in the free sub, which are excluded by default.\"\xf3\x02\n\x1e\x43Player_GetOwnedGames_Response\x12\x12\n\ngame_count\x18\x01 \x01(\r\x12\x33\n\x05games\x18\x02 \x03(\x0b\x32$.CPlayer_GetOwnedGames_Response.Game\x1a\x87\x02\n\x04Game\x12\r\n\x05\x61ppid\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x17\n\x0fplaytime_2weeks\x18\x03 \x01(\x05\x12\x18\n\x10playtime_forever\x18\x04 \x01(\x05\x12\x14\n\x0cimg_icon_url\x18\x05 \x01(\t\x12\x14\n\x0cimg_logo_url\x18\x06 \x01(\t\x12#\n\x1bhas_community_visible_stats\x18\x07 \x01(\x08\x12 \n\x18playtime_windows_forever\x18\x08 \x01(\x05\x12\x1c\n\x14playtime_mac_forever\x18\t \x01(\x05\x12\x1e\n\x16playtime_linux_forever\x18\n \x01(\x05\"M\n\x1b\x43Player_GetPlayNext_Request\x12\x17\n\x0fmax_age_seconds\x18\x01 \x01(\r\x12\x15\n\rignore_appids\x18\x02 \x03(\r\"H\n\x1c\x43Player_GetPlayNext_Response\x12\x18\n\x10last_update_time\x18\x01 \x01(\r\x12\x0e\n\x06\x61ppids\x18\x02 \x03(\r\"7\n&CPlayer_GetFriendsGameplayInfo_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\"\xee\x05\n\'CPlayer_GetFriendsGameplayInfo_Response\x12K\n\tyour_info\x18\x01 \x01(\x0b\x32\x38.CPlayer_GetFriendsGameplayInfo_Response.OwnGameplayInfo\x12M\n\x07in_game\x18\x02 \x03(\x0b\x32<.CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo\x12U\n\x0fplayed_recently\x18\x03 \x03(\x0b\x32<.CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo\x12Q\n\x0bplayed_ever\x18\x04 \x03(\x0b\x32<.CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo\x12J\n\x04owns\x18\x05 \x03(\x0b\x32<.CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo\x12Q\n\x0bin_wishlist\x18\x06 \x03(\x0b\x32<.CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo\x1a^\n\x13\x46riendsGameplayInfo\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x16\n\x0eminutes_played\x18\x02 \x01(\r\x12\x1e\n\x16minutes_played_forever\x18\x03 \x01(\r\x1a~\n\x0fOwnGameplayInfo\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x16\n\x0eminutes_played\x18\x02 \x01(\r\x12\x1e\n\x16minutes_played_forever\x18\x03 \x01(\r\x12\x13\n\x0bin_wishlist\x18\x04 \x01(\x08\x12\r\n\x05owned\x18\x05 \x01(\x08\"\x87\x02\n&CPlayer_GetFriendsAppsActivity_Request\x12\x81\x01\n\rnews_language\x18\x01 \x01(\tBj\x82\xb5\x18\x66Language for which to query about news items (for the being_discussed results). DEPRECATED AND UNUSED.\x12Y\n\rrequest_flags\x18\x02 \x01(\rBB\x82\xb5\x18>Flags describing the request; see EGetFriendsAppsActivityFlags\"\xa3\x13\n\'CPlayer_GetFriendsAppsActivity_Response\x12\xb8\x01\n\x08trending\x18\x01 \x03(\x0b\x32\x37.CPlayer_GetFriendsAppsActivity_Response.AppFriendsInfoBm\x82\xb5\x18iApps that friends have played more this week than last, with list of friends who\'ve played more this week\x12\xb4\x01\n\x10recent_purchases\x18\x02 \x03(\x0b\x32\x37.CPlayer_GetFriendsAppsActivity_Response.AppFriendsInfoBa\x82\xb5\x18]Apps friends have played in the past two weeks for which the user recently acquired a license\x12\x9e\x01\n\x07unowned\x18\x03 \x03(\x0b\x32\x37.CPlayer_GetFriendsAppsActivity_Response.AppFriendsInfoBT\x82\xb5\x18PApps friends have played in the past two weeks for which the user has no license\x12\xaf\x01\n\x07popular\x18\x04 \x03(\x0b\x32\x37.CPlayer_GetFriendsAppsActivity_Response.AppFriendsInfoBe\x82\xb5\x18\x61\x41pps friends have played in the past two weeks, for which the user has a license, sorted by count\x12\xc6\x01\n\x0b\x64ont_forget\x18\x05 \x03(\x0b\x32\x37.CPlayer_GetFriendsAppsActivity_Response.AppFriendsInfoBx\x82\xb5\x18tApps friends have played in the past two weeks which the user has neither purchased nor played in the past two weeks\x12\xc1\x01\n\x0f\x62\x65ing_discussed\x18\x06 \x03(\x0b\x32\x37.CPlayer_GetFriendsAppsActivity_Response.AppFriendsInfoBo\x82\xb5\x18kOwned apps that friends have posted status or screenshots for in the past two weeks. DEPRECATED AND UNUSED.\x12\x94\x01\n\x0cnew_to_group\x18\x07 \x03(\x0b\x32\x37.CPlayer_GetFriendsAppsActivity_Response.AppFriendsInfoBE\x82\xb5\x18\x41Owned apps that none of your friends had played prior to 2 weeks.\x12\x99\x01\n\x11returned_to_group\x18\x08 \x03(\x0b\x32\x37.CPlayer_GetFriendsAppsActivity_Response.AppFriendsInfoBE\x82\xb5\x18\x41Owned apps that friends hadn\'t played for a while, but are again.\x12\x66\n\x13\x61\x63tive_friend_count\x18\t \x01(\r:\x01\x30\x42\x46\x82\xb5\x18\x42Number of friends with non-trivial activity in the past two weeks.\x1a\x90\x04\n\x0e\x46riendPlayTime\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12s\n\x18minutes_played_this_week\x18\x02 \x01(\rBQ\x82\xb5\x18MMinutes this friend played the game (from the enclosing structure) this week.\x12}\n\x18minutes_played_two_weeks\x18\x03 \x01(\rB[\x82\xb5\x18WMinutes this friend played the game (from the enclosing structure) in the past 2 weeks.\x12p\n\x16minutes_played_forever\x18\x04 \x01(\rBP\x82\xb5\x18LMinutes this friend played the game (from the enclosing structure) all time.\x12\x86\x01\n\x0b\x65vent_count\x18\x05 \x01(\rBq\x82\xb5\x18mNumber of events involving this user & app. (Only set for results in being_discussed.) DEPRECATED AND UNUSED.\x1a\xf7\x02\n\x0e\x41ppFriendsInfo\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\xc9\x01\n\x07\x66riends\x18\x02 \x03(\x0b\x32\x37.CPlayer_GetFriendsAppsActivity_Response.FriendPlayTimeB\x7f\x82\xb5\x18{Friends (w/ playtime) that meet a specific criteria -- e.g. for trending, only includes friends w/ more playtime this week.\x12\x89\x01\n\rdisplay_order\x18\x03 \x01(\rBr\x82\xb5\x18nIndex indicating the order in which this app should be displayed, relative to other apps in the same response.\"3\n\"CPlayer_GetGameBadgeLevels_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\"\xb5\x01\n#CPlayer_GetGameBadgeLevels_Response\x12\x14\n\x0cplayer_level\x18\x01 \x01(\r\x12:\n\x06\x62\x61\x64ges\x18\x02 \x03(\x0b\x32*.CPlayer_GetGameBadgeLevels_Response.Badge\x1a<\n\x05\x42\x61\x64ge\x12\r\n\x05level\x18\x01 \x01(\x05\x12\x0e\n\x06series\x18\x02 \x01(\x05\x12\x14\n\x0c\x62order_color\x18\x03 \x01(\r\"l\n$CPlayer_GetProfileBackground_Request\x12\x32\n\x07steamid\x18\x01 \x01(\x06\x42!\x82\xb5\x18\x1dThe player we\'re asking about\x12\x10\n\x08language\x18\x02 \x01(\t\"\xf9\x03\n\x0bProfileItem\x12\x17\n\x0f\x63ommunityitemid\x18\x01 \x01(\x04\x12\x42\n\x0bimage_small\x18\x02 \x01(\tB-\x82\xb5\x18)small image used in backpack or selection\x12)\n\x0bimage_large\x18\x03 \x01(\tB\x14\x82\xb5\x18\x10the image itself\x12\x1e\n\x04name\x18\x04 \x01(\tB\x10\x82\xb5\x18\x0c\x65nglish name\x12\'\n\nitem_title\x18\x05 \x01(\tB\x13\x82\xb5\x18\x0flocalized title\x12\x33\n\x10item_description\x18\x06 \x01(\tB\x19\x82\xb5\x18\x15localized description\x12\r\n\x05\x61ppid\x18\x07 \x01(\r\x12\x11\n\titem_type\x18\x08 \x01(\r\x12\x12\n\nitem_class\x18\t \x01(\r\x12+\n\nmovie_webm\x18\n \x01(\tB\x17\x82\xb5\x18\x13URL to webm, if any\x12)\n\tmovie_mp4\x18\x0b \x01(\tB\x16\x82\xb5\x18\x12URL to mp4, if any\x12V\n\x0e\x65quipped_flags\x18\x0c \x01(\rB>\x82\xb5\x18:Special flags set when equipped (EProfileItemEquippedFlag)\"Q\n%CPlayer_GetProfileBackground_Response\x12(\n\x12profile_background\x18\x01 \x01(\x0b\x32\x0c.ProfileItem\"?\n$CPlayer_SetProfileBackground_Request\x12\x17\n\x0f\x63ommunityitemid\x18\x01 \x01(\x04\"\'\n%CPlayer_SetProfileBackground_Response\"p\n(CPlayer_GetMiniProfileBackground_Request\x12\x32\n\x07steamid\x18\x01 \x01(\x06\x42!\x82\xb5\x18\x1dThe player we\'re asking about\x12\x10\n\x08language\x18\x02 \x01(\t\"U\n)CPlayer_GetMiniProfileBackground_Response\x12(\n\x12profile_background\x18\x01 \x01(\x0b\x32\x0c.ProfileItem\"C\n(CPlayer_SetMiniProfileBackground_Request\x12\x17\n\x0f\x63ommunityitemid\x18\x01 \x01(\x04\"+\n)CPlayer_SetMiniProfileBackground_Response\"f\n\x1e\x43Player_GetAvatarFrame_Request\x12\x32\n\x07steamid\x18\x01 \x01(\x06\x42!\x82\xb5\x18\x1dThe player we\'re asking about\x12\x10\n\x08language\x18\x02 \x01(\t\"E\n\x1f\x43Player_GetAvatarFrame_Response\x12\"\n\x0c\x61vatar_frame\x18\x01 \x01(\x0b\x32\x0c.ProfileItem\"9\n\x1e\x43Player_SetAvatarFrame_Request\x12\x17\n\x0f\x63ommunityitemid\x18\x01 \x01(\x04\"!\n\x1f\x43Player_SetAvatarFrame_Response\"i\n!CPlayer_GetAnimatedAvatar_Request\x12\x32\n\x07steamid\x18\x01 \x01(\x06\x42!\x82\xb5\x18\x1dThe player we\'re asking about\x12\x10\n\x08language\x18\x02 \x01(\t\"B\n\"CPlayer_GetAnimatedAvatar_Response\x12\x1c\n\x06\x61vatar\x18\x01 \x01(\x0b\x32\x0c.ProfileItem\"<\n!CPlayer_SetAnimatedAvatar_Request\x12\x17\n\x0f\x63ommunityitemid\x18\x01 \x01(\x04\"$\n\"CPlayer_SetAnimatedAvatar_Response\"8\n$CPlayer_GetProfileItemsOwned_Request\x12\x10\n\x08language\x18\x01 \x01(\t\"\xf8\x01\n%CPlayer_GetProfileItemsOwned_Response\x12)\n\x13profile_backgrounds\x18\x01 \x03(\x0b\x32\x0c.ProfileItem\x12.\n\x18mini_profile_backgrounds\x18\x02 \x03(\x0b\x32\x0c.ProfileItem\x12#\n\ravatar_frames\x18\x03 \x03(\x0b\x32\x0c.ProfileItem\x12&\n\x10\x61nimated_avatars\x18\x04 \x03(\x0b\x32\x0c.ProfileItem\x12\'\n\x11profile_modifiers\x18\x05 \x03(\x0b\x32\x0c.ProfileItem\"L\n\'CPlayer_GetProfileItemsEquipped_Request\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x10\n\x08language\x18\x02 \x01(\t\"\xf6\x01\n(CPlayer_GetProfileItemsEquipped_Response\x12(\n\x12profile_background\x18\x01 \x01(\x0b\x32\x0c.ProfileItem\x12-\n\x17mini_profile_background\x18\x02 \x01(\x0b\x32\x0c.ProfileItem\x12\"\n\x0c\x61vatar_frame\x18\x03 \x01(\x0b\x32\x0c.ProfileItem\x12%\n\x0f\x61nimated_avatar\x18\x04 \x01(\x0b\x32\x0c.ProfileItem\x12&\n\x10profile_modifier\x18\x05 \x01(\x0b\x32\x0c.ProfileItem\"z\n+CPlayer_SetEquippedProfileItemFlags_Request\x12\x17\n\x0f\x63ommunityitemid\x18\x01 \x01(\x04\x12\x32\n\x05\x66lags\x18\x02 \x01(\rB#\x82\xb5\x18\x1fSet of EProfileItemEquippedFlag\".\n,CPlayer_SetEquippedProfileItemFlags_Response\"!\n\x1f\x43Player_GetEmoticonList_Request\"\xcc\x01\n CPlayer_GetEmoticonList_Response\x12=\n\temoticons\x18\x01 \x03(\x0b\x32*.CPlayer_GetEmoticonList_Response.Emoticon\x1ai\n\x08\x45moticon\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\x12\x16\n\x0etime_last_used\x18\x03 \x01(\r\x12\x11\n\tuse_count\x18\x04 \x01(\r\x12\x15\n\rtime_received\x18\x05 \x01(\r\"\\\n\'CPlayer_GetAchievementsProgress_Request\x12\x0f\n\x07steamid\x18\x01 \x01(\x04\x12\x10\n\x08language\x18\x02 \x01(\t\x12\x0e\n\x06\x61ppids\x18\x03 \x03(\r\"\x8d\x02\n(CPlayer_GetAchievementsProgress_Response\x12[\n\x14\x61\x63hievement_progress\x18\x01 \x03(\x0b\x32=.CPlayer_GetAchievementsProgress_Response.AchievementProgress\x1a\x83\x01\n\x13\x41\x63hievementProgress\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x10\n\x08unlocked\x18\x02 \x01(\r\x12\r\n\x05total\x18\x03 \x01(\r\x12\x12\n\npercentage\x18\x04 \x01(\x02\x12\x14\n\x0c\x61ll_unlocked\x18\x05 \x01(\x08\x12\x12\n\ncache_time\x18\x06 \x01(\r\"I\n#CPlayer_PostStatusToFriends_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x13\n\x0bstatus_text\x18\x02 \x01(\t\"&\n$CPlayer_PostStatusToFriends_Response\"e\n\x1f\x43Player_GetPostedStatus_Request\x12\x32\n\x07steamid\x18\x01 \x01(\x04\x42!\x82\xb5\x18\x1dThe player we\'re asking about\x12\x0e\n\x06postid\x18\x02 \x01(\x04\"z\n CPlayer_GetPostedStatus_Response\x12\x11\n\taccountid\x18\x01 \x01(\r\x12\x0e\n\x06postid\x18\x02 \x01(\x04\x12\x13\n\x0bstatus_text\x18\x03 \x01(\t\x12\x0f\n\x07\x64\x65leted\x18\x04 \x01(\x08\x12\r\n\x05\x61ppid\x18\x05 \x01(\r\"4\n\"CPlayer_DeletePostedStatus_Request\x12\x0e\n\x06postid\x18\x01 \x01(\x04\"%\n#CPlayer_DeletePostedStatus_Response\"\x82\x01\n\"CPlayer_GetLastPlayedTimes_Request\x12\\\n\x0fmin_last_played\x18\x01 \x01(\rBC\x82\xb5\x18?The most recent last-played time the client already knows about\"\xea\x03\n#CPlayer_GetLastPlayedTimes_Response\x12\x38\n\x05games\x18\x01 \x03(\x0b\x32).CPlayer_GetLastPlayedTimes_Response.Game\x1a\x88\x03\n\x04Game\x12\r\n\x05\x61ppid\x18\x01 \x01(\x05\x12\x15\n\rlast_playtime\x18\x02 \x01(\r\x12\x17\n\x0fplaytime_2weeks\x18\x03 \x01(\x05\x12\x18\n\x10playtime_forever\x18\x04 \x01(\x05\x12\x16\n\x0e\x66irst_playtime\x18\x05 \x01(\r\x12 \n\x18playtime_windows_forever\x18\x06 \x01(\x05\x12\x1c\n\x14playtime_mac_forever\x18\x07 \x01(\x05\x12\x1e\n\x16playtime_linux_forever\x18\x08 \x01(\x05\x12\x1e\n\x16\x66irst_windows_playtime\x18\t \x01(\r\x12\x1a\n\x12\x66irst_mac_playtime\x18\n \x01(\r\x12\x1c\n\x14\x66irst_linux_playtime\x18\x0b \x01(\r\x12\x1d\n\x15last_windows_playtime\x18\x0c \x01(\r\x12\x19\n\x11last_mac_playtime\x18\r \x01(\r\x12\x1b\n\x13last_linux_playtime\x18\x0e \x01(\r\"\x1b\n\x19\x43Player_AcceptSSA_Request\"\x1c\n\x1a\x43Player_AcceptSSA_Response\"!\n\x1f\x43Player_GetNicknameList_Request\"\x9e\x01\n CPlayer_GetNicknameList_Response\x12\x43\n\tnicknames\x18\x01 \x03(\x0b\x32\x30.CPlayer_GetNicknameList_Response.PlayerNickname\x1a\x35\n\x0ePlayerNickname\x12\x11\n\taccountid\x18\x01 \x01(\x07\x12\x10\n\x08nickname\x18\x02 \x01(\t\")\n\'CPlayer_GetPerFriendPreferences_Request\"\xd1\x05\n\x14PerFriendPreferences\x12\x11\n\taccountid\x18\x01 \x01(\x07\x12\x10\n\x08nickname\x18\x02 \x01(\t\x12_\n\x18notifications_showingame\x18\x03 \x01(\x0e\x32\x15.ENotificationSetting:&k_ENotificationSettingNotifyUseDefault\x12_\n\x18notifications_showonline\x18\x04 \x01(\x0e\x32\x15.ENotificationSetting:&k_ENotificationSettingNotifyUseDefault\x12\x61\n\x1anotifications_showmessages\x18\x05 \x01(\x0e\x32\x15.ENotificationSetting:&k_ENotificationSettingNotifyUseDefault\x12X\n\x11sounds_showingame\x18\x06 \x01(\x0e\x32\x15.ENotificationSetting:&k_ENotificationSettingNotifyUseDefault\x12X\n\x11sounds_showonline\x18\x07 \x01(\x0e\x32\x15.ENotificationSetting:&k_ENotificationSettingNotifyUseDefault\x12Z\n\x13sounds_showmessages\x18\x08 \x01(\x0e\x32\x15.ENotificationSetting:&k_ENotificationSettingNotifyUseDefault\x12_\n\x18notifications_sendmobile\x18\t \x01(\x0e\x32\x15.ENotificationSetting:&k_ENotificationSettingNotifyUseDefault\"V\n(CPlayer_GetPerFriendPreferences_Response\x12*\n\x0bpreferences\x18\x01 \x03(\x0b\x32\x15.PerFriendPreferences\"U\n\'CPlayer_SetPerFriendPreferences_Request\x12*\n\x0bpreferences\x18\x01 \x01(\x0b\x32\x15.PerFriendPreferences\"*\n(CPlayer_SetPerFriendPreferences_Response\"c\n\x19\x43Player_AddFriend_Request\x12\x46\n\x07steamid\x18\x01 \x01(\x06\x42\x35\x82\xb5\x18\x31Steam ID of user to whom to send a friend invite.\"\x86\x02\n\x1a\x43Player_AddFriend_Response\x12O\n\x0binvite_sent\x18\x01 \x01(\x08\x42:\x82\xb5\x18\x36True if the operation was successful, false otherwise.\x12\x86\x01\n\x13\x66riend_relationship\x18\x02 \x01(\rBi\x82\xb5\x18\x65the resulting relationship.  Depending on state, may move directly to friends rather than invite sent\x12\x0e\n\x06result\x18\x03 \x01(\x05\"R\n\x1c\x43Player_RemoveFriend_Request\x12\x32\n\x07steamid\x18\x01 \x01(\x06\x42!\x82\xb5\x18\x1dSteam ID of friend to remove.\"\\\n\x1d\x43Player_RemoveFriend_Response\x12;\n\x13\x66riend_relationship\x18\x01 \x01(\rB\x1e\x82\xb5\x18\x1athe resulting relationship\"\x7f\n\x1c\x43Player_IgnoreFriend_Request\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12N\n\x08unignore\x18\x02 \x01(\x08\x42<\x82\xb5\x18\x38If set, remove from ignore/block list instead of adding \"\\\n\x1d\x43Player_IgnoreFriend_Response\x12;\n\x13\x66riend_relationship\x18\x01 \x01(\rB\x1e\x82\xb5\x18\x1athe resulting relationship\")\n\'CPlayer_GetCommunityPreferences_Request\"\xb1\x01\n\x1c\x43Player_CommunityPreferences\x12)\n\x1bhide_adult_content_violence\x18\x01 \x01(\x08:\x04true\x12$\n\x16hide_adult_content_sex\x18\x02 \x01(\x08:\x04true\x12%\n\x16parenthesize_nicknames\x18\x04 \x01(\x08:\x05\x66\x61lse\x12\x19\n\x11timestamp_updated\x18\x03 \x01(\r\"^\n(CPlayer_GetCommunityPreferences_Response\x12\x32\n\x0bpreferences\x18\x01 \x01(\x0b\x32\x1d.CPlayer_CommunityPreferences\"]\n\'CPlayer_SetCommunityPreferences_Request\x12\x32\n\x0bpreferences\x18\x01 \x01(\x0b\x32\x1d.CPlayer_CommunityPreferences\"*\n(CPlayer_SetCommunityPreferences_Response\"@\n,CPlayer_GetNewSteamAnnouncementState_Request\x12\x10\n\x08language\x18\x01 \x01(\x05\"\xa6\x01\n-CPlayer_GetNewSteamAnnouncementState_Response\x12\r\n\x05state\x18\x01 \x01(\x05\x12\x1d\n\x15\x61nnouncement_headline\x18\x02 \x01(\t\x12\x18\n\x10\x61nnouncement_url\x18\x03 \x01(\t\x12\x13\n\x0btime_posted\x18\x04 \x01(\r\x12\x18\n\x10\x61nnouncement_gid\x18\x05 \x01(\x04\"`\n/CPlayer_UpdateSteamAnnouncementLastRead_Request\x12\x18\n\x10\x61nnouncement_gid\x18\x01 \x01(\x04\x12\x13\n\x0btime_posted\x18\x02 \x01(\r\"2\n0CPlayer_UpdateSteamAnnouncementLastRead_Response\"$\n\"CPlayer_GetPrivacySettings_Request\"\xcc\x01\n\x10\x43PrivacySettings\x12\x15\n\rprivacy_state\x18\x01 \x01(\x05\x12\x1f\n\x17privacy_state_inventory\x18\x02 \x01(\x05\x12\x1b\n\x13privacy_state_gifts\x18\x03 \x01(\x05\x12 \n\x18privacy_state_ownedgames\x18\x04 \x01(\x05\x12\x1e\n\x16privacy_state_playtime\x18\x05 \x01(\x05\x12!\n\x19privacy_state_friendslist\x18\x06 \x01(\x05\"R\n#CPlayer_GetPrivacySettings_Response\x12+\n\x10privacy_settings\x18\x01 \x01(\x0b\x32\x11.CPrivacySettings\"3\n\"CPlayer_GetDurationControl_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\"\xb8\x01\n#CPlayer_GetDurationControl_Response\x12\x12\n\nis_enabled\x18\x01 \x01(\x08\x12\x0f\n\x07seconds\x18\x02 \x01(\x05\x12\x15\n\rseconds_today\x18\x03 \x01(\x05\x12\x1d\n\x15is_steamchina_account\x18\x04 \x01(\x08\x12\x17\n\x0fis_age_verified\x18\x05 \x01(\x08\x12\x1d\n\x15seconds_allowed_today\x18\x06 \x01(\r\"`\n$CPlayer_LastPlayedTimes_Notification\x12\x38\n\x05games\x18\x01 \x03(\x0b\x32).CPlayer_GetLastPlayedTimes_Response.Game\"j\n*CPlayer_FriendNicknameChanged_Notification\x12\x11\n\taccountid\x18\x01 \x01(\x07\x12\x10\n\x08nickname\x18\x02 \x01(\t\x12\x17\n\x0fis_echo_to_self\x18\x03 \x01(\x08\"K\n6CPlayer_FriendEquippedProfileItemsChanged_Notification\x12\x11\n\taccountid\x18\x01 \x01(\x07\"\xa7\x01\n.CPlayer_NewSteamAnnouncementState_Notification\x12\r\n\x05state\x18\x01 \x01(\x05\x12\x1d\n\x15\x61nnouncement_headline\x18\x02 \x01(\t\x12\x18\n\x10\x61nnouncement_url\x18\x03 \x01(\t\x12\x13\n\x0btime_posted\x18\x04 \x01(\r\x12\x18\n\x10\x61nnouncement_gid\x18\x05 \x01(\x04\"f\n0CPlayer_CommunityPreferencesChanged_Notification\x12\x32\n\x0bpreferences\x18\x01 \x01(\x0b\x32\x1d.CPlayer_CommunityPreferences\"q\n0CPlayer_PerFriendPreferencesChanged_Notification\x12\x11\n\taccountid\x18\x01 \x01(\x07\x12*\n\x0bpreferences\x18\x02 \x01(\x0b\x32\x15.PerFriendPreferences\"Z\n+CPlayer_PrivacySettingsChanged_Notification\x12+\n\x10privacy_settings\x18\x01 \x01(\x0b\x32\x11.CPrivacySettings*\x85\x01\n\x14\x45NotificationSetting\x12*\n&k_ENotificationSettingNotifyUseDefault\x10\x00\x12 \n\x1ck_ENotificationSettingAlways\x10\x01\x12\x1f\n\x1bk_ENotificationSettingNever\x10\x02\x32\xd6-\n\x06Player\x12\xef\x01\n\"GetMutualFriendsForIncomingInvites\x12\x33.CPlayer_GetMutualFriendsForIncomingInvites_Request\x1a\x34.CPlayer_GetMutualFriendsForIncomingInvites_Response\"^\x82\xb5\x18ZGet me the mutual friends for each of my pending incoming invites (individuals and clans).\x12\x80\x01\n\rGetOwnedGames\x12\x1e.CPlayer_GetOwnedGames_Request\x1a\x1f.CPlayer_GetOwnedGames_Response\".\x82\xb5\x18*Return a list of games owned by the player\x12\x7f\n\x0bGetPlayNext\x12\x1c.CPlayer_GetPlayNext_Request\x1a\x1d.CPlayer_GetPlayNext_Response\"3\x82\xb5\x18/Return suggested games for player to play next.\x12\xb8\x01\n\x16GetFriendsGameplayInfo\x12\'.CPlayer_GetFriendsGameplayInfo_Request\x1a(.CPlayer_GetFriendsGameplayInfo_Response\"K\x82\xb5\x18GGet a list of friends who are playing, have played, own, or want a game\x12\xae\x01\n\x16GetFriendsAppsActivity\x12\'.CPlayer_GetFriendsAppsActivity_Request\x1a(.CPlayer_GetFriendsAppsActivity_Response\"A\x82\xb5\x18=Get lists of apps friends are active in, in a variety of ways\x12\xb6\x01\n\x12GetGameBadgeLevels\x12#.CPlayer_GetGameBadgeLevels_Request\x1a$.CPlayer_GetGameBadgeLevels_Response\"U\x82\xb5\x18QReturns the Steam Level of a user, the Badge level for the game, and if it\'s foil\x12\xa6\x01\n\x14GetProfileBackground\x12%.CPlayer_GetProfileBackground_Request\x1a&.CPlayer_GetProfileBackground_Response\"?\x82\xb5\x18;Gets which profile background is active for a specific user\x12\x8d\x01\n\x14SetProfileBackground\x12%.CPlayer_SetProfileBackground_Request\x1a&.CPlayer_SetProfileBackground_Response\"&\x82\xb5\x18\"Sets the user\'s profile background\x12\xb7\x01\n\x18GetMiniProfileBackground\x12).CPlayer_GetMiniProfileBackground_Request\x1a*.CPlayer_GetMiniProfileBackground_Response\"D\x82\xb5\x18@Gets which mini profile background is active for a specific user\x12\x9e\x01\n\x18SetMiniProfileBackground\x12).CPlayer_SetMiniProfileBackground_Request\x1a*.CPlayer_SetMiniProfileBackground_Response\"+\x82\xb5\x18\'Sets the user\'s mini profile background\x12\x8e\x01\n\x0eGetAvatarFrame\x12\x1f.CPlayer_GetAvatarFrame_Request\x1a .CPlayer_GetAvatarFrame_Response\"9\x82\xb5\x18\x35Gets which avatar frame is active for a specific user\x12\x87\x01\n\x0eSetAvatarFrame\x12\x1f.CPlayer_SetAvatarFrame_Request\x1a .CPlayer_SetAvatarFrame_Response\"2\x82\xb5\x18.Sets the user\'s avatar frame for their profile\x12\x9a\x01\n\x11GetAnimatedAvatar\x12\".CPlayer_GetAnimatedAvatar_Request\x1a#.CPlayer_GetAnimatedAvatar_Response\"<\x82\xb5\x18\x38Gets which animated avatar is active for a specific user\x12\x93\x01\n\x11SetAnimatedAvatar\x12\".CPlayer_SetAnimatedAvatar_Request\x1a#.CPlayer_SetAnimatedAvatar_Response\"5\x82\xb5\x18\x31Sets the user\'s animated avatar for their profile\x12\xa0\x01\n\x14GetProfileItemsOwned\x12%.CPlayer_GetProfileItemsOwned_Request\x1a&.CPlayer_GetProfileItemsOwned_Response\"9\x82\xb5\x18\x35Returns the items the user can equip on their profile\x12\xac\x01\n\x17GetProfileItemsEquipped\x12(.CPlayer_GetProfileItemsEquipped_Request\x1a).CPlayer_GetProfileItemsEquipped_Response\"<\x82\xb5\x18\x38Returns the items the user has equipped on their profile\x12\xa7\x01\n\x1bSetEquippedProfileItemFlags\x12,.CPlayer_SetEquippedProfileItemFlags_Request\x1a-.CPlayer_SetEquippedProfileItemFlags_Response\"+\x82\xb5\x18\'Sets special flags on the equipped item\x12\x91\x01\n\x0fGetEmoticonList\x12 .CPlayer_GetEmoticonList_Request\x1a!.CPlayer_GetEmoticonList_Response\"9\x82\xb5\x18\x35Gets a list of the emoticons a user has with metadata\x12\xb9\x01\n\x17GetAchievementsProgress\x12(.CPlayer_GetAchievementsProgress_Request\x1a).CPlayer_GetAchievementsProgress_Response\"I\x82\xb5\x18\x45Gets the achievement completion stats for the specified list of apps.\x12\x91\x01\n\x13PostStatusToFriends\x12$.CPlayer_PostStatusToFriends_Request\x1a%.CPlayer_PostStatusToFriends_Response\"-\x82\xb5\x18)Posts custom status text into the blotter\x12\x86\x01\n\x0fGetPostedStatus\x12 .CPlayer_GetPostedStatus_Request\x1a!.CPlayer_GetPostedStatus_Response\".\x82\xb5\x18*Gets a posted status text for a user by id\x12\x92\x01\n\x12\x44\x65letePostedStatus\x12#.CPlayer_DeletePostedStatus_Request\x1a$.CPlayer_DeletePostedStatus_Response\"1\x82\xb5\x18-Deletes a posted status text for a user by id\x12\x95\x01\n\x18\x43lientGetLastPlayedTimes\x12#.CPlayer_GetLastPlayedTimes_Request\x1a$.CPlayer_GetLastPlayedTimes_Response\".\x82\xb5\x18*Gets the last-played times for the account\x12\x63\n\tAcceptSSA\x12\x1a.CPlayer_AcceptSSA_Request\x1a\x1b.CPlayer_AcceptSSA_Response\"\x1d\x82\xb5\x18\x19User is accepting the SSA\x12\x94\x01\n\x0fGetNicknameList\x12 .CPlayer_GetNicknameList_Request\x1a!.CPlayer_GetNicknameList_Response\"<\x82\xb5\x18\x38Gets the list of nicknames this user has for other users\x12\xbd\x01\n\x17GetPerFriendPreferences\x12(.CPlayer_GetPerFriendPreferences_Request\x1a).CPlayer_GetPerFriendPreferences_Response\"M\x82\xb5\x18IGets the list of per-friend preferences this user has set for other users\x12\xb7\x01\n\x17SetPerFriendPreferences\x12(.CPlayer_SetPerFriendPreferences_Request\x1a).CPlayer_SetPerFriendPreferences_Response\"G\x82\xb5\x18\x43Sets the logged in user\'s per-friend preferences for the given user\x12s\n\tAddFriend\x12\x1a.CPlayer_AddFriend_Request\x1a\x1b.CPlayer_AddFriend_Response\"-\x82\xb5\x18)Invites another Steam user to be a friend\x12\x82\x01\n\x0cRemoveFriend\x12\x1d.CPlayer_RemoveFriend_Request\x1a\x1e.CPlayer_RemoveFriend_Response\"3\x82\xb5\x18/Removes a friend or ignores a friend suggestion\x12\xa6\x01\n\x0cIgnoreFriend\x12\x1d.CPlayer_IgnoreFriend_Request\x1a\x1e.CPlayer_IgnoreFriend_Response\"W\x82\xb5\x18SBlocks or unblocks communication with the user.  Despite name, can be a non-friend.\x12\x9e\x01\n\x17GetCommunityPreferences\x12(.CPlayer_GetCommunityPreferences_Request\x1a).CPlayer_GetCommunityPreferences_Response\".\x82\xb5\x18*Returns the player\'s community preferences\x12\x9b\x01\n\x17SetCommunityPreferences\x12(.CPlayer_SetCommunityPreferences_Request\x1a).CPlayer_SetCommunityPreferences_Response\"+\x82\xb5\x18\'Sets the player\'s community preferences\x12\xde\x01\n\x1cGetNewSteamAnnouncementState\x12-.CPlayer_GetNewSteamAnnouncementState_Request\x1a..CPlayer_GetNewSteamAnnouncementState_Response\"_\x82\xb5\x18[Calculates and returns what to display for UI that renders new steam announcement available\x12\xbc\x01\n\x1fUpdateSteamAnnouncementLastRead\x12\x30.CPlayer_UpdateSteamAnnouncementLastRead_Request\x1a\x31.CPlayer_UpdateSteamAnnouncementLastRead_Response\"4\x82\xb5\x18\x30Marks latest announcement timestamp read by user\x12\x82\x01\n\x12GetPrivacySettings\x12#.CPlayer_GetPrivacySettings_Request\x1a$.CPlayer_GetPrivacySettings_Response\"!\x82\xb5\x18\x1dGet current privacy settings.\x12\x8c\x01\n\x12GetDurationControl\x12#.CPlayer_GetDurationControl_Request\x1a$.CPlayer_GetDurationControl_Response\"+\x82\xb5\x18\'Get gameplay duration control settings.\x1a-\x82\xb5\x18)A service for accessing Steam player data2\xf1\t\n\x0cPlayerClient\x12\x8c\x01\n\x15NotifyLastPlayedTimes\x12%.CPlayer_LastPlayedTimes_Notification\x1a\x0b.NoResponse\"?\x82\xb5\x18;Notification from server to client of more recent play time\x12\xa4\x01\n\x1bNotifyFriendNicknameChanged\x12+.CPlayer_FriendNicknameChanged_Notification\x1a\x0b.NoResponse\"K\x82\xb5\x18GNotification from server to client that a friend\'s nickname has changed\x12\xcb\x01\n\'NotifyFriendEquippedProfileItemsChanged\x12\x37.CPlayer_FriendEquippedProfileItemsChanged_Notification\x1a\x0b.NoResponse\"Z\x82\xb5\x18VNotification from server to client that a friend\'s equipped profile items have changed\x12\xa4\x01\n\x1fNotifyNewSteamAnnouncementState\x12/.CPlayer_NewSteamAnnouncementState_Notification\x1a\x0b.NoResponse\"C\x82\xb5\x18?Notifies client of changes to steam announcement state for user\x12\xb9\x01\n!NotifyCommunityPreferencesChanged\x12\x31.CPlayer_CommunityPreferencesChanged_Notification\x1a\x0b.NoResponse\"T\x82\xb5\x18PNotification from server to client that their community preferences have changed\x12\xaa\x01\n!NotifyPerFriendPreferencesChanged\x12\x31.CPlayer_PerFriendPreferencesChanged_Notification\x1a\x0b.NoResponse\"E\x82\xb5\x18\x41Notification from server that per-friend preferences have changed\x12\x9c\x01\n#NotifyPrivacyPrivacySettingsChanged\x12,.CPlayer_PrivacySettingsChanged_Notification\x1a\x0b.NoResponse\":\x82\xb5\x18\x36Notification from server that privacy settings changed\x1a.\x82\xb5\x18&Steam player data client notifications\xc0\xb5\x18\x02\x42\x03\x90\x01\x01')
+  serialized_pb=_b('\n\x1asteammessages_player.proto\x1a steammessages_unified_base.proto\x1a\x0b\x65nums.proto\"4\n2CPlayer_GetMutualFriendsForIncomingInvites_Request\"\\\n&CPlayer_IncomingInviteMutualFriendList\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12!\n\x19mutual_friend_account_ids\x18\x02 \x03(\r\"\x8c\x01\n3CPlayer_GetMutualFriendsForIncomingInvites_Response\x12U\n$incoming_invite_mutual_friends_lists\x18\x01 \x03(\x0b\x32\'.CPlayer_IncomingInviteMutualFriendList\"\xb5\x04\n\x1d\x43Player_GetOwnedGames_Request\x12\x32\n\x07steamid\x18\x01 \x01(\x04\x42!\x82\xb5\x18\x1dThe player we\'re asking about\x12\\\n\x0finclude_appinfo\x18\x02 \x01(\x08\x42\x43\x82\xb5\x18?true if we want additional details (name, icon) about each game\x12\x8c\x01\n\x19include_played_free_games\x18\x03 \x01(\x08\x42i\x82\xb5\x18\x65\x46ree games are excluded by default.  If this is set, free games the user has played will be returned.\x12M\n\rappids_filter\x18\x04 \x03(\rB6\x82\xb5\x18\x32if set, restricts result set to the passed in apps\x12\\\n\x10include_free_sub\x18\x05 \x01(\x08\x42\x42\x82\xb5\x18>Some games are in the free sub, which are excluded by default.\x12\x46\n\x12skip_unvetted_apps\x18\x06 \x01(\x08:\x04trueB$\x82\xb5\x18 if set, skip unvetted store apps\"\xf3\x02\n\x1e\x43Player_GetOwnedGames_Response\x12\x12\n\ngame_count\x18\x01 \x01(\r\x12\x33\n\x05games\x18\x02 \x03(\x0b\x32$.CPlayer_GetOwnedGames_Response.Game\x1a\x87\x02\n\x04Game\x12\r\n\x05\x61ppid\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x17\n\x0fplaytime_2weeks\x18\x03 \x01(\x05\x12\x18\n\x10playtime_forever\x18\x04 \x01(\x05\x12\x14\n\x0cimg_icon_url\x18\x05 \x01(\t\x12\x14\n\x0cimg_logo_url\x18\x06 \x01(\t\x12#\n\x1bhas_community_visible_stats\x18\x07 \x01(\x08\x12 \n\x18playtime_windows_forever\x18\x08 \x01(\x05\x12\x1c\n\x14playtime_mac_forever\x18\t \x01(\x05\x12\x1e\n\x16playtime_linux_forever\x18\n \x01(\x05\"M\n\x1b\x43Player_GetPlayNext_Request\x12\x17\n\x0fmax_age_seconds\x18\x01 \x01(\r\x12\x15\n\rignore_appids\x18\x02 \x03(\r\"H\n\x1c\x43Player_GetPlayNext_Response\x12\x18\n\x10last_update_time\x18\x01 \x01(\r\x12\x0e\n\x06\x61ppids\x18\x02 \x03(\r\"7\n&CPlayer_GetFriendsGameplayInfo_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\"\xee\x05\n\'CPlayer_GetFriendsGameplayInfo_Response\x12K\n\tyour_info\x18\x01 \x01(\x0b\x32\x38.CPlayer_GetFriendsGameplayInfo_Response.OwnGameplayInfo\x12M\n\x07in_game\x18\x02 \x03(\x0b\x32<.CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo\x12U\n\x0fplayed_recently\x18\x03 \x03(\x0b\x32<.CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo\x12Q\n\x0bplayed_ever\x18\x04 \x03(\x0b\x32<.CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo\x12J\n\x04owns\x18\x05 \x03(\x0b\x32<.CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo\x12Q\n\x0bin_wishlist\x18\x06 \x03(\x0b\x32<.CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo\x1a^\n\x13\x46riendsGameplayInfo\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x16\n\x0eminutes_played\x18\x02 \x01(\r\x12\x1e\n\x16minutes_played_forever\x18\x03 \x01(\r\x1a~\n\x0fOwnGameplayInfo\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x16\n\x0eminutes_played\x18\x02 \x01(\r\x12\x1e\n\x16minutes_played_forever\x18\x03 \x01(\r\x12\x13\n\x0bin_wishlist\x18\x04 \x01(\x08\x12\r\n\x05owned\x18\x05 \x01(\x08\"\x87\x02\n&CPlayer_GetFriendsAppsActivity_Request\x12\x81\x01\n\rnews_language\x18\x01 \x01(\tBj\x82\xb5\x18\x66Language for which to query about news items (for the being_discussed results). DEPRECATED AND UNUSED.\x12Y\n\rrequest_flags\x18\x02 \x01(\rBB\x82\xb5\x18>Flags describing the request; see EGetFriendsAppsActivityFlags\"\xa3\x13\n\'CPlayer_GetFriendsAppsActivity_Response\x12\xb8\x01\n\x08trending\x18\x01 \x03(\x0b\x32\x37.CPlayer_GetFriendsAppsActivity_Response.AppFriendsInfoBm\x82\xb5\x18iApps that friends have played more this week than last, with list of friends who\'ve played more this week\x12\xb4\x01\n\x10recent_purchases\x18\x02 \x03(\x0b\x32\x37.CPlayer_GetFriendsAppsActivity_Response.AppFriendsInfoBa\x82\xb5\x18]Apps friends have played in the past two weeks for which the user recently acquired a license\x12\x9e\x01\n\x07unowned\x18\x03 \x03(\x0b\x32\x37.CPlayer_GetFriendsAppsActivity_Response.AppFriendsInfoBT\x82\xb5\x18PApps friends have played in the past two weeks for which the user has no license\x12\xaf\x01\n\x07popular\x18\x04 \x03(\x0b\x32\x37.CPlayer_GetFriendsAppsActivity_Response.AppFriendsInfoBe\x82\xb5\x18\x61\x41pps friends have played in the past two weeks, for which the user has a license, sorted by count\x12\xc6\x01\n\x0b\x64ont_forget\x18\x05 \x03(\x0b\x32\x37.CPlayer_GetFriendsAppsActivity_Response.AppFriendsInfoBx\x82\xb5\x18tApps friends have played in the past two weeks which the user has neither purchased nor played in the past two weeks\x12\xc1\x01\n\x0f\x62\x65ing_discussed\x18\x06 \x03(\x0b\x32\x37.CPlayer_GetFriendsAppsActivity_Response.AppFriendsInfoBo\x82\xb5\x18kOwned apps that friends have posted status or screenshots for in the past two weeks. DEPRECATED AND UNUSED.\x12\x94\x01\n\x0cnew_to_group\x18\x07 \x03(\x0b\x32\x37.CPlayer_GetFriendsAppsActivity_Response.AppFriendsInfoBE\x82\xb5\x18\x41Owned apps that none of your friends had played prior to 2 weeks.\x12\x99\x01\n\x11returned_to_group\x18\x08 \x03(\x0b\x32\x37.CPlayer_GetFriendsAppsActivity_Response.AppFriendsInfoBE\x82\xb5\x18\x41Owned apps that friends hadn\'t played for a while, but are again.\x12\x66\n\x13\x61\x63tive_friend_count\x18\t \x01(\r:\x01\x30\x42\x46\x82\xb5\x18\x42Number of friends with non-trivial activity in the past two weeks.\x1a\x90\x04\n\x0e\x46riendPlayTime\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12s\n\x18minutes_played_this_week\x18\x02 \x01(\rBQ\x82\xb5\x18MMinutes this friend played the game (from the enclosing structure) this week.\x12}\n\x18minutes_played_two_weeks\x18\x03 \x01(\rB[\x82\xb5\x18WMinutes this friend played the game (from the enclosing structure) in the past 2 weeks.\x12p\n\x16minutes_played_forever\x18\x04 \x01(\rBP\x82\xb5\x18LMinutes this friend played the game (from the enclosing structure) all time.\x12\x86\x01\n\x0b\x65vent_count\x18\x05 \x01(\rBq\x82\xb5\x18mNumber of events involving this user & app. (Only set for results in being_discussed.) DEPRECATED AND UNUSED.\x1a\xf7\x02\n\x0e\x41ppFriendsInfo\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\xc9\x01\n\x07\x66riends\x18\x02 \x03(\x0b\x32\x37.CPlayer_GetFriendsAppsActivity_Response.FriendPlayTimeB\x7f\x82\xb5\x18{Friends (w/ playtime) that meet a specific criteria -- e.g. for trending, only includes friends w/ more playtime this week.\x12\x89\x01\n\rdisplay_order\x18\x03 \x01(\rBr\x82\xb5\x18nIndex indicating the order in which this app should be displayed, relative to other apps in the same response.\"3\n\"CPlayer_GetGameBadgeLevels_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\"\xb5\x01\n#CPlayer_GetGameBadgeLevels_Response\x12\x14\n\x0cplayer_level\x18\x01 \x01(\r\x12:\n\x06\x62\x61\x64ges\x18\x02 \x03(\x0b\x32*.CPlayer_GetGameBadgeLevels_Response.Badge\x1a<\n\x05\x42\x61\x64ge\x12\r\n\x05level\x18\x01 \x01(\x05\x12\x0e\n\x06series\x18\x02 \x01(\x05\x12\x14\n\x0c\x62order_color\x18\x03 \x01(\r\"l\n$CPlayer_GetProfileBackground_Request\x12\x32\n\x07steamid\x18\x01 \x01(\x06\x42!\x82\xb5\x18\x1dThe player we\'re asking about\x12\x10\n\x08language\x18\x02 \x01(\t\"\xe9\x04\n\x0bProfileItem\x12\x17\n\x0f\x63ommunityitemid\x18\x01 \x01(\x04\x12\x42\n\x0bimage_small\x18\x02 \x01(\tB-\x82\xb5\x18)small image used in backpack or selection\x12)\n\x0bimage_large\x18\x03 \x01(\tB\x14\x82\xb5\x18\x10the image itself\x12\x1e\n\x04name\x18\x04 \x01(\tB\x10\x82\xb5\x18\x0c\x65nglish name\x12\'\n\nitem_title\x18\x05 \x01(\tB\x13\x82\xb5\x18\x0flocalized title\x12\x33\n\x10item_description\x18\x06 \x01(\tB\x19\x82\xb5\x18\x15localized description\x12\r\n\x05\x61ppid\x18\x07 \x01(\r\x12\x11\n\titem_type\x18\x08 \x01(\r\x12\x12\n\nitem_class\x18\t \x01(\r\x12+\n\nmovie_webm\x18\n \x01(\tB\x17\x82\xb5\x18\x13URL to webm, if any\x12)\n\tmovie_mp4\x18\x0b \x01(\tB\x16\x82\xb5\x18\x12URL to mp4, if any\x12\x37\n\x10movie_webm_small\x18\r \x01(\tB\x1d\x82\xb5\x18\x19URL to small webm, if any\x12\x35\n\x0fmovie_mp4_small\x18\x0e \x01(\tB\x1c\x82\xb5\x18\x18URL to small mp4, if any\x12V\n\x0e\x65quipped_flags\x18\x0c \x01(\rB>\x82\xb5\x18:Special flags set when equipped (EProfileItemEquippedFlag)\"Q\n%CPlayer_GetProfileBackground_Response\x12(\n\x12profile_background\x18\x01 \x01(\x0b\x32\x0c.ProfileItem\"?\n$CPlayer_SetProfileBackground_Request\x12\x17\n\x0f\x63ommunityitemid\x18\x01 \x01(\x04\"\'\n%CPlayer_SetProfileBackground_Response\"p\n(CPlayer_GetMiniProfileBackground_Request\x12\x32\n\x07steamid\x18\x01 \x01(\x06\x42!\x82\xb5\x18\x1dThe player we\'re asking about\x12\x10\n\x08language\x18\x02 \x01(\t\"U\n)CPlayer_GetMiniProfileBackground_Response\x12(\n\x12profile_background\x18\x01 \x01(\x0b\x32\x0c.ProfileItem\"C\n(CPlayer_SetMiniProfileBackground_Request\x12\x17\n\x0f\x63ommunityitemid\x18\x01 \x01(\x04\"+\n)CPlayer_SetMiniProfileBackground_Response\"f\n\x1e\x43Player_GetAvatarFrame_Request\x12\x32\n\x07steamid\x18\x01 \x01(\x06\x42!\x82\xb5\x18\x1dThe player we\'re asking about\x12\x10\n\x08language\x18\x02 \x01(\t\"E\n\x1f\x43Player_GetAvatarFrame_Response\x12\"\n\x0c\x61vatar_frame\x18\x01 \x01(\x0b\x32\x0c.ProfileItem\"9\n\x1e\x43Player_SetAvatarFrame_Request\x12\x17\n\x0f\x63ommunityitemid\x18\x01 \x01(\x04\"!\n\x1f\x43Player_SetAvatarFrame_Response\"i\n!CPlayer_GetAnimatedAvatar_Request\x12\x32\n\x07steamid\x18\x01 \x01(\x06\x42!\x82\xb5\x18\x1dThe player we\'re asking about\x12\x10\n\x08language\x18\x02 \x01(\t\"B\n\"CPlayer_GetAnimatedAvatar_Response\x12\x1c\n\x06\x61vatar\x18\x01 \x01(\x0b\x32\x0c.ProfileItem\"<\n!CPlayer_SetAnimatedAvatar_Request\x12\x17\n\x0f\x63ommunityitemid\x18\x01 \x01(\x04\"$\n\"CPlayer_SetAnimatedAvatar_Response\"8\n$CPlayer_GetProfileItemsOwned_Request\x12\x10\n\x08language\x18\x01 \x01(\t\"\xf8\x01\n%CPlayer_GetProfileItemsOwned_Response\x12)\n\x13profile_backgrounds\x18\x01 \x03(\x0b\x32\x0c.ProfileItem\x12.\n\x18mini_profile_backgrounds\x18\x02 \x03(\x0b\x32\x0c.ProfileItem\x12#\n\ravatar_frames\x18\x03 \x03(\x0b\x32\x0c.ProfileItem\x12&\n\x10\x61nimated_avatars\x18\x04 \x03(\x0b\x32\x0c.ProfileItem\x12\'\n\x11profile_modifiers\x18\x05 \x03(\x0b\x32\x0c.ProfileItem\"L\n\'CPlayer_GetProfileItemsEquipped_Request\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x10\n\x08language\x18\x02 \x01(\t\"\xf6\x01\n(CPlayer_GetProfileItemsEquipped_Response\x12(\n\x12profile_background\x18\x01 \x01(\x0b\x32\x0c.ProfileItem\x12-\n\x17mini_profile_background\x18\x02 \x01(\x0b\x32\x0c.ProfileItem\x12\"\n\x0c\x61vatar_frame\x18\x03 \x01(\x0b\x32\x0c.ProfileItem\x12%\n\x0f\x61nimated_avatar\x18\x04 \x01(\x0b\x32\x0c.ProfileItem\x12&\n\x10profile_modifier\x18\x05 \x01(\x0b\x32\x0c.ProfileItem\"z\n+CPlayer_SetEquippedProfileItemFlags_Request\x12\x17\n\x0f\x63ommunityitemid\x18\x01 \x01(\x04\x12\x32\n\x05\x66lags\x18\x02 \x01(\rB#\x82\xb5\x18\x1fSet of EProfileItemEquippedFlag\".\n,CPlayer_SetEquippedProfileItemFlags_Response\"!\n\x1f\x43Player_GetEmoticonList_Request\"\xdb\x01\n CPlayer_GetEmoticonList_Response\x12=\n\temoticons\x18\x01 \x03(\x0b\x32*.CPlayer_GetEmoticonList_Response.Emoticon\x1ax\n\x08\x45moticon\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\x12\x16\n\x0etime_last_used\x18\x03 \x01(\r\x12\x11\n\tuse_count\x18\x04 \x01(\r\x12\x15\n\rtime_received\x18\x05 \x01(\r\x12\r\n\x05\x61ppid\x18\x06 \x01(\r\"\\\n\'CPlayer_GetAchievementsProgress_Request\x12\x0f\n\x07steamid\x18\x01 \x01(\x04\x12\x10\n\x08language\x18\x02 \x01(\t\x12\x0e\n\x06\x61ppids\x18\x03 \x03(\r\"\x8d\x02\n(CPlayer_GetAchievementsProgress_Response\x12[\n\x14\x61\x63hievement_progress\x18\x01 \x03(\x0b\x32=.CPlayer_GetAchievementsProgress_Response.AchievementProgress\x1a\x83\x01\n\x13\x41\x63hievementProgress\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x10\n\x08unlocked\x18\x02 \x01(\r\x12\r\n\x05total\x18\x03 \x01(\r\x12\x12\n\npercentage\x18\x04 \x01(\x02\x12\x14\n\x0c\x61ll_unlocked\x18\x05 \x01(\x08\x12\x12\n\ncache_time\x18\x06 \x01(\r\"3\n CPlayer_GetFavoriteBadge_Request\x12\x0f\n\x07steamid\x18\x01 \x01(\x04\"\xb0\x01\n!CPlayer_GetFavoriteBadge_Response\x12\x1a\n\x12has_favorite_badge\x18\x01 \x01(\x08\x12\x0f\n\x07\x62\x61\x64geid\x18\x02 \x01(\r\x12\x17\n\x0f\x63ommunityitemid\x18\x03 \x01(\x04\x12\x11\n\titem_type\x18\x04 \x01(\r\x12\x14\n\x0c\x62order_color\x18\x05 \x01(\r\x12\r\n\x05\x61ppid\x18\x06 \x01(\r\x12\r\n\x05level\x18\x07 \x01(\r\"L\n CPlayer_SetFavoriteBadge_Request\x12\x17\n\x0f\x63ommunityitemid\x18\x01 \x01(\x04\x12\x0f\n\x07\x62\x61\x64geid\x18\x02 \x01(\r\"#\n!CPlayer_SetFavoriteBadge_Response\"\x8d\x01\n\'CPlayer_GetProfileCustomization_Request\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\'\n\x1finclude_inactive_customizations\x18\x02 \x01(\x08\x12(\n include_purchased_customizations\x18\x03 \x01(\x08\"\xdd\x02\n\x18ProfileCustomizationSlot\x12\x0c\n\x04slot\x18\x01 \x01(\r\x12\r\n\x05\x61ppid\x18\x02 \x01(\r\x12\x17\n\x0fpublishedfileid\x18\x03 \x01(\x04\x12\x14\n\x0citem_assetid\x18\x04 \x01(\x04\x12\x16\n\x0eitem_contextid\x18\x05 \x01(\x04\x12\r\n\x05notes\x18\x06 \x01(\t\x12\r\n\x05title\x18\x07 \x01(\t\x12\x11\n\taccountid\x18\x08 \x01(\r\x12\x0f\n\x07\x62\x61\x64geid\x18\t \x01(\r\x12\x14\n\x0c\x62order_color\x18\n \x01(\r\x12\x14\n\x0citem_classid\x18\x0b \x01(\x04\x12\x17\n\x0fitem_instanceid\x18\x0c \x01(\x04\x12V\n\x10\x62\x61n_check_result\x18\r \x01(\x0e\x32\x17.EBanContentCheckResult:#k_EBanContentCheckResult_NotScanned\"\xbd\x02\n\x14ProfileCustomization\x12Z\n\x12\x63ustomization_type\x18\x01 \x01(\x0e\x32\x1a.EProfileCustomizationType:\"k_EProfileCustomizationTypeInvalid\x12\r\n\x05large\x18\x02 \x01(\x08\x12(\n\x05slots\x18\x03 \x03(\x0b\x32\x19.ProfileCustomizationSlot\x12\x0e\n\x06\x61\x63tive\x18\x04 \x01(\x08\x12]\n\x13\x63ustomization_style\x18\x05 \x01(\x0e\x32\x1b.EProfileCustomizationStyle:#k_EProfileCustomizationStyleDefault\x12\x12\n\npurchaseid\x18\x06 \x01(\x04\x12\r\n\x05level\x18\x07 \x01(\r\"/\n\x0cProfileTheme\x12\x10\n\x08theme_id\x18\x01 \x01(\t\x12\r\n\x05title\x18\x02 \x01(\t\"\x96\x03\n(CPlayer_GetProfileCustomization_Response\x12-\n\x0e\x63ustomizations\x18\x01 \x03(\x0b\x32\x15.ProfileCustomization\x12\x17\n\x0fslots_available\x18\x02 \x01(\r\x12$\n\rprofile_theme\x18\x03 \x01(\x0b\x32\r.ProfileTheme\x12\x62\n\x18purchased_customizations\x18\x04 \x03(\x0b\x32@.CPlayer_GetProfileCustomization_Response.PurchasedCustomization\x1a\x97\x01\n\x16PurchasedCustomization\x12\x12\n\npurchaseid\x18\x01 \x01(\x04\x12Z\n\x12\x63ustomization_type\x18\x02 \x01(\x0e\x32\x1a.EProfileCustomizationType:\"k_EProfileCustomizationTypeInvalid\x12\r\n\x05level\x18\x03 \x01(\r\"D\n1CPlayer_GetPurchasedProfileCustomizations_Request\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\"\xad\x02\n2CPlayer_GetPurchasedProfileCustomizations_Response\x12l\n\x18purchased_customizations\x18\x01 \x03(\x0b\x32J.CPlayer_GetPurchasedProfileCustomizations_Response.PurchasedCustomization\x1a\x88\x01\n\x16PurchasedCustomization\x12\x12\n\npurchaseid\x18\x01 \x01(\x04\x12Z\n\x12\x63ustomization_type\x18\x02 \x01(\x0e\x32\x1a.EProfileCustomizationType:\"k_EProfileCustomizationTypeInvalid\"O\n<CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Request\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\"\xba\x04\n=CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response\x12w\n\x18purchased_customizations\x18\x01 \x03(\x0b\x32U.CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response.PurchasedCustomization\x12u\n\x17upgraded_customizations\x18\x02 \x03(\x0b\x32T.CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response.UpgradedCustomization\x1a\x83\x01\n\x16PurchasedCustomization\x12Z\n\x12\x63ustomization_type\x18\x01 \x01(\x0e\x32\x1a.EProfileCustomizationType:\"k_EProfileCustomizationTypeInvalid\x12\r\n\x05\x63ount\x18\x02 \x01(\r\x1a\x82\x01\n\x15UpgradedCustomization\x12Z\n\x12\x63ustomization_type\x18\x01 \x01(\x0e\x32\x1a.EProfileCustomizationType:\"k_EProfileCustomizationTypeInvalid\x12\r\n\x05level\x18\x02 \x01(\r\"+\n)CPlayer_GetProfileThemesAvailable_Request\"S\n*CPlayer_GetProfileThemesAvailable_Response\x12%\n\x0eprofile_themes\x18\x01 \x03(\x0b\x32\r.ProfileTheme\"3\n\x1f\x43Player_SetProfileTheme_Request\x12\x10\n\x08theme_id\x18\x01 \x01(\t\"\"\n CPlayer_SetProfileTheme_Response\"I\n#CPlayer_PostStatusToFriends_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x13\n\x0bstatus_text\x18\x02 \x01(\t\"&\n$CPlayer_PostStatusToFriends_Response\"e\n\x1f\x43Player_GetPostedStatus_Request\x12\x32\n\x07steamid\x18\x01 \x01(\x04\x42!\x82\xb5\x18\x1dThe player we\'re asking about\x12\x0e\n\x06postid\x18\x02 \x01(\x04\"z\n CPlayer_GetPostedStatus_Response\x12\x11\n\taccountid\x18\x01 \x01(\r\x12\x0e\n\x06postid\x18\x02 \x01(\x04\x12\x13\n\x0bstatus_text\x18\x03 \x01(\t\x12\x0f\n\x07\x64\x65leted\x18\x04 \x01(\x08\x12\r\n\x05\x61ppid\x18\x05 \x01(\r\"4\n\"CPlayer_DeletePostedStatus_Request\x12\x0e\n\x06postid\x18\x01 \x01(\x04\"%\n#CPlayer_DeletePostedStatus_Response\"\x82\x01\n\"CPlayer_GetLastPlayedTimes_Request\x12\\\n\x0fmin_last_played\x18\x01 \x01(\rBC\x82\xb5\x18?The most recent last-played time the client already knows about\"\xea\x03\n#CPlayer_GetLastPlayedTimes_Response\x12\x38\n\x05games\x18\x01 \x03(\x0b\x32).CPlayer_GetLastPlayedTimes_Response.Game\x1a\x88\x03\n\x04Game\x12\r\n\x05\x61ppid\x18\x01 \x01(\x05\x12\x15\n\rlast_playtime\x18\x02 \x01(\r\x12\x17\n\x0fplaytime_2weeks\x18\x03 \x01(\x05\x12\x18\n\x10playtime_forever\x18\x04 \x01(\x05\x12\x16\n\x0e\x66irst_playtime\x18\x05 \x01(\r\x12 \n\x18playtime_windows_forever\x18\x06 \x01(\x05\x12\x1c\n\x14playtime_mac_forever\x18\x07 \x01(\x05\x12\x1e\n\x16playtime_linux_forever\x18\x08 \x01(\x05\x12\x1e\n\x16\x66irst_windows_playtime\x18\t \x01(\r\x12\x1a\n\x12\x66irst_mac_playtime\x18\n \x01(\r\x12\x1c\n\x14\x66irst_linux_playtime\x18\x0b \x01(\r\x12\x1d\n\x15last_windows_playtime\x18\x0c \x01(\r\x12\x19\n\x11last_mac_playtime\x18\r \x01(\r\x12\x1b\n\x13last_linux_playtime\x18\x0e \x01(\r\"^\n\x19\x43Player_AcceptSSA_Request\x12\x41\n\x0e\x61greement_type\x18\x01 \x01(\x0e\x32\x0f.EAgreementType:\x18k_EAgreementType_Invalid\"\x1c\n\x1a\x43Player_AcceptSSA_Response\"!\n\x1f\x43Player_GetNicknameList_Request\"\x9e\x01\n CPlayer_GetNicknameList_Response\x12\x43\n\tnicknames\x18\x01 \x03(\x0b\x32\x30.CPlayer_GetNicknameList_Response.PlayerNickname\x1a\x35\n\x0ePlayerNickname\x12\x11\n\taccountid\x18\x01 \x01(\x07\x12\x10\n\x08nickname\x18\x02 \x01(\t\")\n\'CPlayer_GetPerFriendPreferences_Request\"\xd1\x05\n\x14PerFriendPreferences\x12\x11\n\taccountid\x18\x01 \x01(\x07\x12\x10\n\x08nickname\x18\x02 \x01(\t\x12_\n\x18notifications_showingame\x18\x03 \x01(\x0e\x32\x15.ENotificationSetting:&k_ENotificationSettingNotifyUseDefault\x12_\n\x18notifications_showonline\x18\x04 \x01(\x0e\x32\x15.ENotificationSetting:&k_ENotificationSettingNotifyUseDefault\x12\x61\n\x1anotifications_showmessages\x18\x05 \x01(\x0e\x32\x15.ENotificationSetting:&k_ENotificationSettingNotifyUseDefault\x12X\n\x11sounds_showingame\x18\x06 \x01(\x0e\x32\x15.ENotificationSetting:&k_ENotificationSettingNotifyUseDefault\x12X\n\x11sounds_showonline\x18\x07 \x01(\x0e\x32\x15.ENotificationSetting:&k_ENotificationSettingNotifyUseDefault\x12Z\n\x13sounds_showmessages\x18\x08 \x01(\x0e\x32\x15.ENotificationSetting:&k_ENotificationSettingNotifyUseDefault\x12_\n\x18notifications_sendmobile\x18\t \x01(\x0e\x32\x15.ENotificationSetting:&k_ENotificationSettingNotifyUseDefault\"V\n(CPlayer_GetPerFriendPreferences_Response\x12*\n\x0bpreferences\x18\x01 \x03(\x0b\x32\x15.PerFriendPreferences\"U\n\'CPlayer_SetPerFriendPreferences_Request\x12*\n\x0bpreferences\x18\x01 \x01(\x0b\x32\x15.PerFriendPreferences\"*\n(CPlayer_SetPerFriendPreferences_Response\"c\n\x19\x43Player_AddFriend_Request\x12\x46\n\x07steamid\x18\x01 \x01(\x06\x42\x35\x82\xb5\x18\x31Steam ID of user to whom to send a friend invite.\"\x86\x02\n\x1a\x43Player_AddFriend_Response\x12O\n\x0binvite_sent\x18\x01 \x01(\x08\x42:\x82\xb5\x18\x36True if the operation was successful, false otherwise.\x12\x86\x01\n\x13\x66riend_relationship\x18\x02 \x01(\rBi\x82\xb5\x18\x65the resulting relationship.  Depending on state, may move directly to friends rather than invite sent\x12\x0e\n\x06result\x18\x03 \x01(\x05\"R\n\x1c\x43Player_RemoveFriend_Request\x12\x32\n\x07steamid\x18\x01 \x01(\x06\x42!\x82\xb5\x18\x1dSteam ID of friend to remove.\"\\\n\x1d\x43Player_RemoveFriend_Response\x12;\n\x13\x66riend_relationship\x18\x01 \x01(\rB\x1e\x82\xb5\x18\x1athe resulting relationship\"\x7f\n\x1c\x43Player_IgnoreFriend_Request\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12N\n\x08unignore\x18\x02 \x01(\x08\x42<\x82\xb5\x18\x38If set, remove from ignore/block list instead of adding \"\\\n\x1d\x43Player_IgnoreFriend_Response\x12;\n\x13\x66riend_relationship\x18\x01 \x01(\rB\x1e\x82\xb5\x18\x1athe resulting relationship\")\n\'CPlayer_GetCommunityPreferences_Request\"\xd7\x02\n\x1c\x43Player_CommunityPreferences\x12)\n\x1bhide_adult_content_violence\x18\x01 \x01(\x08:\x04true\x12$\n\x16hide_adult_content_sex\x18\x02 \x01(\x08:\x04true\x12%\n\x16parenthesize_nicknames\x18\x04 \x01(\x08:\x05\x66\x61lse\x12V\n\x13text_filter_setting\x18\x05 \x01(\x0e\x32\x13.ETextFilterSetting:$k_ETextFilterSettingSteamLabOptedOut\x12(\n\x1atext_filter_ignore_friends\x18\x06 \x01(\x08:\x04true\x12\"\n\x1atext_filter_words_revision\x18\x07 \x01(\r\x12\x19\n\x11timestamp_updated\x18\x03 \x01(\r\"^\n(CPlayer_GetCommunityPreferences_Response\x12\x32\n\x0bpreferences\x18\x01 \x01(\x0b\x32\x1d.CPlayer_CommunityPreferences\"]\n\'CPlayer_SetCommunityPreferences_Request\x12\x32\n\x0bpreferences\x18\x01 \x01(\x0b\x32\x1d.CPlayer_CommunityPreferences\"*\n(CPlayer_SetCommunityPreferences_Response\"$\n\"CPlayer_GetTextFilterWords_Request\"\x8e\x01\n\x17\x43Player_TextFilterWords\x12\'\n\x1ftext_filter_custom_banned_words\x18\x01 \x03(\t\x12&\n\x1etext_filter_custom_clean_words\x18\x02 \x03(\t\x12\"\n\x1atext_filter_words_revision\x18\x03 \x01(\r\"N\n#CPlayer_GetTextFilterWords_Response\x12\'\n\x05words\x18\x01 \x01(\x0b\x32\x18.CPlayer_TextFilterWords\"@\n,CPlayer_GetNewSteamAnnouncementState_Request\x12\x10\n\x08language\x18\x01 \x01(\x05\"\xa6\x01\n-CPlayer_GetNewSteamAnnouncementState_Response\x12\r\n\x05state\x18\x01 \x01(\x05\x12\x1d\n\x15\x61nnouncement_headline\x18\x02 \x01(\t\x12\x18\n\x10\x61nnouncement_url\x18\x03 \x01(\t\x12\x13\n\x0btime_posted\x18\x04 \x01(\r\x12\x18\n\x10\x61nnouncement_gid\x18\x05 \x01(\x04\"`\n/CPlayer_UpdateSteamAnnouncementLastRead_Request\x12\x18\n\x10\x61nnouncement_gid\x18\x01 \x01(\x04\x12\x13\n\x0btime_posted\x18\x02 \x01(\r\"2\n0CPlayer_UpdateSteamAnnouncementLastRead_Response\"$\n\"CPlayer_GetPrivacySettings_Request\"\xcc\x01\n\x10\x43PrivacySettings\x12\x15\n\rprivacy_state\x18\x01 \x01(\x05\x12\x1f\n\x17privacy_state_inventory\x18\x02 \x01(\x05\x12\x1b\n\x13privacy_state_gifts\x18\x03 \x01(\x05\x12 \n\x18privacy_state_ownedgames\x18\x04 \x01(\x05\x12\x1e\n\x16privacy_state_playtime\x18\x05 \x01(\x05\x12!\n\x19privacy_state_friendslist\x18\x06 \x01(\x05\"R\n#CPlayer_GetPrivacySettings_Response\x12+\n\x10privacy_settings\x18\x01 \x01(\x0b\x32\x11.CPrivacySettings\"3\n\"CPlayer_GetDurationControl_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\"\xb8\x01\n#CPlayer_GetDurationControl_Response\x12\x12\n\nis_enabled\x18\x01 \x01(\x08\x12\x0f\n\x07seconds\x18\x02 \x01(\x05\x12\x15\n\rseconds_today\x18\x03 \x01(\x05\x12\x1d\n\x15is_steamchina_account\x18\x04 \x01(\x08\x12\x17\n\x0fis_age_verified\x18\x05 \x01(\x08\x12\x1d\n\x15seconds_allowed_today\x18\x06 \x01(\r\"`\n$CPlayer_LastPlayedTimes_Notification\x12\x38\n\x05games\x18\x01 \x03(\x0b\x32).CPlayer_GetLastPlayedTimes_Response.Game\"j\n*CPlayer_FriendNicknameChanged_Notification\x12\x11\n\taccountid\x18\x01 \x01(\x07\x12\x10\n\x08nickname\x18\x02 \x01(\t\x12\x17\n\x0fis_echo_to_self\x18\x03 \x01(\x08\"K\n6CPlayer_FriendEquippedProfileItemsChanged_Notification\x12\x11\n\taccountid\x18\x01 \x01(\x07\"\xa7\x01\n.CPlayer_NewSteamAnnouncementState_Notification\x12\r\n\x05state\x18\x01 \x01(\x05\x12\x1d\n\x15\x61nnouncement_headline\x18\x02 \x01(\t\x12\x18\n\x10\x61nnouncement_url\x18\x03 \x01(\t\x12\x13\n\x0btime_posted\x18\x04 \x01(\r\x12\x18\n\x10\x61nnouncement_gid\x18\x05 \x01(\x04\"f\n0CPlayer_CommunityPreferencesChanged_Notification\x12\x32\n\x0bpreferences\x18\x01 \x01(\x0b\x32\x1d.CPlayer_CommunityPreferences\"V\n+CPlayer_TextFilterWordsChanged_Notification\x12\'\n\x05words\x18\x01 \x01(\x0b\x32\x18.CPlayer_TextFilterWords\"q\n0CPlayer_PerFriendPreferencesChanged_Notification\x12\x11\n\taccountid\x18\x01 \x01(\x07\x12*\n\x0bpreferences\x18\x02 \x01(\x0b\x32\x15.PerFriendPreferences\"Z\n+CPlayer_PrivacySettingsChanged_Notification\x12+\n\x10privacy_settings\x18\x01 \x01(\x0b\x32\x11.CPrivacySettings*\x99\x02\n\x1a\x45ProfileCustomizationStyle\x12\'\n#k_EProfileCustomizationStyleDefault\x10\x00\x12(\n$k_EProfileCustomizationStyleSelected\x10\x01\x12&\n\"k_EProfileCustomizationStyleRarest\x10\x02\x12*\n&k_EProfileCustomizationStyleMostRecent\x10\x03\x12&\n\"k_EProfileCustomizationStyleRandom\x10\x04\x12,\n(k_EProfileCustomizationStyleHighestRated\x10\x05*v\n\x0e\x45\x41greementType\x12%\n\x18k_EAgreementType_Invalid\x10\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x12\x1e\n\x1ak_EAgreementType_GlobalSSA\x10\x00\x12\x1d\n\x19k_EAgreementType_ChinaSSA\x10\x01*\x85\x01\n\x14\x45NotificationSetting\x12*\n&k_ENotificationSettingNotifyUseDefault\x10\x00\x12 \n\x1ck_ENotificationSettingAlways\x10\x01\x12\x1f\n\x1bk_ENotificationSettingNever\x10\x02*\xb0\x01\n\x12\x45TextFilterSetting\x12(\n$k_ETextFilterSettingSteamLabOptedOut\x10\x00\x12\x1f\n\x1bk_ETextFilterSettingEnabled\x10\x01\x12-\n)k_ETextFilterSettingEnabledAllowProfanity\x10\x02\x12 \n\x1ck_ETextFilterSettingDisabled\x10\x03\x32\x83\x38\n\x06Player\x12\xef\x01\n\"GetMutualFriendsForIncomingInvites\x12\x33.CPlayer_GetMutualFriendsForIncomingInvites_Request\x1a\x34.CPlayer_GetMutualFriendsForIncomingInvites_Response\"^\x82\xb5\x18ZGet me the mutual friends for each of my pending incoming invites (individuals and clans).\x12\x80\x01\n\rGetOwnedGames\x12\x1e.CPlayer_GetOwnedGames_Request\x1a\x1f.CPlayer_GetOwnedGames_Response\".\x82\xb5\x18*Return a list of games owned by the player\x12\x7f\n\x0bGetPlayNext\x12\x1c.CPlayer_GetPlayNext_Request\x1a\x1d.CPlayer_GetPlayNext_Response\"3\x82\xb5\x18/Return suggested games for player to play next.\x12\xb8\x01\n\x16GetFriendsGameplayInfo\x12\'.CPlayer_GetFriendsGameplayInfo_Request\x1a(.CPlayer_GetFriendsGameplayInfo_Response\"K\x82\xb5\x18GGet a list of friends who are playing, have played, own, or want a game\x12\xae\x01\n\x16GetFriendsAppsActivity\x12\'.CPlayer_GetFriendsAppsActivity_Request\x1a(.CPlayer_GetFriendsAppsActivity_Response\"A\x82\xb5\x18=Get lists of apps friends are active in, in a variety of ways\x12\xb6\x01\n\x12GetGameBadgeLevels\x12#.CPlayer_GetGameBadgeLevels_Request\x1a$.CPlayer_GetGameBadgeLevels_Response\"U\x82\xb5\x18QReturns the Steam Level of a user, the Badge level for the game, and if it\'s foil\x12\xa6\x01\n\x14GetProfileBackground\x12%.CPlayer_GetProfileBackground_Request\x1a&.CPlayer_GetProfileBackground_Response\"?\x82\xb5\x18;Gets which profile background is active for a specific user\x12\x8d\x01\n\x14SetProfileBackground\x12%.CPlayer_SetProfileBackground_Request\x1a&.CPlayer_SetProfileBackground_Response\"&\x82\xb5\x18\"Sets the user\'s profile background\x12\xb7\x01\n\x18GetMiniProfileBackground\x12).CPlayer_GetMiniProfileBackground_Request\x1a*.CPlayer_GetMiniProfileBackground_Response\"D\x82\xb5\x18@Gets which mini profile background is active for a specific user\x12\x9e\x01\n\x18SetMiniProfileBackground\x12).CPlayer_SetMiniProfileBackground_Request\x1a*.CPlayer_SetMiniProfileBackground_Response\"+\x82\xb5\x18\'Sets the user\'s mini profile background\x12\x8e\x01\n\x0eGetAvatarFrame\x12\x1f.CPlayer_GetAvatarFrame_Request\x1a .CPlayer_GetAvatarFrame_Response\"9\x82\xb5\x18\x35Gets which avatar frame is active for a specific user\x12\x87\x01\n\x0eSetAvatarFrame\x12\x1f.CPlayer_SetAvatarFrame_Request\x1a .CPlayer_SetAvatarFrame_Response\"2\x82\xb5\x18.Sets the user\'s avatar frame for their profile\x12\x9a\x01\n\x11GetAnimatedAvatar\x12\".CPlayer_GetAnimatedAvatar_Request\x1a#.CPlayer_GetAnimatedAvatar_Response\"<\x82\xb5\x18\x38Gets which animated avatar is active for a specific user\x12\x93\x01\n\x11SetAnimatedAvatar\x12\".CPlayer_SetAnimatedAvatar_Request\x1a#.CPlayer_SetAnimatedAvatar_Response\"5\x82\xb5\x18\x31Sets the user\'s animated avatar for their profile\x12\xa0\x01\n\x14GetProfileItemsOwned\x12%.CPlayer_GetProfileItemsOwned_Request\x1a&.CPlayer_GetProfileItemsOwned_Response\"9\x82\xb5\x18\x35Returns the items the user can equip on their profile\x12\xac\x01\n\x17GetProfileItemsEquipped\x12(.CPlayer_GetProfileItemsEquipped_Request\x1a).CPlayer_GetProfileItemsEquipped_Response\"<\x82\xb5\x18\x38Returns the items the user has equipped on their profile\x12\xa7\x01\n\x1bSetEquippedProfileItemFlags\x12,.CPlayer_SetEquippedProfileItemFlags_Request\x1a-.CPlayer_SetEquippedProfileItemFlags_Response\"+\x82\xb5\x18\'Sets special flags on the equipped item\x12\x91\x01\n\x0fGetEmoticonList\x12 .CPlayer_GetEmoticonList_Request\x1a!.CPlayer_GetEmoticonList_Response\"9\x82\xb5\x18\x35Gets a list of the emoticons a user has with metadata\x12\xb9\x01\n\x17GetAchievementsProgress\x12(.CPlayer_GetAchievementsProgress_Request\x1a).CPlayer_GetAchievementsProgress_Response\"I\x82\xb5\x18\x45Gets the achievement completion stats for the specified list of apps.\x12\x90\x01\n\x10GetFavoriteBadge\x12!.CPlayer_GetFavoriteBadge_Request\x1a\".CPlayer_GetFavoriteBadge_Response\"5\x82\xb5\x18\x31Gets the badge the user has set as their favorite\x12\x84\x01\n\x10SetFavoriteBadge\x12!.CPlayer_SetFavoriteBadge_Request\x1a\".CPlayer_SetFavoriteBadge_Response\")\x82\xb5\x18%Sets the badge  as the users favorite\x12\xa5\x01\n\x17GetProfileCustomization\x12(.CPlayer_GetProfileCustomization_Request\x1a).CPlayer_GetProfileCustomization_Response\"5\x82\xb5\x18\x31Returns the customizations (if any) for a profile\x12\xbe\x01\n!GetPurchasedProfileCustomizations\x12\x32.CPlayer_GetPurchasedProfileCustomizations_Request\x1a\x33.CPlayer_GetPurchasedProfileCustomizations_Response\"0\x82\xb5\x18,Returns the purchased profile customizations\x12\xec\x01\n,GetPurchasedAndUpgradedProfileCustomizations\x12=.CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Request\x1a>.CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response\"=\x82\xb5\x18\x39Returns the purchased and upgraded profile customizations\x12\x9d\x01\n\x19GetProfileThemesAvailable\x12*.CPlayer_GetProfileThemesAvailable_Request\x1a+.CPlayer_GetProfileThemesAvailable_Response\"\'\x82\xb5\x18#Gets themes available for the user.\x12{\n\x0fSetProfileTheme\x12 .CPlayer_SetProfileTheme_Request\x1a!.CPlayer_SetProfileTheme_Response\"#\x82\xb5\x18\x1fSelects a theme for the profile\x12\x91\x01\n\x13PostStatusToFriends\x12$.CPlayer_PostStatusToFriends_Request\x1a%.CPlayer_PostStatusToFriends_Response\"-\x82\xb5\x18)Posts custom status text into the blotter\x12\x86\x01\n\x0fGetPostedStatus\x12 .CPlayer_GetPostedStatus_Request\x1a!.CPlayer_GetPostedStatus_Response\".\x82\xb5\x18*Gets a posted status text for a user by id\x12\x92\x01\n\x12\x44\x65letePostedStatus\x12#.CPlayer_DeletePostedStatus_Request\x1a$.CPlayer_DeletePostedStatus_Response\"1\x82\xb5\x18-Deletes a posted status text for a user by id\x12\x95\x01\n\x18\x43lientGetLastPlayedTimes\x12#.CPlayer_GetLastPlayedTimes_Request\x1a$.CPlayer_GetLastPlayedTimes_Response\".\x82\xb5\x18*Gets the last-played times for the account\x12\x63\n\tAcceptSSA\x12\x1a.CPlayer_AcceptSSA_Request\x1a\x1b.CPlayer_AcceptSSA_Response\"\x1d\x82\xb5\x18\x19User is accepting the SSA\x12\x94\x01\n\x0fGetNicknameList\x12 .CPlayer_GetNicknameList_Request\x1a!.CPlayer_GetNicknameList_Response\"<\x82\xb5\x18\x38Gets the list of nicknames this user has for other users\x12\xbd\x01\n\x17GetPerFriendPreferences\x12(.CPlayer_GetPerFriendPreferences_Request\x1a).CPlayer_GetPerFriendPreferences_Response\"M\x82\xb5\x18IGets the list of per-friend preferences this user has set for other users\x12\xb7\x01\n\x17SetPerFriendPreferences\x12(.CPlayer_SetPerFriendPreferences_Request\x1a).CPlayer_SetPerFriendPreferences_Response\"G\x82\xb5\x18\x43Sets the logged in user\'s per-friend preferences for the given user\x12s\n\tAddFriend\x12\x1a.CPlayer_AddFriend_Request\x1a\x1b.CPlayer_AddFriend_Response\"-\x82\xb5\x18)Invites another Steam user to be a friend\x12\x82\x01\n\x0cRemoveFriend\x12\x1d.CPlayer_RemoveFriend_Request\x1a\x1e.CPlayer_RemoveFriend_Response\"3\x82\xb5\x18/Removes a friend or ignores a friend suggestion\x12\xa6\x01\n\x0cIgnoreFriend\x12\x1d.CPlayer_IgnoreFriend_Request\x1a\x1e.CPlayer_IgnoreFriend_Response\"W\x82\xb5\x18SBlocks or unblocks communication with the user.  Despite name, can be a non-friend.\x12\x9e\x01\n\x17GetCommunityPreferences\x12(.CPlayer_GetCommunityPreferences_Request\x1a).CPlayer_GetCommunityPreferences_Response\".\x82\xb5\x18*Returns the player\'s community preferences\x12\x9b\x01\n\x17SetCommunityPreferences\x12(.CPlayer_SetCommunityPreferences_Request\x1a).CPlayer_SetCommunityPreferences_Response\"+\x82\xb5\x18\'Sets the player\'s community preferences\x12\x9b\x01\n\x12GetTextFilterWords\x12#.CPlayer_GetTextFilterWords_Request\x1a$.CPlayer_GetTextFilterWords_Response\":\x82\xb5\x18\x36Get the custom text filtering dictionary for this user\x12\xde\x01\n\x1cGetNewSteamAnnouncementState\x12-.CPlayer_GetNewSteamAnnouncementState_Request\x1a..CPlayer_GetNewSteamAnnouncementState_Response\"_\x82\xb5\x18[Calculates and returns what to display for UI that renders new steam announcement available\x12\xbc\x01\n\x1fUpdateSteamAnnouncementLastRead\x12\x30.CPlayer_UpdateSteamAnnouncementLastRead_Request\x1a\x31.CPlayer_UpdateSteamAnnouncementLastRead_Response\"4\x82\xb5\x18\x30Marks latest announcement timestamp read by user\x12\x82\x01\n\x12GetPrivacySettings\x12#.CPlayer_GetPrivacySettings_Request\x1a$.CPlayer_GetPrivacySettings_Response\"!\x82\xb5\x18\x1dGet current privacy settings.\x12\x8c\x01\n\x12GetDurationControl\x12#.CPlayer_GetDurationControl_Request\x1a$.CPlayer_GetDurationControl_Response\"+\x82\xb5\x18\'Get gameplay duration control settings.\x1a-\x82\xb5\x18)A service for accessing Steam player data2\xa6\x0b\n\x0cPlayerClient\x12\x8c\x01\n\x15NotifyLastPlayedTimes\x12%.CPlayer_LastPlayedTimes_Notification\x1a\x0b.NoResponse\"?\x82\xb5\x18;Notification from server to client of more recent play time\x12\xa4\x01\n\x1bNotifyFriendNicknameChanged\x12+.CPlayer_FriendNicknameChanged_Notification\x1a\x0b.NoResponse\"K\x82\xb5\x18GNotification from server to client that a friend\'s nickname has changed\x12\xcb\x01\n\'NotifyFriendEquippedProfileItemsChanged\x12\x37.CPlayer_FriendEquippedProfileItemsChanged_Notification\x1a\x0b.NoResponse\"Z\x82\xb5\x18VNotification from server to client that a friend\'s equipped profile items have changed\x12\xa4\x01\n\x1fNotifyNewSteamAnnouncementState\x12/.CPlayer_NewSteamAnnouncementState_Notification\x1a\x0b.NoResponse\"C\x82\xb5\x18?Notifies client of changes to steam announcement state for user\x12\xb9\x01\n!NotifyCommunityPreferencesChanged\x12\x31.CPlayer_CommunityPreferencesChanged_Notification\x1a\x0b.NoResponse\"T\x82\xb5\x18PNotification from server to client that their community preferences have changed\x12\xb2\x01\n\x1cNotifyTextFilterWordsChanged\x12,.CPlayer_TextFilterWordsChanged_Notification\x1a\x0b.NoResponse\"W\x82\xb5\x18SNotification from server to client that their text filtering dictionary has changed\x12\xaa\x01\n!NotifyPerFriendPreferencesChanged\x12\x31.CPlayer_PerFriendPreferencesChanged_Notification\x1a\x0b.NoResponse\"E\x82\xb5\x18\x41Notification from server that per-friend preferences have changed\x12\x9c\x01\n#NotifyPrivacyPrivacySettingsChanged\x12,.CPlayer_PrivacySettingsChanged_Notification\x1a\x0b.NoResponse\":\x82\xb5\x18\x36Notification from server that privacy settings changed\x1a.\x82\xb5\x18&Steam player data client notifications\xc0\xb5\x18\x02\x42\x03\x90\x01\x01')
   ,
-  dependencies=[steammessages__unified__base__pb2.DESCRIPTOR,])
+  dependencies=[steammessages__unified__base__pb2.DESCRIPTOR,enums__pb2.DESCRIPTOR,])
 
+_EPROFILECUSTOMIZATIONSTYLE = _descriptor.EnumDescriptor(
+  name='EProfileCustomizationStyle',
+  full_name='EProfileCustomizationStyle',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='k_EProfileCustomizationStyleDefault', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EProfileCustomizationStyleSelected', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EProfileCustomizationStyleRarest', index=2, number=2,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EProfileCustomizationStyleMostRecent', index=3, number=3,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EProfileCustomizationStyleRandom', index=4, number=4,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EProfileCustomizationStyleHighestRated', index=5, number=5,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=17153,
+  serialized_end=17434,
+)
+_sym_db.RegisterEnumDescriptor(_EPROFILECUSTOMIZATIONSTYLE)
+
+EProfileCustomizationStyle = enum_type_wrapper.EnumTypeWrapper(_EPROFILECUSTOMIZATIONSTYLE)
+_EAGREEMENTTYPE = _descriptor.EnumDescriptor(
+  name='EAgreementType',
+  full_name='EAgreementType',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='k_EAgreementType_Invalid', index=0, number=-1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EAgreementType_GlobalSSA', index=1, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_EAgreementType_ChinaSSA', index=2, number=1,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=17436,
+  serialized_end=17554,
+)
+_sym_db.RegisterEnumDescriptor(_EAGREEMENTTYPE)
+
+EAgreementType = enum_type_wrapper.EnumTypeWrapper(_EAGREEMENTTYPE)
 _ENOTIFICATIONSETTING = _descriptor.EnumDescriptor(
   name='ENotificationSetting',
   full_name='ENotificationSetting',
@@ -49,15 +116,59 @@ _ENOTIFICATIONSETTING = _descriptor.EnumDescriptor(
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=13489,
-  serialized_end=13622,
+  serialized_start=17557,
+  serialized_end=17690,
 )
 _sym_db.RegisterEnumDescriptor(_ENOTIFICATIONSETTING)
 
 ENotificationSetting = enum_type_wrapper.EnumTypeWrapper(_ENOTIFICATIONSETTING)
+_ETEXTFILTERSETTING = _descriptor.EnumDescriptor(
+  name='ETextFilterSetting',
+  full_name='ETextFilterSetting',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='k_ETextFilterSettingSteamLabOptedOut', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_ETextFilterSettingEnabled', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_ETextFilterSettingEnabledAllowProfanity', index=2, number=2,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='k_ETextFilterSettingDisabled', index=3, number=3,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=17693,
+  serialized_end=17869,
+)
+_sym_db.RegisterEnumDescriptor(_ETEXTFILTERSETTING)
+
+ETextFilterSetting = enum_type_wrapper.EnumTypeWrapper(_ETEXTFILTERSETTING)
+k_EProfileCustomizationStyleDefault = 0
+k_EProfileCustomizationStyleSelected = 1
+k_EProfileCustomizationStyleRarest = 2
+k_EProfileCustomizationStyleMostRecent = 3
+k_EProfileCustomizationStyleRandom = 4
+k_EProfileCustomizationStyleHighestRated = 5
+k_EAgreementType_Invalid = -1
+k_EAgreementType_GlobalSSA = 0
+k_EAgreementType_ChinaSSA = 1
 k_ENotificationSettingNotifyUseDefault = 0
 k_ENotificationSettingAlways = 1
 k_ENotificationSettingNever = 2
+k_ETextFilterSettingSteamLabOptedOut = 0
+k_ETextFilterSettingEnabled = 1
+k_ETextFilterSettingEnabledAllowProfanity = 2
+k_ETextFilterSettingDisabled = 3
 
 
 
@@ -80,8 +191,8 @@ _CPLAYER_GETMUTUALFRIENDSFORINCOMINGINVITES_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=64,
-  serialized_end=116,
+  serialized_start=77,
+  serialized_end=129,
 )
 
 
@@ -118,8 +229,8 @@ _CPLAYER_INCOMINGINVITEMUTUALFRIENDLIST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=118,
-  serialized_end=210,
+  serialized_start=131,
+  serialized_end=223,
 )
 
 
@@ -149,8 +260,8 @@ _CPLAYER_GETMUTUALFRIENDSFORINCOMINGINVITES_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=213,
-  serialized_end=353,
+  serialized_start=226,
+  serialized_end=366,
 )
 
 
@@ -196,6 +307,13 @@ _CPLAYER_GETOWNEDGAMES_REQUEST = _descriptor.Descriptor(
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=_b('\202\265\030>Some games are in the free sub, which are excluded by default.'), file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='skip_unvetted_apps', full_name='CPlayer_GetOwnedGames_Request.skip_unvetted_apps', index=5,
+      number=6, type=8, cpp_type=7, label=1,
+      has_default_value=True, default_value=True,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=_b('\202\265\030 if set, skip unvetted store apps'), file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -208,8 +326,8 @@ _CPLAYER_GETOWNEDGAMES_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=356,
-  serialized_end=849,
+  serialized_start=369,
+  serialized_end=934,
 )
 
 
@@ -302,8 +420,8 @@ _CPLAYER_GETOWNEDGAMES_RESPONSE_GAME = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=960,
-  serialized_end=1223,
+  serialized_start=1045,
+  serialized_end=1308,
 )
 
 _CPLAYER_GETOWNEDGAMES_RESPONSE = _descriptor.Descriptor(
@@ -339,8 +457,8 @@ _CPLAYER_GETOWNEDGAMES_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=852,
-  serialized_end=1223,
+  serialized_start=937,
+  serialized_end=1308,
 )
 
 
@@ -377,8 +495,8 @@ _CPLAYER_GETPLAYNEXT_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1225,
-  serialized_end=1302,
+  serialized_start=1310,
+  serialized_end=1387,
 )
 
 
@@ -415,8 +533,8 @@ _CPLAYER_GETPLAYNEXT_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1304,
-  serialized_end=1376,
+  serialized_start=1389,
+  serialized_end=1461,
 )
 
 
@@ -446,8 +564,8 @@ _CPLAYER_GETFRIENDSGAMEPLAYINFO_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1378,
-  serialized_end=1433,
+  serialized_start=1463,
+  serialized_end=1518,
 )
 
 
@@ -491,8 +609,8 @@ _CPLAYER_GETFRIENDSGAMEPLAYINFO_RESPONSE_FRIENDSGAMEPLAYINFO = _descriptor.Descr
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1964,
-  serialized_end=2058,
+  serialized_start=2049,
+  serialized_end=2143,
 )
 
 _CPLAYER_GETFRIENDSGAMEPLAYINFO_RESPONSE_OWNGAMEPLAYINFO = _descriptor.Descriptor(
@@ -549,8 +667,8 @@ _CPLAYER_GETFRIENDSGAMEPLAYINFO_RESPONSE_OWNGAMEPLAYINFO = _descriptor.Descripto
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2060,
-  serialized_end=2186,
+  serialized_start=2145,
+  serialized_end=2271,
 )
 
 _CPLAYER_GETFRIENDSGAMEPLAYINFO_RESPONSE = _descriptor.Descriptor(
@@ -614,8 +732,8 @@ _CPLAYER_GETFRIENDSGAMEPLAYINFO_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1436,
-  serialized_end=2186,
+  serialized_start=1521,
+  serialized_end=2271,
 )
 
 
@@ -652,8 +770,8 @@ _CPLAYER_GETFRIENDSAPPSACTIVITY_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2189,
-  serialized_end=2452,
+  serialized_start=2274,
+  serialized_end=2537,
 )
 
 
@@ -711,8 +829,8 @@ _CPLAYER_GETFRIENDSAPPSACTIVITY_RESPONSE_FRIENDPLAYTIME = _descriptor.Descriptor
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4016,
-  serialized_end=4544,
+  serialized_start=4101,
+  serialized_end=4629,
 )
 
 _CPLAYER_GETFRIENDSAPPSACTIVITY_RESPONSE_APPFRIENDSINFO = _descriptor.Descriptor(
@@ -755,8 +873,8 @@ _CPLAYER_GETFRIENDSAPPSACTIVITY_RESPONSE_APPFRIENDSINFO = _descriptor.Descriptor
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4547,
-  serialized_end=4922,
+  serialized_start=4632,
+  serialized_end=5007,
 )
 
 _CPLAYER_GETFRIENDSAPPSACTIVITY_RESPONSE = _descriptor.Descriptor(
@@ -841,8 +959,8 @@ _CPLAYER_GETFRIENDSAPPSACTIVITY_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2455,
-  serialized_end=4922,
+  serialized_start=2540,
+  serialized_end=5007,
 )
 
 
@@ -872,8 +990,8 @@ _CPLAYER_GETGAMEBADGELEVELS_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4924,
-  serialized_end=4975,
+  serialized_start=5009,
+  serialized_end=5060,
 )
 
 
@@ -917,8 +1035,8 @@ _CPLAYER_GETGAMEBADGELEVELS_RESPONSE_BADGE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5099,
-  serialized_end=5159,
+  serialized_start=5184,
+  serialized_end=5244,
 )
 
 _CPLAYER_GETGAMEBADGELEVELS_RESPONSE = _descriptor.Descriptor(
@@ -954,8 +1072,8 @@ _CPLAYER_GETGAMEBADGELEVELS_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4978,
-  serialized_end=5159,
+  serialized_start=5063,
+  serialized_end=5244,
 )
 
 
@@ -992,8 +1110,8 @@ _CPLAYER_GETPROFILEBACKGROUND_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5161,
-  serialized_end=5269,
+  serialized_start=5246,
+  serialized_end=5354,
 )
 
 
@@ -1082,7 +1200,21 @@ _PROFILEITEM = _descriptor.Descriptor(
       is_extension=False, extension_scope=None,
       serialized_options=_b('\202\265\030\022URL to mp4, if any'), file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='equipped_flags', full_name='ProfileItem.equipped_flags', index=11,
+      name='movie_webm_small', full_name='ProfileItem.movie_webm_small', index=11,
+      number=13, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=_b('\202\265\030\031URL to small webm, if any'), file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='movie_mp4_small', full_name='ProfileItem.movie_mp4_small', index=12,
+      number=14, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=_b('\202\265\030\030URL to small mp4, if any'), file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='equipped_flags', full_name='ProfileItem.equipped_flags', index=13,
       number=12, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
@@ -1100,8 +1232,8 @@ _PROFILEITEM = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5272,
-  serialized_end=5777,
+  serialized_start=5357,
+  serialized_end=5974,
 )
 
 
@@ -1131,8 +1263,8 @@ _CPLAYER_GETPROFILEBACKGROUND_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5779,
-  serialized_end=5860,
+  serialized_start=5976,
+  serialized_end=6057,
 )
 
 
@@ -1162,8 +1294,8 @@ _CPLAYER_SETPROFILEBACKGROUND_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5862,
-  serialized_end=5925,
+  serialized_start=6059,
+  serialized_end=6122,
 )
 
 
@@ -1186,8 +1318,8 @@ _CPLAYER_SETPROFILEBACKGROUND_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5927,
-  serialized_end=5966,
+  serialized_start=6124,
+  serialized_end=6163,
 )
 
 
@@ -1224,8 +1356,8 @@ _CPLAYER_GETMINIPROFILEBACKGROUND_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5968,
-  serialized_end=6080,
+  serialized_start=6165,
+  serialized_end=6277,
 )
 
 
@@ -1255,8 +1387,8 @@ _CPLAYER_GETMINIPROFILEBACKGROUND_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6082,
-  serialized_end=6167,
+  serialized_start=6279,
+  serialized_end=6364,
 )
 
 
@@ -1286,8 +1418,8 @@ _CPLAYER_SETMINIPROFILEBACKGROUND_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6169,
-  serialized_end=6236,
+  serialized_start=6366,
+  serialized_end=6433,
 )
 
 
@@ -1310,8 +1442,8 @@ _CPLAYER_SETMINIPROFILEBACKGROUND_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6238,
-  serialized_end=6281,
+  serialized_start=6435,
+  serialized_end=6478,
 )
 
 
@@ -1348,8 +1480,8 @@ _CPLAYER_GETAVATARFRAME_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6283,
-  serialized_end=6385,
+  serialized_start=6480,
+  serialized_end=6582,
 )
 
 
@@ -1379,8 +1511,8 @@ _CPLAYER_GETAVATARFRAME_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6387,
-  serialized_end=6456,
+  serialized_start=6584,
+  serialized_end=6653,
 )
 
 
@@ -1410,8 +1542,8 @@ _CPLAYER_SETAVATARFRAME_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6458,
-  serialized_end=6515,
+  serialized_start=6655,
+  serialized_end=6712,
 )
 
 
@@ -1434,8 +1566,8 @@ _CPLAYER_SETAVATARFRAME_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6517,
-  serialized_end=6550,
+  serialized_start=6714,
+  serialized_end=6747,
 )
 
 
@@ -1472,8 +1604,8 @@ _CPLAYER_GETANIMATEDAVATAR_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6552,
-  serialized_end=6657,
+  serialized_start=6749,
+  serialized_end=6854,
 )
 
 
@@ -1503,8 +1635,8 @@ _CPLAYER_GETANIMATEDAVATAR_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6659,
-  serialized_end=6725,
+  serialized_start=6856,
+  serialized_end=6922,
 )
 
 
@@ -1534,8 +1666,8 @@ _CPLAYER_SETANIMATEDAVATAR_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6727,
-  serialized_end=6787,
+  serialized_start=6924,
+  serialized_end=6984,
 )
 
 
@@ -1558,8 +1690,8 @@ _CPLAYER_SETANIMATEDAVATAR_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6789,
-  serialized_end=6825,
+  serialized_start=6986,
+  serialized_end=7022,
 )
 
 
@@ -1589,8 +1721,8 @@ _CPLAYER_GETPROFILEITEMSOWNED_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6827,
-  serialized_end=6883,
+  serialized_start=7024,
+  serialized_end=7080,
 )
 
 
@@ -1648,8 +1780,8 @@ _CPLAYER_GETPROFILEITEMSOWNED_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6886,
-  serialized_end=7134,
+  serialized_start=7083,
+  serialized_end=7331,
 )
 
 
@@ -1686,8 +1818,8 @@ _CPLAYER_GETPROFILEITEMSEQUIPPED_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=7136,
-  serialized_end=7212,
+  serialized_start=7333,
+  serialized_end=7409,
 )
 
 
@@ -1745,8 +1877,8 @@ _CPLAYER_GETPROFILEITEMSEQUIPPED_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=7215,
-  serialized_end=7461,
+  serialized_start=7412,
+  serialized_end=7658,
 )
 
 
@@ -1783,8 +1915,8 @@ _CPLAYER_SETEQUIPPEDPROFILEITEMFLAGS_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=7463,
-  serialized_end=7585,
+  serialized_start=7660,
+  serialized_end=7782,
 )
 
 
@@ -1807,8 +1939,8 @@ _CPLAYER_SETEQUIPPEDPROFILEITEMFLAGS_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=7587,
-  serialized_end=7633,
+  serialized_start=7784,
+  serialized_end=7830,
 )
 
 
@@ -1831,8 +1963,8 @@ _CPLAYER_GETEMOTICONLIST_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=7635,
-  serialized_end=7668,
+  serialized_start=7832,
+  serialized_end=7865,
 )
 
 
@@ -1878,6 +2010,13 @@ _CPLAYER_GETEMOTICONLIST_RESPONSE_EMOTICON = _descriptor.Descriptor(
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='appid', full_name='CPlayer_GetEmoticonList_Response.Emoticon.appid', index=5,
+      number=6, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -1890,8 +2029,8 @@ _CPLAYER_GETEMOTICONLIST_RESPONSE_EMOTICON = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=7770,
-  serialized_end=7875,
+  serialized_start=7967,
+  serialized_end=8087,
 )
 
 _CPLAYER_GETEMOTICONLIST_RESPONSE = _descriptor.Descriptor(
@@ -1920,8 +2059,8 @@ _CPLAYER_GETEMOTICONLIST_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=7671,
-  serialized_end=7875,
+  serialized_start=7868,
+  serialized_end=8087,
 )
 
 
@@ -1965,8 +2104,8 @@ _CPLAYER_GETACHIEVEMENTSPROGRESS_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=7877,
-  serialized_end=7969,
+  serialized_start=8089,
+  serialized_end=8181,
 )
 
 
@@ -2031,8 +2170,8 @@ _CPLAYER_GETACHIEVEMENTSPROGRESS_RESPONSE_ACHIEVEMENTPROGRESS = _descriptor.Desc
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8110,
-  serialized_end=8241,
+  serialized_start=8322,
+  serialized_end=8453,
 )
 
 _CPLAYER_GETACHIEVEMENTSPROGRESS_RESPONSE = _descriptor.Descriptor(
@@ -2061,56 +2200,25 @@ _CPLAYER_GETACHIEVEMENTSPROGRESS_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=7972,
-  serialized_end=8241,
+  serialized_start=8184,
+  serialized_end=8453,
 )
 
 
-_CPLAYER_POSTSTATUSTOFRIENDS_REQUEST = _descriptor.Descriptor(
-  name='CPlayer_PostStatusToFriends_Request',
-  full_name='CPlayer_PostStatusToFriends_Request',
+_CPLAYER_GETFAVORITEBADGE_REQUEST = _descriptor.Descriptor(
+  name='CPlayer_GetFavoriteBadge_Request',
+  full_name='CPlayer_GetFavoriteBadge_Request',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='appid', full_name='CPlayer_PostStatusToFriends_Request.appid', index=0,
-      number=1, type=13, cpp_type=3, label=1,
+      name='steamid', full_name='CPlayer_GetFavoriteBadge_Request.steamid', index=0,
+      number=1, type=4, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='status_text', full_name='CPlayer_PostStatusToFriends_Request.status_text', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=8243,
-  serialized_end=8316,
-)
-
-
-_CPLAYER_POSTSTATUSTOFRIENDS_RESPONSE = _descriptor.Descriptor(
-  name='CPlayer_PostStatusToFriends_Response',
-  full_name='CPlayer_PostStatusToFriends_Response',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
   ],
   extensions=[
   ],
@@ -2123,87 +2231,63 @@ _CPLAYER_POSTSTATUSTOFRIENDS_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8318,
-  serialized_end=8356,
+  serialized_start=8455,
+  serialized_end=8506,
 )
 
 
-_CPLAYER_GETPOSTEDSTATUS_REQUEST = _descriptor.Descriptor(
-  name='CPlayer_GetPostedStatus_Request',
-  full_name='CPlayer_GetPostedStatus_Request',
+_CPLAYER_GETFAVORITEBADGE_RESPONSE = _descriptor.Descriptor(
+  name='CPlayer_GetFavoriteBadge_Response',
+  full_name='CPlayer_GetFavoriteBadge_Response',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='steamid', full_name='CPlayer_GetPostedStatus_Request.steamid', index=0,
-      number=1, type=4, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
+      name='has_favorite_badge', full_name='CPlayer_GetFavoriteBadge_Response.has_favorite_badge', index=0,
+      number=1, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
-      serialized_options=_b('\202\265\030\035The player we\'re asking about'), file=DESCRIPTOR),
+      serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='postid', full_name='CPlayer_GetPostedStatus_Request.postid', index=1,
-      number=2, type=4, cpp_type=4, label=1,
+      name='badgeid', full_name='CPlayer_GetFavoriteBadge_Response.badgeid', index=1,
+      number=2, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=8358,
-  serialized_end=8459,
-)
-
-
-_CPLAYER_GETPOSTEDSTATUS_RESPONSE = _descriptor.Descriptor(
-  name='CPlayer_GetPostedStatus_Response',
-  full_name='CPlayer_GetPostedStatus_Response',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
     _descriptor.FieldDescriptor(
-      name='accountid', full_name='CPlayer_GetPostedStatus_Response.accountid', index=0,
-      number=1, type=13, cpp_type=3, label=1,
+      name='communityitemid', full_name='CPlayer_GetFavoriteBadge_Response.communityitemid', index=2,
+      number=3, type=4, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='postid', full_name='CPlayer_GetPostedStatus_Response.postid', index=1,
-      number=2, type=4, cpp_type=4, label=1,
+      name='item_type', full_name='CPlayer_GetFavoriteBadge_Response.item_type', index=3,
+      number=4, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='status_text', full_name='CPlayer_GetPostedStatus_Response.status_text', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
+      name='border_color', full_name='CPlayer_GetFavoriteBadge_Response.border_color', index=4,
+      number=5, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='deleted', full_name='CPlayer_GetPostedStatus_Response.deleted', index=3,
-      number=4, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
+      name='appid', full_name='CPlayer_GetFavoriteBadge_Response.appid', index=5,
+      number=6, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='appid', full_name='CPlayer_GetPostedStatus_Response.appid', index=4,
-      number=5, type=13, cpp_type=3, label=1,
+      name='level', full_name='CPlayer_GetFavoriteBadge_Response.level', index=6,
+      number=7, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
@@ -2220,25 +2304,32 @@ _CPLAYER_GETPOSTEDSTATUS_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8461,
-  serialized_end=8583,
+  serialized_start=8509,
+  serialized_end=8685,
 )
 
 
-_CPLAYER_DELETEPOSTEDSTATUS_REQUEST = _descriptor.Descriptor(
-  name='CPlayer_DeletePostedStatus_Request',
-  full_name='CPlayer_DeletePostedStatus_Request',
+_CPLAYER_SETFAVORITEBADGE_REQUEST = _descriptor.Descriptor(
+  name='CPlayer_SetFavoriteBadge_Request',
+  full_name='CPlayer_SetFavoriteBadge_Request',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='postid', full_name='CPlayer_DeletePostedStatus_Request.postid', index=0,
+      name='communityitemid', full_name='CPlayer_SetFavoriteBadge_Request.communityitemid', index=0,
       number=1, type=4, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='badgeid', full_name='CPlayer_SetFavoriteBadge_Request.badgeid', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -2251,14 +2342,14 @@ _CPLAYER_DELETEPOSTEDSTATUS_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8585,
-  serialized_end=8637,
+  serialized_start=8687,
+  serialized_end=8763,
 )
 
 
-_CPLAYER_DELETEPOSTEDSTATUS_RESPONSE = _descriptor.Descriptor(
-  name='CPlayer_DeletePostedStatus_Response',
-  full_name='CPlayer_DeletePostedStatus_Response',
+_CPLAYER_SETFAVORITEBADGE_RESPONSE = _descriptor.Descriptor(
+  name='CPlayer_SetFavoriteBadge_Response',
+  full_name='CPlayer_SetFavoriteBadge_Response',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
@@ -2275,25 +2366,39 @@ _CPLAYER_DELETEPOSTEDSTATUS_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8639,
-  serialized_end=8676,
+  serialized_start=8765,
+  serialized_end=8800,
 )
 
 
-_CPLAYER_GETLASTPLAYEDTIMES_REQUEST = _descriptor.Descriptor(
-  name='CPlayer_GetLastPlayedTimes_Request',
-  full_name='CPlayer_GetLastPlayedTimes_Request',
+_CPLAYER_GETPROFILECUSTOMIZATION_REQUEST = _descriptor.Descriptor(
+  name='CPlayer_GetProfileCustomization_Request',
+  full_name='CPlayer_GetProfileCustomization_Request',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='min_last_played', full_name='CPlayer_GetLastPlayedTimes_Request.min_last_played', index=0,
-      number=1, type=13, cpp_type=3, label=1,
+      name='steamid', full_name='CPlayer_GetProfileCustomization_Request.steamid', index=0,
+      number=1, type=6, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
-      serialized_options=_b('\202\265\030?The most recent last-played time the client already knows about'), file=DESCRIPTOR),
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='include_inactive_customizations', full_name='CPlayer_GetProfileCustomization_Request.include_inactive_customizations', index=1,
+      number=2, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='include_purchased_customizations', full_name='CPlayer_GetProfileCustomization_Request.include_purchased_customizations', index=2,
+      number=3, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -2306,113 +2411,106 @@ _CPLAYER_GETLASTPLAYEDTIMES_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8679,
-  serialized_end=8809,
+  serialized_start=8803,
+  serialized_end=8944,
 )
 
 
-_CPLAYER_GETLASTPLAYEDTIMES_RESPONSE_GAME = _descriptor.Descriptor(
-  name='Game',
-  full_name='CPlayer_GetLastPlayedTimes_Response.Game',
+_PROFILECUSTOMIZATIONSLOT = _descriptor.Descriptor(
+  name='ProfileCustomizationSlot',
+  full_name='ProfileCustomizationSlot',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='appid', full_name='CPlayer_GetLastPlayedTimes_Response.Game.appid', index=0,
-      number=1, type=5, cpp_type=1, label=1,
+      name='slot', full_name='ProfileCustomizationSlot.slot', index=0,
+      number=1, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='last_playtime', full_name='CPlayer_GetLastPlayedTimes_Response.Game.last_playtime', index=1,
+      name='appid', full_name='ProfileCustomizationSlot.appid', index=1,
       number=2, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='playtime_2weeks', full_name='CPlayer_GetLastPlayedTimes_Response.Game.playtime_2weeks', index=2,
-      number=3, type=5, cpp_type=1, label=1,
+      name='publishedfileid', full_name='ProfileCustomizationSlot.publishedfileid', index=2,
+      number=3, type=4, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='playtime_forever', full_name='CPlayer_GetLastPlayedTimes_Response.Game.playtime_forever', index=3,
-      number=4, type=5, cpp_type=1, label=1,
+      name='item_assetid', full_name='ProfileCustomizationSlot.item_assetid', index=3,
+      number=4, type=4, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='first_playtime', full_name='CPlayer_GetLastPlayedTimes_Response.Game.first_playtime', index=4,
-      number=5, type=13, cpp_type=3, label=1,
+      name='item_contextid', full_name='ProfileCustomizationSlot.item_contextid', index=4,
+      number=5, type=4, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='playtime_windows_forever', full_name='CPlayer_GetLastPlayedTimes_Response.Game.playtime_windows_forever', index=5,
-      number=6, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
+      name='notes', full_name='ProfileCustomizationSlot.notes', index=5,
+      number=6, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='playtime_mac_forever', full_name='CPlayer_GetLastPlayedTimes_Response.Game.playtime_mac_forever', index=6,
-      number=7, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
+      name='title', full_name='ProfileCustomizationSlot.title', index=6,
+      number=7, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='playtime_linux_forever', full_name='CPlayer_GetLastPlayedTimes_Response.Game.playtime_linux_forever', index=7,
-      number=8, type=5, cpp_type=1, label=1,
+      name='accountid', full_name='ProfileCustomizationSlot.accountid', index=7,
+      number=8, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='first_windows_playtime', full_name='CPlayer_GetLastPlayedTimes_Response.Game.first_windows_playtime', index=8,
+      name='badgeid', full_name='ProfileCustomizationSlot.badgeid', index=8,
       number=9, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='first_mac_playtime', full_name='CPlayer_GetLastPlayedTimes_Response.Game.first_mac_playtime', index=9,
+      name='border_color', full_name='ProfileCustomizationSlot.border_color', index=9,
       number=10, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='first_linux_playtime', full_name='CPlayer_GetLastPlayedTimes_Response.Game.first_linux_playtime', index=10,
-      number=11, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='last_windows_playtime', full_name='CPlayer_GetLastPlayedTimes_Response.Game.last_windows_playtime', index=11,
-      number=12, type=13, cpp_type=3, label=1,
+      name='item_classid', full_name='ProfileCustomizationSlot.item_classid', index=10,
+      number=11, type=4, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='last_mac_playtime', full_name='CPlayer_GetLastPlayedTimes_Response.Game.last_mac_playtime', index=12,
-      number=13, type=13, cpp_type=3, label=1,
+      name='item_instanceid', full_name='ProfileCustomizationSlot.item_instanceid', index=11,
+      number=12, type=4, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='last_linux_playtime', full_name='CPlayer_GetLastPlayedTimes_Response.Game.last_linux_playtime', index=13,
-      number=14, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
+      name='ban_check_result', full_name='ProfileCustomizationSlot.ban_check_result', index=12,
+      number=13, type=14, cpp_type=8, label=1,
+      has_default_value=True, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
@@ -2428,28 +2526,954 @@ _CPLAYER_GETLASTPLAYEDTIMES_RESPONSE_GAME = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8910,
-  serialized_end=9302,
+  serialized_start=8947,
+  serialized_end=9296,
 )
 
-_CPLAYER_GETLASTPLAYEDTIMES_RESPONSE = _descriptor.Descriptor(
-  name='CPlayer_GetLastPlayedTimes_Response',
-  full_name='CPlayer_GetLastPlayedTimes_Response',
+
+_PROFILECUSTOMIZATION = _descriptor.Descriptor(
+  name='ProfileCustomization',
+  full_name='ProfileCustomization',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='games', full_name='CPlayer_GetLastPlayedTimes_Response.games', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
+      name='customization_type', full_name='ProfileCustomization.customization_type', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=True, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[_CPLAYER_GETLASTPLAYEDTIMES_RESPONSE_GAME, ],
+    _descriptor.FieldDescriptor(
+      name='large', full_name='ProfileCustomization.large', index=1,
+      number=2, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='slots', full_name='ProfileCustomization.slots', index=2,
+      number=3, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='active', full_name='ProfileCustomization.active', index=3,
+      number=4, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='customization_style', full_name='ProfileCustomization.customization_style', index=4,
+      number=5, type=14, cpp_type=8, label=1,
+      has_default_value=True, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='purchaseid', full_name='ProfileCustomization.purchaseid', index=5,
+      number=6, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='level', full_name='ProfileCustomization.level', index=6,
+      number=7, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=9299,
+  serialized_end=9616,
+)
+
+
+_PROFILETHEME = _descriptor.Descriptor(
+  name='ProfileTheme',
+  full_name='ProfileTheme',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='theme_id', full_name='ProfileTheme.theme_id', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='title', full_name='ProfileTheme.title', index=1,
+      number=2, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=9618,
+  serialized_end=9665,
+)
+
+
+_CPLAYER_GETPROFILECUSTOMIZATION_RESPONSE_PURCHASEDCUSTOMIZATION = _descriptor.Descriptor(
+  name='PurchasedCustomization',
+  full_name='CPlayer_GetProfileCustomization_Response.PurchasedCustomization',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='purchaseid', full_name='CPlayer_GetProfileCustomization_Response.PurchasedCustomization.purchaseid', index=0,
+      number=1, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='customization_type', full_name='CPlayer_GetProfileCustomization_Response.PurchasedCustomization.customization_type', index=1,
+      number=2, type=14, cpp_type=8, label=1,
+      has_default_value=True, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='level', full_name='CPlayer_GetProfileCustomization_Response.PurchasedCustomization.level', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=9923,
+  serialized_end=10074,
+)
+
+_CPLAYER_GETPROFILECUSTOMIZATION_RESPONSE = _descriptor.Descriptor(
+  name='CPlayer_GetProfileCustomization_Response',
+  full_name='CPlayer_GetProfileCustomization_Response',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='customizations', full_name='CPlayer_GetProfileCustomization_Response.customizations', index=0,
+      number=1, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='slots_available', full_name='CPlayer_GetProfileCustomization_Response.slots_available', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='profile_theme', full_name='CPlayer_GetProfileCustomization_Response.profile_theme', index=2,
+      number=3, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='purchased_customizations', full_name='CPlayer_GetProfileCustomization_Response.purchased_customizations', index=3,
+      number=4, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[_CPLAYER_GETPROFILECUSTOMIZATION_RESPONSE_PURCHASEDCUSTOMIZATION, ],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=9668,
+  serialized_end=10074,
+)
+
+
+_CPLAYER_GETPURCHASEDPROFILECUSTOMIZATIONS_REQUEST = _descriptor.Descriptor(
+  name='CPlayer_GetPurchasedProfileCustomizations_Request',
+  full_name='CPlayer_GetPurchasedProfileCustomizations_Request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='steamid', full_name='CPlayer_GetPurchasedProfileCustomizations_Request.steamid', index=0,
+      number=1, type=6, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=10076,
+  serialized_end=10144,
+)
+
+
+_CPLAYER_GETPURCHASEDPROFILECUSTOMIZATIONS_RESPONSE_PURCHASEDCUSTOMIZATION = _descriptor.Descriptor(
+  name='PurchasedCustomization',
+  full_name='CPlayer_GetPurchasedProfileCustomizations_Response.PurchasedCustomization',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='purchaseid', full_name='CPlayer_GetPurchasedProfileCustomizations_Response.PurchasedCustomization.purchaseid', index=0,
+      number=1, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='customization_type', full_name='CPlayer_GetPurchasedProfileCustomizations_Response.PurchasedCustomization.customization_type', index=1,
+      number=2, type=14, cpp_type=8, label=1,
+      has_default_value=True, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=9923,
+  serialized_end=10059,
+)
+
+_CPLAYER_GETPURCHASEDPROFILECUSTOMIZATIONS_RESPONSE = _descriptor.Descriptor(
+  name='CPlayer_GetPurchasedProfileCustomizations_Response',
+  full_name='CPlayer_GetPurchasedProfileCustomizations_Response',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='purchased_customizations', full_name='CPlayer_GetPurchasedProfileCustomizations_Response.purchased_customizations', index=0,
+      number=1, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[_CPLAYER_GETPURCHASEDPROFILECUSTOMIZATIONS_RESPONSE_PURCHASEDCUSTOMIZATION, ],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=10147,
+  serialized_end=10448,
+)
+
+
+_CPLAYER_GETPURCHASEDANDUPGRADEDPROFILECUSTOMIZATIONS_REQUEST = _descriptor.Descriptor(
+  name='CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Request',
+  full_name='CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='steamid', full_name='CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Request.steamid', index=0,
+      number=1, type=6, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=10450,
+  serialized_end=10529,
+)
+
+
+_CPLAYER_GETPURCHASEDANDUPGRADEDPROFILECUSTOMIZATIONS_RESPONSE_PURCHASEDCUSTOMIZATION = _descriptor.Descriptor(
+  name='PurchasedCustomization',
+  full_name='CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response.PurchasedCustomization',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='customization_type', full_name='CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response.PurchasedCustomization.customization_type', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=True, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='count', full_name='CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response.PurchasedCustomization.count', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=10838,
+  serialized_end=10969,
+)
+
+_CPLAYER_GETPURCHASEDANDUPGRADEDPROFILECUSTOMIZATIONS_RESPONSE_UPGRADEDCUSTOMIZATION = _descriptor.Descriptor(
+  name='UpgradedCustomization',
+  full_name='CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response.UpgradedCustomization',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='customization_type', full_name='CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response.UpgradedCustomization.customization_type', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=True, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='level', full_name='CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response.UpgradedCustomization.level', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=10972,
+  serialized_end=11102,
+)
+
+_CPLAYER_GETPURCHASEDANDUPGRADEDPROFILECUSTOMIZATIONS_RESPONSE = _descriptor.Descriptor(
+  name='CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response',
+  full_name='CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='purchased_customizations', full_name='CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response.purchased_customizations', index=0,
+      number=1, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='upgraded_customizations', full_name='CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response.upgraded_customizations', index=1,
+      number=2, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[_CPLAYER_GETPURCHASEDANDUPGRADEDPROFILECUSTOMIZATIONS_RESPONSE_PURCHASEDCUSTOMIZATION, _CPLAYER_GETPURCHASEDANDUPGRADEDPROFILECUSTOMIZATIONS_RESPONSE_UPGRADEDCUSTOMIZATION, ],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=10532,
+  serialized_end=11102,
+)
+
+
+_CPLAYER_GETPROFILETHEMESAVAILABLE_REQUEST = _descriptor.Descriptor(
+  name='CPlayer_GetProfileThemesAvailable_Request',
+  full_name='CPlayer_GetProfileThemesAvailable_Request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=11104,
+  serialized_end=11147,
+)
+
+
+_CPLAYER_GETPROFILETHEMESAVAILABLE_RESPONSE = _descriptor.Descriptor(
+  name='CPlayer_GetProfileThemesAvailable_Response',
+  full_name='CPlayer_GetProfileThemesAvailable_Response',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='profile_themes', full_name='CPlayer_GetProfileThemesAvailable_Response.profile_themes', index=0,
+      number=1, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=11149,
+  serialized_end=11232,
+)
+
+
+_CPLAYER_SETPROFILETHEME_REQUEST = _descriptor.Descriptor(
+  name='CPlayer_SetProfileTheme_Request',
+  full_name='CPlayer_SetProfileTheme_Request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='theme_id', full_name='CPlayer_SetProfileTheme_Request.theme_id', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=11234,
+  serialized_end=11285,
+)
+
+
+_CPLAYER_SETPROFILETHEME_RESPONSE = _descriptor.Descriptor(
+  name='CPlayer_SetProfileTheme_Response',
+  full_name='CPlayer_SetProfileTheme_Response',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=11287,
+  serialized_end=11321,
+)
+
+
+_CPLAYER_POSTSTATUSTOFRIENDS_REQUEST = _descriptor.Descriptor(
+  name='CPlayer_PostStatusToFriends_Request',
+  full_name='CPlayer_PostStatusToFriends_Request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='appid', full_name='CPlayer_PostStatusToFriends_Request.appid', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='status_text', full_name='CPlayer_PostStatusToFriends_Request.status_text', index=1,
+      number=2, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=11323,
+  serialized_end=11396,
+)
+
+
+_CPLAYER_POSTSTATUSTOFRIENDS_RESPONSE = _descriptor.Descriptor(
+  name='CPlayer_PostStatusToFriends_Response',
+  full_name='CPlayer_PostStatusToFriends_Response',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=11398,
+  serialized_end=11436,
+)
+
+
+_CPLAYER_GETPOSTEDSTATUS_REQUEST = _descriptor.Descriptor(
+  name='CPlayer_GetPostedStatus_Request',
+  full_name='CPlayer_GetPostedStatus_Request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='steamid', full_name='CPlayer_GetPostedStatus_Request.steamid', index=0,
+      number=1, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=_b('\202\265\030\035The player we\'re asking about'), file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='postid', full_name='CPlayer_GetPostedStatus_Request.postid', index=1,
+      number=2, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=11438,
+  serialized_end=11539,
+)
+
+
+_CPLAYER_GETPOSTEDSTATUS_RESPONSE = _descriptor.Descriptor(
+  name='CPlayer_GetPostedStatus_Response',
+  full_name='CPlayer_GetPostedStatus_Response',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='accountid', full_name='CPlayer_GetPostedStatus_Response.accountid', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='postid', full_name='CPlayer_GetPostedStatus_Response.postid', index=1,
+      number=2, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='status_text', full_name='CPlayer_GetPostedStatus_Response.status_text', index=2,
+      number=3, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='deleted', full_name='CPlayer_GetPostedStatus_Response.deleted', index=3,
+      number=4, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='appid', full_name='CPlayer_GetPostedStatus_Response.appid', index=4,
+      number=5, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=11541,
+  serialized_end=11663,
+)
+
+
+_CPLAYER_DELETEPOSTEDSTATUS_REQUEST = _descriptor.Descriptor(
+  name='CPlayer_DeletePostedStatus_Request',
+  full_name='CPlayer_DeletePostedStatus_Request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='postid', full_name='CPlayer_DeletePostedStatus_Request.postid', index=0,
+      number=1, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=11665,
+  serialized_end=11717,
+)
+
+
+_CPLAYER_DELETEPOSTEDSTATUS_RESPONSE = _descriptor.Descriptor(
+  name='CPlayer_DeletePostedStatus_Response',
+  full_name='CPlayer_DeletePostedStatus_Response',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=11719,
+  serialized_end=11756,
+)
+
+
+_CPLAYER_GETLASTPLAYEDTIMES_REQUEST = _descriptor.Descriptor(
+  name='CPlayer_GetLastPlayedTimes_Request',
+  full_name='CPlayer_GetLastPlayedTimes_Request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='min_last_played', full_name='CPlayer_GetLastPlayedTimes_Request.min_last_played', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=_b('\202\265\030?The most recent last-played time the client already knows about'), file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=11759,
+  serialized_end=11889,
+)
+
+
+_CPLAYER_GETLASTPLAYEDTIMES_RESPONSE_GAME = _descriptor.Descriptor(
+  name='Game',
+  full_name='CPlayer_GetLastPlayedTimes_Response.Game',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='appid', full_name='CPlayer_GetLastPlayedTimes_Response.Game.appid', index=0,
+      number=1, type=5, cpp_type=1, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='last_playtime', full_name='CPlayer_GetLastPlayedTimes_Response.Game.last_playtime', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='playtime_2weeks', full_name='CPlayer_GetLastPlayedTimes_Response.Game.playtime_2weeks', index=2,
+      number=3, type=5, cpp_type=1, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='playtime_forever', full_name='CPlayer_GetLastPlayedTimes_Response.Game.playtime_forever', index=3,
+      number=4, type=5, cpp_type=1, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='first_playtime', full_name='CPlayer_GetLastPlayedTimes_Response.Game.first_playtime', index=4,
+      number=5, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='playtime_windows_forever', full_name='CPlayer_GetLastPlayedTimes_Response.Game.playtime_windows_forever', index=5,
+      number=6, type=5, cpp_type=1, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='playtime_mac_forever', full_name='CPlayer_GetLastPlayedTimes_Response.Game.playtime_mac_forever', index=6,
+      number=7, type=5, cpp_type=1, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='playtime_linux_forever', full_name='CPlayer_GetLastPlayedTimes_Response.Game.playtime_linux_forever', index=7,
+      number=8, type=5, cpp_type=1, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='first_windows_playtime', full_name='CPlayer_GetLastPlayedTimes_Response.Game.first_windows_playtime', index=8,
+      number=9, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='first_mac_playtime', full_name='CPlayer_GetLastPlayedTimes_Response.Game.first_mac_playtime', index=9,
+      number=10, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='first_linux_playtime', full_name='CPlayer_GetLastPlayedTimes_Response.Game.first_linux_playtime', index=10,
+      number=11, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='last_windows_playtime', full_name='CPlayer_GetLastPlayedTimes_Response.Game.last_windows_playtime', index=11,
+      number=12, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='last_mac_playtime', full_name='CPlayer_GetLastPlayedTimes_Response.Game.last_mac_playtime', index=12,
+      number=13, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='last_linux_playtime', full_name='CPlayer_GetLastPlayedTimes_Response.Game.last_linux_playtime', index=13,
+      number=14, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=11990,
+  serialized_end=12382,
+)
+
+_CPLAYER_GETLASTPLAYEDTIMES_RESPONSE = _descriptor.Descriptor(
+  name='CPlayer_GetLastPlayedTimes_Response',
+  full_name='CPlayer_GetLastPlayedTimes_Response',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='games', full_name='CPlayer_GetLastPlayedTimes_Response.games', index=0,
+      number=1, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[_CPLAYER_GETLASTPLAYEDTIMES_RESPONSE_GAME, ],
   enum_types=[
   ],
   serialized_options=None,
@@ -2458,8 +3482,8 @@ _CPLAYER_GETLASTPLAYEDTIMES_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8812,
-  serialized_end=9302,
+  serialized_start=11892,
+  serialized_end=12382,
 )
 
 
@@ -2470,6 +3494,13 @@ _CPLAYER_ACCEPTSSA_REQUEST = _descriptor.Descriptor(
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
+    _descriptor.FieldDescriptor(
+      name='agreement_type', full_name='CPlayer_AcceptSSA_Request.agreement_type', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=True, default_value=-1,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -2482,8 +3513,8 @@ _CPLAYER_ACCEPTSSA_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9304,
-  serialized_end=9331,
+  serialized_start=12384,
+  serialized_end=12478,
 )
 
 
@@ -2506,8 +3537,8 @@ _CPLAYER_ACCEPTSSA_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9333,
-  serialized_end=9361,
+  serialized_start=12480,
+  serialized_end=12508,
 )
 
 
@@ -2530,8 +3561,8 @@ _CPLAYER_GETNICKNAMELIST_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9363,
-  serialized_end=9396,
+  serialized_start=12510,
+  serialized_end=12543,
 )
 
 
@@ -2568,8 +3599,8 @@ _CPLAYER_GETNICKNAMELIST_RESPONSE_PLAYERNICKNAME = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9504,
-  serialized_end=9557,
+  serialized_start=12651,
+  serialized_end=12704,
 )
 
 _CPLAYER_GETNICKNAMELIST_RESPONSE = _descriptor.Descriptor(
@@ -2598,8 +3629,8 @@ _CPLAYER_GETNICKNAMELIST_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9399,
-  serialized_end=9557,
+  serialized_start=12546,
+  serialized_end=12704,
 )
 
 
@@ -2622,8 +3653,8 @@ _CPLAYER_GETPERFRIENDPREFERENCES_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9559,
-  serialized_end=9600,
+  serialized_start=12706,
+  serialized_end=12747,
 )
 
 
@@ -2709,8 +3740,8 @@ _PERFRIENDPREFERENCES = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9603,
-  serialized_end=10324,
+  serialized_start=12750,
+  serialized_end=13471,
 )
 
 
@@ -2740,8 +3771,8 @@ _CPLAYER_GETPERFRIENDPREFERENCES_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10326,
-  serialized_end=10412,
+  serialized_start=13473,
+  serialized_end=13559,
 )
 
 
@@ -2771,8 +3802,8 @@ _CPLAYER_SETPERFRIENDPREFERENCES_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10414,
-  serialized_end=10499,
+  serialized_start=13561,
+  serialized_end=13646,
 )
 
 
@@ -2795,8 +3826,8 @@ _CPLAYER_SETPERFRIENDPREFERENCES_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10501,
-  serialized_end=10543,
+  serialized_start=13648,
+  serialized_end=13690,
 )
 
 
@@ -2826,8 +3857,8 @@ _CPLAYER_ADDFRIEND_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10545,
-  serialized_end=10644,
+  serialized_start=13692,
+  serialized_end=13791,
 )
 
 
@@ -2871,8 +3902,8 @@ _CPLAYER_ADDFRIEND_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10647,
-  serialized_end=10909,
+  serialized_start=13794,
+  serialized_end=14056,
 )
 
 
@@ -2902,8 +3933,8 @@ _CPLAYER_REMOVEFRIEND_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10911,
-  serialized_end=10993,
+  serialized_start=14058,
+  serialized_end=14140,
 )
 
 
@@ -2933,8 +3964,8 @@ _CPLAYER_REMOVEFRIEND_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10995,
-  serialized_end=11087,
+  serialized_start=14142,
+  serialized_end=14234,
 )
 
 
@@ -2971,8 +4002,8 @@ _CPLAYER_IGNOREFRIEND_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11089,
-  serialized_end=11216,
+  serialized_start=14236,
+  serialized_end=14363,
 )
 
 
@@ -2989,7 +4020,135 @@ _CPLAYER_IGNOREFRIEND_RESPONSE = _descriptor.Descriptor(
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
-      serialized_options=_b('\202\265\030\032the resulting relationship'), file=DESCRIPTOR),
+      serialized_options=_b('\202\265\030\032the resulting relationship'), file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=14365,
+  serialized_end=14457,
+)
+
+
+_CPLAYER_GETCOMMUNITYPREFERENCES_REQUEST = _descriptor.Descriptor(
+  name='CPlayer_GetCommunityPreferences_Request',
+  full_name='CPlayer_GetCommunityPreferences_Request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=14459,
+  serialized_end=14500,
+)
+
+
+_CPLAYER_COMMUNITYPREFERENCES = _descriptor.Descriptor(
+  name='CPlayer_CommunityPreferences',
+  full_name='CPlayer_CommunityPreferences',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='hide_adult_content_violence', full_name='CPlayer_CommunityPreferences.hide_adult_content_violence', index=0,
+      number=1, type=8, cpp_type=7, label=1,
+      has_default_value=True, default_value=True,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='hide_adult_content_sex', full_name='CPlayer_CommunityPreferences.hide_adult_content_sex', index=1,
+      number=2, type=8, cpp_type=7, label=1,
+      has_default_value=True, default_value=True,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='parenthesize_nicknames', full_name='CPlayer_CommunityPreferences.parenthesize_nicknames', index=2,
+      number=4, type=8, cpp_type=7, label=1,
+      has_default_value=True, default_value=False,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='text_filter_setting', full_name='CPlayer_CommunityPreferences.text_filter_setting', index=3,
+      number=5, type=14, cpp_type=8, label=1,
+      has_default_value=True, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='text_filter_ignore_friends', full_name='CPlayer_CommunityPreferences.text_filter_ignore_friends', index=4,
+      number=6, type=8, cpp_type=7, label=1,
+      has_default_value=True, default_value=True,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='text_filter_words_revision', full_name='CPlayer_CommunityPreferences.text_filter_words_revision', index=5,
+      number=7, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='timestamp_updated', full_name='CPlayer_CommunityPreferences.timestamp_updated', index=6,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=14503,
+  serialized_end=14846,
+)
+
+
+_CPLAYER_GETCOMMUNITYPREFERENCES_RESPONSE = _descriptor.Descriptor(
+  name='CPlayer_GetCommunityPreferences_Response',
+  full_name='CPlayer_GetCommunityPreferences_Response',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='preferences', full_name='CPlayer_GetCommunityPreferences_Response.preferences', index=0,
+      number=1, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -3002,18 +4161,25 @@ _CPLAYER_IGNOREFRIEND_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11218,
-  serialized_end=11310,
+  serialized_start=14848,
+  serialized_end=14942,
 )
 
 
-_CPLAYER_GETCOMMUNITYPREFERENCES_REQUEST = _descriptor.Descriptor(
-  name='CPlayer_GetCommunityPreferences_Request',
-  full_name='CPlayer_GetCommunityPreferences_Request',
+_CPLAYER_SETCOMMUNITYPREFERENCES_REQUEST = _descriptor.Descriptor(
+  name='CPlayer_SetCommunityPreferences_Request',
+  full_name='CPlayer_SetCommunityPreferences_Request',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
+    _descriptor.FieldDescriptor(
+      name='preferences', full_name='CPlayer_SetCommunityPreferences_Request.preferences', index=0,
+      number=1, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -3026,46 +4192,18 @@ _CPLAYER_GETCOMMUNITYPREFERENCES_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11312,
-  serialized_end=11353,
+  serialized_start=14944,
+  serialized_end=15037,
 )
 
 
-_CPLAYER_COMMUNITYPREFERENCES = _descriptor.Descriptor(
-  name='CPlayer_CommunityPreferences',
-  full_name='CPlayer_CommunityPreferences',
+_CPLAYER_SETCOMMUNITYPREFERENCES_RESPONSE = _descriptor.Descriptor(
+  name='CPlayer_SetCommunityPreferences_Response',
+  full_name='CPlayer_SetCommunityPreferences_Response',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
-    _descriptor.FieldDescriptor(
-      name='hide_adult_content_violence', full_name='CPlayer_CommunityPreferences.hide_adult_content_violence', index=0,
-      number=1, type=8, cpp_type=7, label=1,
-      has_default_value=True, default_value=True,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='hide_adult_content_sex', full_name='CPlayer_CommunityPreferences.hide_adult_content_sex', index=1,
-      number=2, type=8, cpp_type=7, label=1,
-      has_default_value=True, default_value=True,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='parenthesize_nicknames', full_name='CPlayer_CommunityPreferences.parenthesize_nicknames', index=2,
-      number=4, type=8, cpp_type=7, label=1,
-      has_default_value=True, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='timestamp_updated', full_name='CPlayer_CommunityPreferences.timestamp_updated', index=3,
-      number=3, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -3078,25 +4216,18 @@ _CPLAYER_COMMUNITYPREFERENCES = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11356,
-  serialized_end=11533,
+  serialized_start=15039,
+  serialized_end=15081,
 )
 
 
-_CPLAYER_GETCOMMUNITYPREFERENCES_RESPONSE = _descriptor.Descriptor(
-  name='CPlayer_GetCommunityPreferences_Response',
-  full_name='CPlayer_GetCommunityPreferences_Response',
+_CPLAYER_GETTEXTFILTERWORDS_REQUEST = _descriptor.Descriptor(
+  name='CPlayer_GetTextFilterWords_Request',
+  full_name='CPlayer_GetTextFilterWords_Request',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
-    _descriptor.FieldDescriptor(
-      name='preferences', full_name='CPlayer_GetCommunityPreferences_Response.preferences', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -3109,22 +4240,36 @@ _CPLAYER_GETCOMMUNITYPREFERENCES_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11535,
-  serialized_end=11629,
+  serialized_start=15083,
+  serialized_end=15119,
 )
 
 
-_CPLAYER_SETCOMMUNITYPREFERENCES_REQUEST = _descriptor.Descriptor(
-  name='CPlayer_SetCommunityPreferences_Request',
-  full_name='CPlayer_SetCommunityPreferences_Request',
+_CPLAYER_TEXTFILTERWORDS = _descriptor.Descriptor(
+  name='CPlayer_TextFilterWords',
+  full_name='CPlayer_TextFilterWords',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='preferences', full_name='CPlayer_SetCommunityPreferences_Request.preferences', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
+      name='text_filter_custom_banned_words', full_name='CPlayer_TextFilterWords.text_filter_custom_banned_words', index=0,
+      number=1, type=9, cpp_type=9, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='text_filter_custom_clean_words', full_name='CPlayer_TextFilterWords.text_filter_custom_clean_words', index=1,
+      number=2, type=9, cpp_type=9, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='text_filter_words_revision', full_name='CPlayer_TextFilterWords.text_filter_words_revision', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
@@ -3140,18 +4285,25 @@ _CPLAYER_SETCOMMUNITYPREFERENCES_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11631,
-  serialized_end=11724,
+  serialized_start=15122,
+  serialized_end=15264,
 )
 
 
-_CPLAYER_SETCOMMUNITYPREFERENCES_RESPONSE = _descriptor.Descriptor(
-  name='CPlayer_SetCommunityPreferences_Response',
-  full_name='CPlayer_SetCommunityPreferences_Response',
+_CPLAYER_GETTEXTFILTERWORDS_RESPONSE = _descriptor.Descriptor(
+  name='CPlayer_GetTextFilterWords_Response',
+  full_name='CPlayer_GetTextFilterWords_Response',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
+    _descriptor.FieldDescriptor(
+      name='words', full_name='CPlayer_GetTextFilterWords_Response.words', index=0,
+      number=1, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -3164,8 +4316,8 @@ _CPLAYER_SETCOMMUNITYPREFERENCES_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11726,
-  serialized_end=11768,
+  serialized_start=15266,
+  serialized_end=15344,
 )
 
 
@@ -3195,8 +4347,8 @@ _CPLAYER_GETNEWSTEAMANNOUNCEMENTSTATE_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11770,
-  serialized_end=11834,
+  serialized_start=15346,
+  serialized_end=15410,
 )
 
 
@@ -3254,8 +4406,8 @@ _CPLAYER_GETNEWSTEAMANNOUNCEMENTSTATE_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11837,
-  serialized_end=12003,
+  serialized_start=15413,
+  serialized_end=15579,
 )
 
 
@@ -3292,8 +4444,8 @@ _CPLAYER_UPDATESTEAMANNOUNCEMENTLASTREAD_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12005,
-  serialized_end=12101,
+  serialized_start=15581,
+  serialized_end=15677,
 )
 
 
@@ -3316,8 +4468,8 @@ _CPLAYER_UPDATESTEAMANNOUNCEMENTLASTREAD_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12103,
-  serialized_end=12153,
+  serialized_start=15679,
+  serialized_end=15729,
 )
 
 
@@ -3340,8 +4492,8 @@ _CPLAYER_GETPRIVACYSETTINGS_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12155,
-  serialized_end=12191,
+  serialized_start=15731,
+  serialized_end=15767,
 )
 
 
@@ -3406,8 +4558,8 @@ _CPRIVACYSETTINGS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12194,
-  serialized_end=12398,
+  serialized_start=15770,
+  serialized_end=15974,
 )
 
 
@@ -3437,8 +4589,8 @@ _CPLAYER_GETPRIVACYSETTINGS_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12400,
-  serialized_end=12482,
+  serialized_start=15976,
+  serialized_end=16058,
 )
 
 
@@ -3468,8 +4620,8 @@ _CPLAYER_GETDURATIONCONTROL_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12484,
-  serialized_end=12535,
+  serialized_start=16060,
+  serialized_end=16111,
 )
 
 
@@ -3534,8 +4686,8 @@ _CPLAYER_GETDURATIONCONTROL_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12538,
-  serialized_end=12722,
+  serialized_start=16114,
+  serialized_end=16298,
 )
 
 
@@ -3565,8 +4717,8 @@ _CPLAYER_LASTPLAYEDTIMES_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12724,
-  serialized_end=12820,
+  serialized_start=16300,
+  serialized_end=16396,
 )
 
 
@@ -3610,8 +4762,8 @@ _CPLAYER_FRIENDNICKNAMECHANGED_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12822,
-  serialized_end=12928,
+  serialized_start=16398,
+  serialized_end=16504,
 )
 
 
@@ -3641,8 +4793,8 @@ _CPLAYER_FRIENDEQUIPPEDPROFILEITEMSCHANGED_NOTIFICATION = _descriptor.Descriptor
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12930,
-  serialized_end=13005,
+  serialized_start=16506,
+  serialized_end=16581,
 )
 
 
@@ -3700,8 +4852,8 @@ _CPLAYER_NEWSTEAMANNOUNCEMENTSTATE_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=13008,
-  serialized_end=13175,
+  serialized_start=16584,
+  serialized_end=16751,
 )
 
 
@@ -3731,8 +4883,39 @@ _CPLAYER_COMMUNITYPREFERENCESCHANGED_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=13177,
-  serialized_end=13279,
+  serialized_start=16753,
+  serialized_end=16855,
+)
+
+
+_CPLAYER_TEXTFILTERWORDSCHANGED_NOTIFICATION = _descriptor.Descriptor(
+  name='CPlayer_TextFilterWordsChanged_Notification',
+  full_name='CPlayer_TextFilterWordsChanged_Notification',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='words', full_name='CPlayer_TextFilterWordsChanged_Notification.words', index=0,
+      number=1, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=16857,
+  serialized_end=16943,
 )
 
 
@@ -3769,8 +4952,8 @@ _CPLAYER_PERFRIENDPREFERENCESCHANGED_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=13281,
-  serialized_end=13394,
+  serialized_start=16945,
+  serialized_end=17058,
 )
 
 
@@ -3800,8 +4983,8 @@ _CPLAYER_PRIVACYSETTINGSCHANGED_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=13396,
-  serialized_end=13486,
+  serialized_start=17060,
+  serialized_end=17150,
 )
 
 _CPLAYER_GETMUTUALFRIENDSFORINCOMINGINVITES_RESPONSE.fields_by_name['incoming_invite_mutual_friends_lists'].message_type = _CPLAYER_INCOMINGINVITEMUTUALFRIENDLIST
@@ -3846,8 +5029,28 @@ _CPLAYER_GETEMOTICONLIST_RESPONSE_EMOTICON.containing_type = _CPLAYER_GETEMOTICO
 _CPLAYER_GETEMOTICONLIST_RESPONSE.fields_by_name['emoticons'].message_type = _CPLAYER_GETEMOTICONLIST_RESPONSE_EMOTICON
 _CPLAYER_GETACHIEVEMENTSPROGRESS_RESPONSE_ACHIEVEMENTPROGRESS.containing_type = _CPLAYER_GETACHIEVEMENTSPROGRESS_RESPONSE
 _CPLAYER_GETACHIEVEMENTSPROGRESS_RESPONSE.fields_by_name['achievement_progress'].message_type = _CPLAYER_GETACHIEVEMENTSPROGRESS_RESPONSE_ACHIEVEMENTPROGRESS
+_PROFILECUSTOMIZATIONSLOT.fields_by_name['ban_check_result'].enum_type = enums__pb2._EBANCONTENTCHECKRESULT
+_PROFILECUSTOMIZATION.fields_by_name['customization_type'].enum_type = enums__pb2._EPROFILECUSTOMIZATIONTYPE
+_PROFILECUSTOMIZATION.fields_by_name['slots'].message_type = _PROFILECUSTOMIZATIONSLOT
+_PROFILECUSTOMIZATION.fields_by_name['customization_style'].enum_type = _EPROFILECUSTOMIZATIONSTYLE
+_CPLAYER_GETPROFILECUSTOMIZATION_RESPONSE_PURCHASEDCUSTOMIZATION.fields_by_name['customization_type'].enum_type = enums__pb2._EPROFILECUSTOMIZATIONTYPE
+_CPLAYER_GETPROFILECUSTOMIZATION_RESPONSE_PURCHASEDCUSTOMIZATION.containing_type = _CPLAYER_GETPROFILECUSTOMIZATION_RESPONSE
+_CPLAYER_GETPROFILECUSTOMIZATION_RESPONSE.fields_by_name['customizations'].message_type = _PROFILECUSTOMIZATION
+_CPLAYER_GETPROFILECUSTOMIZATION_RESPONSE.fields_by_name['profile_theme'].message_type = _PROFILETHEME
+_CPLAYER_GETPROFILECUSTOMIZATION_RESPONSE.fields_by_name['purchased_customizations'].message_type = _CPLAYER_GETPROFILECUSTOMIZATION_RESPONSE_PURCHASEDCUSTOMIZATION
+_CPLAYER_GETPURCHASEDPROFILECUSTOMIZATIONS_RESPONSE_PURCHASEDCUSTOMIZATION.fields_by_name['customization_type'].enum_type = enums__pb2._EPROFILECUSTOMIZATIONTYPE
+_CPLAYER_GETPURCHASEDPROFILECUSTOMIZATIONS_RESPONSE_PURCHASEDCUSTOMIZATION.containing_type = _CPLAYER_GETPURCHASEDPROFILECUSTOMIZATIONS_RESPONSE
+_CPLAYER_GETPURCHASEDPROFILECUSTOMIZATIONS_RESPONSE.fields_by_name['purchased_customizations'].message_type = _CPLAYER_GETPURCHASEDPROFILECUSTOMIZATIONS_RESPONSE_PURCHASEDCUSTOMIZATION
+_CPLAYER_GETPURCHASEDANDUPGRADEDPROFILECUSTOMIZATIONS_RESPONSE_PURCHASEDCUSTOMIZATION.fields_by_name['customization_type'].enum_type = enums__pb2._EPROFILECUSTOMIZATIONTYPE
+_CPLAYER_GETPURCHASEDANDUPGRADEDPROFILECUSTOMIZATIONS_RESPONSE_PURCHASEDCUSTOMIZATION.containing_type = _CPLAYER_GETPURCHASEDANDUPGRADEDPROFILECUSTOMIZATIONS_RESPONSE
+_CPLAYER_GETPURCHASEDANDUPGRADEDPROFILECUSTOMIZATIONS_RESPONSE_UPGRADEDCUSTOMIZATION.fields_by_name['customization_type'].enum_type = enums__pb2._EPROFILECUSTOMIZATIONTYPE
+_CPLAYER_GETPURCHASEDANDUPGRADEDPROFILECUSTOMIZATIONS_RESPONSE_UPGRADEDCUSTOMIZATION.containing_type = _CPLAYER_GETPURCHASEDANDUPGRADEDPROFILECUSTOMIZATIONS_RESPONSE
+_CPLAYER_GETPURCHASEDANDUPGRADEDPROFILECUSTOMIZATIONS_RESPONSE.fields_by_name['purchased_customizations'].message_type = _CPLAYER_GETPURCHASEDANDUPGRADEDPROFILECUSTOMIZATIONS_RESPONSE_PURCHASEDCUSTOMIZATION
+_CPLAYER_GETPURCHASEDANDUPGRADEDPROFILECUSTOMIZATIONS_RESPONSE.fields_by_name['upgraded_customizations'].message_type = _CPLAYER_GETPURCHASEDANDUPGRADEDPROFILECUSTOMIZATIONS_RESPONSE_UPGRADEDCUSTOMIZATION
+_CPLAYER_GETPROFILETHEMESAVAILABLE_RESPONSE.fields_by_name['profile_themes'].message_type = _PROFILETHEME
 _CPLAYER_GETLASTPLAYEDTIMES_RESPONSE_GAME.containing_type = _CPLAYER_GETLASTPLAYEDTIMES_RESPONSE
 _CPLAYER_GETLASTPLAYEDTIMES_RESPONSE.fields_by_name['games'].message_type = _CPLAYER_GETLASTPLAYEDTIMES_RESPONSE_GAME
+_CPLAYER_ACCEPTSSA_REQUEST.fields_by_name['agreement_type'].enum_type = _EAGREEMENTTYPE
 _CPLAYER_GETNICKNAMELIST_RESPONSE_PLAYERNICKNAME.containing_type = _CPLAYER_GETNICKNAMELIST_RESPONSE
 _CPLAYER_GETNICKNAMELIST_RESPONSE.fields_by_name['nicknames'].message_type = _CPLAYER_GETNICKNAMELIST_RESPONSE_PLAYERNICKNAME
 _PERFRIENDPREFERENCES.fields_by_name['notifications_showingame'].enum_type = _ENOTIFICATIONSETTING
@@ -3859,11 +5062,14 @@ _PERFRIENDPREFERENCES.fields_by_name['sounds_showmessages'].enum_type = _ENOTIFI
 _PERFRIENDPREFERENCES.fields_by_name['notifications_sendmobile'].enum_type = _ENOTIFICATIONSETTING
 _CPLAYER_GETPERFRIENDPREFERENCES_RESPONSE.fields_by_name['preferences'].message_type = _PERFRIENDPREFERENCES
 _CPLAYER_SETPERFRIENDPREFERENCES_REQUEST.fields_by_name['preferences'].message_type = _PERFRIENDPREFERENCES
+_CPLAYER_COMMUNITYPREFERENCES.fields_by_name['text_filter_setting'].enum_type = _ETEXTFILTERSETTING
 _CPLAYER_GETCOMMUNITYPREFERENCES_RESPONSE.fields_by_name['preferences'].message_type = _CPLAYER_COMMUNITYPREFERENCES
 _CPLAYER_SETCOMMUNITYPREFERENCES_REQUEST.fields_by_name['preferences'].message_type = _CPLAYER_COMMUNITYPREFERENCES
+_CPLAYER_GETTEXTFILTERWORDS_RESPONSE.fields_by_name['words'].message_type = _CPLAYER_TEXTFILTERWORDS
 _CPLAYER_GETPRIVACYSETTINGS_RESPONSE.fields_by_name['privacy_settings'].message_type = _CPRIVACYSETTINGS
 _CPLAYER_LASTPLAYEDTIMES_NOTIFICATION.fields_by_name['games'].message_type = _CPLAYER_GETLASTPLAYEDTIMES_RESPONSE_GAME
 _CPLAYER_COMMUNITYPREFERENCESCHANGED_NOTIFICATION.fields_by_name['preferences'].message_type = _CPLAYER_COMMUNITYPREFERENCES
+_CPLAYER_TEXTFILTERWORDSCHANGED_NOTIFICATION.fields_by_name['words'].message_type = _CPLAYER_TEXTFILTERWORDS
 _CPLAYER_PERFRIENDPREFERENCESCHANGED_NOTIFICATION.fields_by_name['preferences'].message_type = _PERFRIENDPREFERENCES
 _CPLAYER_PRIVACYSETTINGSCHANGED_NOTIFICATION.fields_by_name['privacy_settings'].message_type = _CPRIVACYSETTINGS
 DESCRIPTOR.message_types_by_name['CPlayer_GetMutualFriendsForIncomingInvites_Request'] = _CPLAYER_GETMUTUALFRIENDSFORINCOMINGINVITES_REQUEST
@@ -3906,6 +5112,23 @@ DESCRIPTOR.message_types_by_name['CPlayer_GetEmoticonList_Request'] = _CPLAYER_G
 DESCRIPTOR.message_types_by_name['CPlayer_GetEmoticonList_Response'] = _CPLAYER_GETEMOTICONLIST_RESPONSE
 DESCRIPTOR.message_types_by_name['CPlayer_GetAchievementsProgress_Request'] = _CPLAYER_GETACHIEVEMENTSPROGRESS_REQUEST
 DESCRIPTOR.message_types_by_name['CPlayer_GetAchievementsProgress_Response'] = _CPLAYER_GETACHIEVEMENTSPROGRESS_RESPONSE
+DESCRIPTOR.message_types_by_name['CPlayer_GetFavoriteBadge_Request'] = _CPLAYER_GETFAVORITEBADGE_REQUEST
+DESCRIPTOR.message_types_by_name['CPlayer_GetFavoriteBadge_Response'] = _CPLAYER_GETFAVORITEBADGE_RESPONSE
+DESCRIPTOR.message_types_by_name['CPlayer_SetFavoriteBadge_Request'] = _CPLAYER_SETFAVORITEBADGE_REQUEST
+DESCRIPTOR.message_types_by_name['CPlayer_SetFavoriteBadge_Response'] = _CPLAYER_SETFAVORITEBADGE_RESPONSE
+DESCRIPTOR.message_types_by_name['CPlayer_GetProfileCustomization_Request'] = _CPLAYER_GETPROFILECUSTOMIZATION_REQUEST
+DESCRIPTOR.message_types_by_name['ProfileCustomizationSlot'] = _PROFILECUSTOMIZATIONSLOT
+DESCRIPTOR.message_types_by_name['ProfileCustomization'] = _PROFILECUSTOMIZATION
+DESCRIPTOR.message_types_by_name['ProfileTheme'] = _PROFILETHEME
+DESCRIPTOR.message_types_by_name['CPlayer_GetProfileCustomization_Response'] = _CPLAYER_GETPROFILECUSTOMIZATION_RESPONSE
+DESCRIPTOR.message_types_by_name['CPlayer_GetPurchasedProfileCustomizations_Request'] = _CPLAYER_GETPURCHASEDPROFILECUSTOMIZATIONS_REQUEST
+DESCRIPTOR.message_types_by_name['CPlayer_GetPurchasedProfileCustomizations_Response'] = _CPLAYER_GETPURCHASEDPROFILECUSTOMIZATIONS_RESPONSE
+DESCRIPTOR.message_types_by_name['CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Request'] = _CPLAYER_GETPURCHASEDANDUPGRADEDPROFILECUSTOMIZATIONS_REQUEST
+DESCRIPTOR.message_types_by_name['CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response'] = _CPLAYER_GETPURCHASEDANDUPGRADEDPROFILECUSTOMIZATIONS_RESPONSE
+DESCRIPTOR.message_types_by_name['CPlayer_GetProfileThemesAvailable_Request'] = _CPLAYER_GETPROFILETHEMESAVAILABLE_REQUEST
+DESCRIPTOR.message_types_by_name['CPlayer_GetProfileThemesAvailable_Response'] = _CPLAYER_GETPROFILETHEMESAVAILABLE_RESPONSE
+DESCRIPTOR.message_types_by_name['CPlayer_SetProfileTheme_Request'] = _CPLAYER_SETPROFILETHEME_REQUEST
+DESCRIPTOR.message_types_by_name['CPlayer_SetProfileTheme_Response'] = _CPLAYER_SETPROFILETHEME_RESPONSE
 DESCRIPTOR.message_types_by_name['CPlayer_PostStatusToFriends_Request'] = _CPLAYER_POSTSTATUSTOFRIENDS_REQUEST
 DESCRIPTOR.message_types_by_name['CPlayer_PostStatusToFriends_Response'] = _CPLAYER_POSTSTATUSTOFRIENDS_RESPONSE
 DESCRIPTOR.message_types_by_name['CPlayer_GetPostedStatus_Request'] = _CPLAYER_GETPOSTEDSTATUS_REQUEST
@@ -3934,6 +5157,9 @@ DESCRIPTOR.message_types_by_name['CPlayer_CommunityPreferences'] = _CPLAYER_COMM
 DESCRIPTOR.message_types_by_name['CPlayer_GetCommunityPreferences_Response'] = _CPLAYER_GETCOMMUNITYPREFERENCES_RESPONSE
 DESCRIPTOR.message_types_by_name['CPlayer_SetCommunityPreferences_Request'] = _CPLAYER_SETCOMMUNITYPREFERENCES_REQUEST
 DESCRIPTOR.message_types_by_name['CPlayer_SetCommunityPreferences_Response'] = _CPLAYER_SETCOMMUNITYPREFERENCES_RESPONSE
+DESCRIPTOR.message_types_by_name['CPlayer_GetTextFilterWords_Request'] = _CPLAYER_GETTEXTFILTERWORDS_REQUEST
+DESCRIPTOR.message_types_by_name['CPlayer_TextFilterWords'] = _CPLAYER_TEXTFILTERWORDS
+DESCRIPTOR.message_types_by_name['CPlayer_GetTextFilterWords_Response'] = _CPLAYER_GETTEXTFILTERWORDS_RESPONSE
 DESCRIPTOR.message_types_by_name['CPlayer_GetNewSteamAnnouncementState_Request'] = _CPLAYER_GETNEWSTEAMANNOUNCEMENTSTATE_REQUEST
 DESCRIPTOR.message_types_by_name['CPlayer_GetNewSteamAnnouncementState_Response'] = _CPLAYER_GETNEWSTEAMANNOUNCEMENTSTATE_RESPONSE
 DESCRIPTOR.message_types_by_name['CPlayer_UpdateSteamAnnouncementLastRead_Request'] = _CPLAYER_UPDATESTEAMANNOUNCEMENTLASTREAD_REQUEST
@@ -3948,9 +5174,13 @@ DESCRIPTOR.message_types_by_name['CPlayer_FriendNicknameChanged_Notification'] =
 DESCRIPTOR.message_types_by_name['CPlayer_FriendEquippedProfileItemsChanged_Notification'] = _CPLAYER_FRIENDEQUIPPEDPROFILEITEMSCHANGED_NOTIFICATION
 DESCRIPTOR.message_types_by_name['CPlayer_NewSteamAnnouncementState_Notification'] = _CPLAYER_NEWSTEAMANNOUNCEMENTSTATE_NOTIFICATION
 DESCRIPTOR.message_types_by_name['CPlayer_CommunityPreferencesChanged_Notification'] = _CPLAYER_COMMUNITYPREFERENCESCHANGED_NOTIFICATION
+DESCRIPTOR.message_types_by_name['CPlayer_TextFilterWordsChanged_Notification'] = _CPLAYER_TEXTFILTERWORDSCHANGED_NOTIFICATION
 DESCRIPTOR.message_types_by_name['CPlayer_PerFriendPreferencesChanged_Notification'] = _CPLAYER_PERFRIENDPREFERENCESCHANGED_NOTIFICATION
 DESCRIPTOR.message_types_by_name['CPlayer_PrivacySettingsChanged_Notification'] = _CPLAYER_PRIVACYSETTINGSCHANGED_NOTIFICATION
+DESCRIPTOR.enum_types_by_name['EProfileCustomizationStyle'] = _EPROFILECUSTOMIZATIONSTYLE
+DESCRIPTOR.enum_types_by_name['EAgreementType'] = _EAGREEMENTTYPE
 DESCRIPTOR.enum_types_by_name['ENotificationSetting'] = _ENOTIFICATIONSETTING
+DESCRIPTOR.enum_types_by_name['ETextFilterSetting'] = _ETEXTFILTERSETTING
 _sym_db.RegisterFileDescriptor(DESCRIPTOR)
 
 CPlayer_GetMutualFriendsForIncomingInvites_Request = _reflection.GeneratedProtocolMessageType('CPlayer_GetMutualFriendsForIncomingInvites_Request', (_message.Message,), dict(
@@ -4297,6 +5527,157 @@ CPlayer_GetAchievementsProgress_Response = _reflection.GeneratedProtocolMessageT
 _sym_db.RegisterMessage(CPlayer_GetAchievementsProgress_Response)
 _sym_db.RegisterMessage(CPlayer_GetAchievementsProgress_Response.AchievementProgress)
 
+CPlayer_GetFavoriteBadge_Request = _reflection.GeneratedProtocolMessageType('CPlayer_GetFavoriteBadge_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CPLAYER_GETFAVORITEBADGE_REQUEST,
+  __module__ = 'steammessages_player_pb2'
+  # @@protoc_insertion_point(class_scope:CPlayer_GetFavoriteBadge_Request)
+  ))
+_sym_db.RegisterMessage(CPlayer_GetFavoriteBadge_Request)
+
+CPlayer_GetFavoriteBadge_Response = _reflection.GeneratedProtocolMessageType('CPlayer_GetFavoriteBadge_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CPLAYER_GETFAVORITEBADGE_RESPONSE,
+  __module__ = 'steammessages_player_pb2'
+  # @@protoc_insertion_point(class_scope:CPlayer_GetFavoriteBadge_Response)
+  ))
+_sym_db.RegisterMessage(CPlayer_GetFavoriteBadge_Response)
+
+CPlayer_SetFavoriteBadge_Request = _reflection.GeneratedProtocolMessageType('CPlayer_SetFavoriteBadge_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CPLAYER_SETFAVORITEBADGE_REQUEST,
+  __module__ = 'steammessages_player_pb2'
+  # @@protoc_insertion_point(class_scope:CPlayer_SetFavoriteBadge_Request)
+  ))
+_sym_db.RegisterMessage(CPlayer_SetFavoriteBadge_Request)
+
+CPlayer_SetFavoriteBadge_Response = _reflection.GeneratedProtocolMessageType('CPlayer_SetFavoriteBadge_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CPLAYER_SETFAVORITEBADGE_RESPONSE,
+  __module__ = 'steammessages_player_pb2'
+  # @@protoc_insertion_point(class_scope:CPlayer_SetFavoriteBadge_Response)
+  ))
+_sym_db.RegisterMessage(CPlayer_SetFavoriteBadge_Response)
+
+CPlayer_GetProfileCustomization_Request = _reflection.GeneratedProtocolMessageType('CPlayer_GetProfileCustomization_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CPLAYER_GETPROFILECUSTOMIZATION_REQUEST,
+  __module__ = 'steammessages_player_pb2'
+  # @@protoc_insertion_point(class_scope:CPlayer_GetProfileCustomization_Request)
+  ))
+_sym_db.RegisterMessage(CPlayer_GetProfileCustomization_Request)
+
+ProfileCustomizationSlot = _reflection.GeneratedProtocolMessageType('ProfileCustomizationSlot', (_message.Message,), dict(
+  DESCRIPTOR = _PROFILECUSTOMIZATIONSLOT,
+  __module__ = 'steammessages_player_pb2'
+  # @@protoc_insertion_point(class_scope:ProfileCustomizationSlot)
+  ))
+_sym_db.RegisterMessage(ProfileCustomizationSlot)
+
+ProfileCustomization = _reflection.GeneratedProtocolMessageType('ProfileCustomization', (_message.Message,), dict(
+  DESCRIPTOR = _PROFILECUSTOMIZATION,
+  __module__ = 'steammessages_player_pb2'
+  # @@protoc_insertion_point(class_scope:ProfileCustomization)
+  ))
+_sym_db.RegisterMessage(ProfileCustomization)
+
+ProfileTheme = _reflection.GeneratedProtocolMessageType('ProfileTheme', (_message.Message,), dict(
+  DESCRIPTOR = _PROFILETHEME,
+  __module__ = 'steammessages_player_pb2'
+  # @@protoc_insertion_point(class_scope:ProfileTheme)
+  ))
+_sym_db.RegisterMessage(ProfileTheme)
+
+CPlayer_GetProfileCustomization_Response = _reflection.GeneratedProtocolMessageType('CPlayer_GetProfileCustomization_Response', (_message.Message,), dict(
+
+  PurchasedCustomization = _reflection.GeneratedProtocolMessageType('PurchasedCustomization', (_message.Message,), dict(
+    DESCRIPTOR = _CPLAYER_GETPROFILECUSTOMIZATION_RESPONSE_PURCHASEDCUSTOMIZATION,
+    __module__ = 'steammessages_player_pb2'
+    # @@protoc_insertion_point(class_scope:CPlayer_GetProfileCustomization_Response.PurchasedCustomization)
+    ))
+  ,
+  DESCRIPTOR = _CPLAYER_GETPROFILECUSTOMIZATION_RESPONSE,
+  __module__ = 'steammessages_player_pb2'
+  # @@protoc_insertion_point(class_scope:CPlayer_GetProfileCustomization_Response)
+  ))
+_sym_db.RegisterMessage(CPlayer_GetProfileCustomization_Response)
+_sym_db.RegisterMessage(CPlayer_GetProfileCustomization_Response.PurchasedCustomization)
+
+CPlayer_GetPurchasedProfileCustomizations_Request = _reflection.GeneratedProtocolMessageType('CPlayer_GetPurchasedProfileCustomizations_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CPLAYER_GETPURCHASEDPROFILECUSTOMIZATIONS_REQUEST,
+  __module__ = 'steammessages_player_pb2'
+  # @@protoc_insertion_point(class_scope:CPlayer_GetPurchasedProfileCustomizations_Request)
+  ))
+_sym_db.RegisterMessage(CPlayer_GetPurchasedProfileCustomizations_Request)
+
+CPlayer_GetPurchasedProfileCustomizations_Response = _reflection.GeneratedProtocolMessageType('CPlayer_GetPurchasedProfileCustomizations_Response', (_message.Message,), dict(
+
+  PurchasedCustomization = _reflection.GeneratedProtocolMessageType('PurchasedCustomization', (_message.Message,), dict(
+    DESCRIPTOR = _CPLAYER_GETPURCHASEDPROFILECUSTOMIZATIONS_RESPONSE_PURCHASEDCUSTOMIZATION,
+    __module__ = 'steammessages_player_pb2'
+    # @@protoc_insertion_point(class_scope:CPlayer_GetPurchasedProfileCustomizations_Response.PurchasedCustomization)
+    ))
+  ,
+  DESCRIPTOR = _CPLAYER_GETPURCHASEDPROFILECUSTOMIZATIONS_RESPONSE,
+  __module__ = 'steammessages_player_pb2'
+  # @@protoc_insertion_point(class_scope:CPlayer_GetPurchasedProfileCustomizations_Response)
+  ))
+_sym_db.RegisterMessage(CPlayer_GetPurchasedProfileCustomizations_Response)
+_sym_db.RegisterMessage(CPlayer_GetPurchasedProfileCustomizations_Response.PurchasedCustomization)
+
+CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Request = _reflection.GeneratedProtocolMessageType('CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CPLAYER_GETPURCHASEDANDUPGRADEDPROFILECUSTOMIZATIONS_REQUEST,
+  __module__ = 'steammessages_player_pb2'
+  # @@protoc_insertion_point(class_scope:CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Request)
+  ))
+_sym_db.RegisterMessage(CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Request)
+
+CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response = _reflection.GeneratedProtocolMessageType('CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response', (_message.Message,), dict(
+
+  PurchasedCustomization = _reflection.GeneratedProtocolMessageType('PurchasedCustomization', (_message.Message,), dict(
+    DESCRIPTOR = _CPLAYER_GETPURCHASEDANDUPGRADEDPROFILECUSTOMIZATIONS_RESPONSE_PURCHASEDCUSTOMIZATION,
+    __module__ = 'steammessages_player_pb2'
+    # @@protoc_insertion_point(class_scope:CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response.PurchasedCustomization)
+    ))
+  ,
+
+  UpgradedCustomization = _reflection.GeneratedProtocolMessageType('UpgradedCustomization', (_message.Message,), dict(
+    DESCRIPTOR = _CPLAYER_GETPURCHASEDANDUPGRADEDPROFILECUSTOMIZATIONS_RESPONSE_UPGRADEDCUSTOMIZATION,
+    __module__ = 'steammessages_player_pb2'
+    # @@protoc_insertion_point(class_scope:CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response.UpgradedCustomization)
+    ))
+  ,
+  DESCRIPTOR = _CPLAYER_GETPURCHASEDANDUPGRADEDPROFILECUSTOMIZATIONS_RESPONSE,
+  __module__ = 'steammessages_player_pb2'
+  # @@protoc_insertion_point(class_scope:CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response)
+  ))
+_sym_db.RegisterMessage(CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response)
+_sym_db.RegisterMessage(CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response.PurchasedCustomization)
+_sym_db.RegisterMessage(CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response.UpgradedCustomization)
+
+CPlayer_GetProfileThemesAvailable_Request = _reflection.GeneratedProtocolMessageType('CPlayer_GetProfileThemesAvailable_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CPLAYER_GETPROFILETHEMESAVAILABLE_REQUEST,
+  __module__ = 'steammessages_player_pb2'
+  # @@protoc_insertion_point(class_scope:CPlayer_GetProfileThemesAvailable_Request)
+  ))
+_sym_db.RegisterMessage(CPlayer_GetProfileThemesAvailable_Request)
+
+CPlayer_GetProfileThemesAvailable_Response = _reflection.GeneratedProtocolMessageType('CPlayer_GetProfileThemesAvailable_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CPLAYER_GETPROFILETHEMESAVAILABLE_RESPONSE,
+  __module__ = 'steammessages_player_pb2'
+  # @@protoc_insertion_point(class_scope:CPlayer_GetProfileThemesAvailable_Response)
+  ))
+_sym_db.RegisterMessage(CPlayer_GetProfileThemesAvailable_Response)
+
+CPlayer_SetProfileTheme_Request = _reflection.GeneratedProtocolMessageType('CPlayer_SetProfileTheme_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CPLAYER_SETPROFILETHEME_REQUEST,
+  __module__ = 'steammessages_player_pb2'
+  # @@protoc_insertion_point(class_scope:CPlayer_SetProfileTheme_Request)
+  ))
+_sym_db.RegisterMessage(CPlayer_SetProfileTheme_Request)
+
+CPlayer_SetProfileTheme_Response = _reflection.GeneratedProtocolMessageType('CPlayer_SetProfileTheme_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CPLAYER_SETPROFILETHEME_RESPONSE,
+  __module__ = 'steammessages_player_pb2'
+  # @@protoc_insertion_point(class_scope:CPlayer_SetProfileTheme_Response)
+  ))
+_sym_db.RegisterMessage(CPlayer_SetProfileTheme_Response)
+
 CPlayer_PostStatusToFriends_Request = _reflection.GeneratedProtocolMessageType('CPlayer_PostStatusToFriends_Request', (_message.Message,), dict(
   DESCRIPTOR = _CPLAYER_POSTSTATUSTOFRIENDS_REQUEST,
   __module__ = 'steammessages_player_pb2'
@@ -4509,6 +5890,27 @@ CPlayer_SetCommunityPreferences_Response = _reflection.GeneratedProtocolMessageT
   ))
 _sym_db.RegisterMessage(CPlayer_SetCommunityPreferences_Response)
 
+CPlayer_GetTextFilterWords_Request = _reflection.GeneratedProtocolMessageType('CPlayer_GetTextFilterWords_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CPLAYER_GETTEXTFILTERWORDS_REQUEST,
+  __module__ = 'steammessages_player_pb2'
+  # @@protoc_insertion_point(class_scope:CPlayer_GetTextFilterWords_Request)
+  ))
+_sym_db.RegisterMessage(CPlayer_GetTextFilterWords_Request)
+
+CPlayer_TextFilterWords = _reflection.GeneratedProtocolMessageType('CPlayer_TextFilterWords', (_message.Message,), dict(
+  DESCRIPTOR = _CPLAYER_TEXTFILTERWORDS,
+  __module__ = 'steammessages_player_pb2'
+  # @@protoc_insertion_point(class_scope:CPlayer_TextFilterWords)
+  ))
+_sym_db.RegisterMessage(CPlayer_TextFilterWords)
+
+CPlayer_GetTextFilterWords_Response = _reflection.GeneratedProtocolMessageType('CPlayer_GetTextFilterWords_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CPLAYER_GETTEXTFILTERWORDS_RESPONSE,
+  __module__ = 'steammessages_player_pb2'
+  # @@protoc_insertion_point(class_scope:CPlayer_GetTextFilterWords_Response)
+  ))
+_sym_db.RegisterMessage(CPlayer_GetTextFilterWords_Response)
+
 CPlayer_GetNewSteamAnnouncementState_Request = _reflection.GeneratedProtocolMessageType('CPlayer_GetNewSteamAnnouncementState_Request', (_message.Message,), dict(
   DESCRIPTOR = _CPLAYER_GETNEWSTEAMANNOUNCEMENTSTATE_REQUEST,
   __module__ = 'steammessages_player_pb2'
@@ -4607,6 +6009,13 @@ CPlayer_CommunityPreferencesChanged_Notification = _reflection.GeneratedProtocol
   ))
 _sym_db.RegisterMessage(CPlayer_CommunityPreferencesChanged_Notification)
 
+CPlayer_TextFilterWordsChanged_Notification = _reflection.GeneratedProtocolMessageType('CPlayer_TextFilterWordsChanged_Notification', (_message.Message,), dict(
+  DESCRIPTOR = _CPLAYER_TEXTFILTERWORDSCHANGED_NOTIFICATION,
+  __module__ = 'steammessages_player_pb2'
+  # @@protoc_insertion_point(class_scope:CPlayer_TextFilterWordsChanged_Notification)
+  ))
+_sym_db.RegisterMessage(CPlayer_TextFilterWordsChanged_Notification)
+
 CPlayer_PerFriendPreferencesChanged_Notification = _reflection.GeneratedProtocolMessageType('CPlayer_PerFriendPreferencesChanged_Notification', (_message.Message,), dict(
   DESCRIPTOR = _CPLAYER_PERFRIENDPREFERENCESCHANGED_NOTIFICATION,
   __module__ = 'steammessages_player_pb2'
@@ -4628,6 +6037,7 @@ _CPLAYER_GETOWNEDGAMES_REQUEST.fields_by_name['include_appinfo']._options = None
 _CPLAYER_GETOWNEDGAMES_REQUEST.fields_by_name['include_played_free_games']._options = None
 _CPLAYER_GETOWNEDGAMES_REQUEST.fields_by_name['appids_filter']._options = None
 _CPLAYER_GETOWNEDGAMES_REQUEST.fields_by_name['include_free_sub']._options = None
+_CPLAYER_GETOWNEDGAMES_REQUEST.fields_by_name['skip_unvetted_apps']._options = None
 _CPLAYER_GETFRIENDSAPPSACTIVITY_REQUEST.fields_by_name['news_language']._options = None
 _CPLAYER_GETFRIENDSAPPSACTIVITY_REQUEST.fields_by_name['request_flags']._options = None
 _CPLAYER_GETFRIENDSAPPSACTIVITY_RESPONSE_FRIENDPLAYTIME.fields_by_name['minutes_played_this_week']._options = None
@@ -4653,6 +6063,8 @@ _PROFILEITEM.fields_by_name['item_title']._options = None
 _PROFILEITEM.fields_by_name['item_description']._options = None
 _PROFILEITEM.fields_by_name['movie_webm']._options = None
 _PROFILEITEM.fields_by_name['movie_mp4']._options = None
+_PROFILEITEM.fields_by_name['movie_webm_small']._options = None
+_PROFILEITEM.fields_by_name['movie_mp4_small']._options = None
 _PROFILEITEM.fields_by_name['equipped_flags']._options = None
 _CPLAYER_GETMINIPROFILEBACKGROUND_REQUEST.fields_by_name['steamid']._options = None
 _CPLAYER_GETAVATARFRAME_REQUEST.fields_by_name['steamid']._options = None
@@ -4674,8 +6086,8 @@ _PLAYER = _descriptor.ServiceDescriptor(
   file=DESCRIPTOR,
   index=0,
   serialized_options=_b('\202\265\030)A service for accessing Steam player data'),
-  serialized_start=13625,
-  serialized_end=19471,
+  serialized_start=17872,
+  serialized_end=25043,
   methods=[
   _descriptor.MethodDescriptor(
     name='GetMutualFriendsForIncomingInvites',
@@ -4848,10 +6260,73 @@ _PLAYER = _descriptor.ServiceDescriptor(
     output_type=_CPLAYER_GETACHIEVEMENTSPROGRESS_RESPONSE,
     serialized_options=_b('\202\265\030EGets the achievement completion stats for the specified list of apps.'),
   ),
+  _descriptor.MethodDescriptor(
+    name='GetFavoriteBadge',
+    full_name='Player.GetFavoriteBadge',
+    index=19,
+    containing_service=None,
+    input_type=_CPLAYER_GETFAVORITEBADGE_REQUEST,
+    output_type=_CPLAYER_GETFAVORITEBADGE_RESPONSE,
+    serialized_options=_b('\202\265\0301Gets the badge the user has set as their favorite'),
+  ),
+  _descriptor.MethodDescriptor(
+    name='SetFavoriteBadge',
+    full_name='Player.SetFavoriteBadge',
+    index=20,
+    containing_service=None,
+    input_type=_CPLAYER_SETFAVORITEBADGE_REQUEST,
+    output_type=_CPLAYER_SETFAVORITEBADGE_RESPONSE,
+    serialized_options=_b('\202\265\030%Sets the badge  as the users favorite'),
+  ),
+  _descriptor.MethodDescriptor(
+    name='GetProfileCustomization',
+    full_name='Player.GetProfileCustomization',
+    index=21,
+    containing_service=None,
+    input_type=_CPLAYER_GETPROFILECUSTOMIZATION_REQUEST,
+    output_type=_CPLAYER_GETPROFILECUSTOMIZATION_RESPONSE,
+    serialized_options=_b('\202\265\0301Returns the customizations (if any) for a profile'),
+  ),
+  _descriptor.MethodDescriptor(
+    name='GetPurchasedProfileCustomizations',
+    full_name='Player.GetPurchasedProfileCustomizations',
+    index=22,
+    containing_service=None,
+    input_type=_CPLAYER_GETPURCHASEDPROFILECUSTOMIZATIONS_REQUEST,
+    output_type=_CPLAYER_GETPURCHASEDPROFILECUSTOMIZATIONS_RESPONSE,
+    serialized_options=_b('\202\265\030,Returns the purchased profile customizations'),
+  ),
+  _descriptor.MethodDescriptor(
+    name='GetPurchasedAndUpgradedProfileCustomizations',
+    full_name='Player.GetPurchasedAndUpgradedProfileCustomizations',
+    index=23,
+    containing_service=None,
+    input_type=_CPLAYER_GETPURCHASEDANDUPGRADEDPROFILECUSTOMIZATIONS_REQUEST,
+    output_type=_CPLAYER_GETPURCHASEDANDUPGRADEDPROFILECUSTOMIZATIONS_RESPONSE,
+    serialized_options=_b('\202\265\0309Returns the purchased and upgraded profile customizations'),
+  ),
+  _descriptor.MethodDescriptor(
+    name='GetProfileThemesAvailable',
+    full_name='Player.GetProfileThemesAvailable',
+    index=24,
+    containing_service=None,
+    input_type=_CPLAYER_GETPROFILETHEMESAVAILABLE_REQUEST,
+    output_type=_CPLAYER_GETPROFILETHEMESAVAILABLE_RESPONSE,
+    serialized_options=_b('\202\265\030#Gets themes available for the user.'),
+  ),
+  _descriptor.MethodDescriptor(
+    name='SetProfileTheme',
+    full_name='Player.SetProfileTheme',
+    index=25,
+    containing_service=None,
+    input_type=_CPLAYER_SETPROFILETHEME_REQUEST,
+    output_type=_CPLAYER_SETPROFILETHEME_RESPONSE,
+    serialized_options=_b('\202\265\030\037Selects a theme for the profile'),
+  ),
   _descriptor.MethodDescriptor(
     name='PostStatusToFriends',
     full_name='Player.PostStatusToFriends',
-    index=19,
+    index=26,
     containing_service=None,
     input_type=_CPLAYER_POSTSTATUSTOFRIENDS_REQUEST,
     output_type=_CPLAYER_POSTSTATUSTOFRIENDS_RESPONSE,
@@ -4860,7 +6335,7 @@ _PLAYER = _descriptor.ServiceDescriptor(
   _descriptor.MethodDescriptor(
     name='GetPostedStatus',
     full_name='Player.GetPostedStatus',
-    index=20,
+    index=27,
     containing_service=None,
     input_type=_CPLAYER_GETPOSTEDSTATUS_REQUEST,
     output_type=_CPLAYER_GETPOSTEDSTATUS_RESPONSE,
@@ -4869,7 +6344,7 @@ _PLAYER = _descriptor.ServiceDescriptor(
   _descriptor.MethodDescriptor(
     name='DeletePostedStatus',
     full_name='Player.DeletePostedStatus',
-    index=21,
+    index=28,
     containing_service=None,
     input_type=_CPLAYER_DELETEPOSTEDSTATUS_REQUEST,
     output_type=_CPLAYER_DELETEPOSTEDSTATUS_RESPONSE,
@@ -4878,7 +6353,7 @@ _PLAYER = _descriptor.ServiceDescriptor(
   _descriptor.MethodDescriptor(
     name='ClientGetLastPlayedTimes',
     full_name='Player.ClientGetLastPlayedTimes',
-    index=22,
+    index=29,
     containing_service=None,
     input_type=_CPLAYER_GETLASTPLAYEDTIMES_REQUEST,
     output_type=_CPLAYER_GETLASTPLAYEDTIMES_RESPONSE,
@@ -4887,7 +6362,7 @@ _PLAYER = _descriptor.ServiceDescriptor(
   _descriptor.MethodDescriptor(
     name='AcceptSSA',
     full_name='Player.AcceptSSA',
-    index=23,
+    index=30,
     containing_service=None,
     input_type=_CPLAYER_ACCEPTSSA_REQUEST,
     output_type=_CPLAYER_ACCEPTSSA_RESPONSE,
@@ -4896,7 +6371,7 @@ _PLAYER = _descriptor.ServiceDescriptor(
   _descriptor.MethodDescriptor(
     name='GetNicknameList',
     full_name='Player.GetNicknameList',
-    index=24,
+    index=31,
     containing_service=None,
     input_type=_CPLAYER_GETNICKNAMELIST_REQUEST,
     output_type=_CPLAYER_GETNICKNAMELIST_RESPONSE,
@@ -4905,7 +6380,7 @@ _PLAYER = _descriptor.ServiceDescriptor(
   _descriptor.MethodDescriptor(
     name='GetPerFriendPreferences',
     full_name='Player.GetPerFriendPreferences',
-    index=25,
+    index=32,
     containing_service=None,
     input_type=_CPLAYER_GETPERFRIENDPREFERENCES_REQUEST,
     output_type=_CPLAYER_GETPERFRIENDPREFERENCES_RESPONSE,
@@ -4914,7 +6389,7 @@ _PLAYER = _descriptor.ServiceDescriptor(
   _descriptor.MethodDescriptor(
     name='SetPerFriendPreferences',
     full_name='Player.SetPerFriendPreferences',
-    index=26,
+    index=33,
     containing_service=None,
     input_type=_CPLAYER_SETPERFRIENDPREFERENCES_REQUEST,
     output_type=_CPLAYER_SETPERFRIENDPREFERENCES_RESPONSE,
@@ -4923,7 +6398,7 @@ _PLAYER = _descriptor.ServiceDescriptor(
   _descriptor.MethodDescriptor(
     name='AddFriend',
     full_name='Player.AddFriend',
-    index=27,
+    index=34,
     containing_service=None,
     input_type=_CPLAYER_ADDFRIEND_REQUEST,
     output_type=_CPLAYER_ADDFRIEND_RESPONSE,
@@ -4932,7 +6407,7 @@ _PLAYER = _descriptor.ServiceDescriptor(
   _descriptor.MethodDescriptor(
     name='RemoveFriend',
     full_name='Player.RemoveFriend',
-    index=28,
+    index=35,
     containing_service=None,
     input_type=_CPLAYER_REMOVEFRIEND_REQUEST,
     output_type=_CPLAYER_REMOVEFRIEND_RESPONSE,
@@ -4941,7 +6416,7 @@ _PLAYER = _descriptor.ServiceDescriptor(
   _descriptor.MethodDescriptor(
     name='IgnoreFriend',
     full_name='Player.IgnoreFriend',
-    index=29,
+    index=36,
     containing_service=None,
     input_type=_CPLAYER_IGNOREFRIEND_REQUEST,
     output_type=_CPLAYER_IGNOREFRIEND_RESPONSE,
@@ -4950,7 +6425,7 @@ _PLAYER = _descriptor.ServiceDescriptor(
   _descriptor.MethodDescriptor(
     name='GetCommunityPreferences',
     full_name='Player.GetCommunityPreferences',
-    index=30,
+    index=37,
     containing_service=None,
     input_type=_CPLAYER_GETCOMMUNITYPREFERENCES_REQUEST,
     output_type=_CPLAYER_GETCOMMUNITYPREFERENCES_RESPONSE,
@@ -4959,16 +6434,25 @@ _PLAYER = _descriptor.ServiceDescriptor(
   _descriptor.MethodDescriptor(
     name='SetCommunityPreferences',
     full_name='Player.SetCommunityPreferences',
-    index=31,
+    index=38,
     containing_service=None,
     input_type=_CPLAYER_SETCOMMUNITYPREFERENCES_REQUEST,
     output_type=_CPLAYER_SETCOMMUNITYPREFERENCES_RESPONSE,
     serialized_options=_b('\202\265\030\'Sets the player\'s community preferences'),
   ),
+  _descriptor.MethodDescriptor(
+    name='GetTextFilterWords',
+    full_name='Player.GetTextFilterWords',
+    index=39,
+    containing_service=None,
+    input_type=_CPLAYER_GETTEXTFILTERWORDS_REQUEST,
+    output_type=_CPLAYER_GETTEXTFILTERWORDS_RESPONSE,
+    serialized_options=_b('\202\265\0306Get the custom text filtering dictionary for this user'),
+  ),
   _descriptor.MethodDescriptor(
     name='GetNewSteamAnnouncementState',
     full_name='Player.GetNewSteamAnnouncementState',
-    index=32,
+    index=40,
     containing_service=None,
     input_type=_CPLAYER_GETNEWSTEAMANNOUNCEMENTSTATE_REQUEST,
     output_type=_CPLAYER_GETNEWSTEAMANNOUNCEMENTSTATE_RESPONSE,
@@ -4977,7 +6461,7 @@ _PLAYER = _descriptor.ServiceDescriptor(
   _descriptor.MethodDescriptor(
     name='UpdateSteamAnnouncementLastRead',
     full_name='Player.UpdateSteamAnnouncementLastRead',
-    index=33,
+    index=41,
     containing_service=None,
     input_type=_CPLAYER_UPDATESTEAMANNOUNCEMENTLASTREAD_REQUEST,
     output_type=_CPLAYER_UPDATESTEAMANNOUNCEMENTLASTREAD_RESPONSE,
@@ -4986,7 +6470,7 @@ _PLAYER = _descriptor.ServiceDescriptor(
   _descriptor.MethodDescriptor(
     name='GetPrivacySettings',
     full_name='Player.GetPrivacySettings',
-    index=34,
+    index=42,
     containing_service=None,
     input_type=_CPLAYER_GETPRIVACYSETTINGS_REQUEST,
     output_type=_CPLAYER_GETPRIVACYSETTINGS_RESPONSE,
@@ -4995,7 +6479,7 @@ _PLAYER = _descriptor.ServiceDescriptor(
   _descriptor.MethodDescriptor(
     name='GetDurationControl',
     full_name='Player.GetDurationControl',
-    index=35,
+    index=43,
     containing_service=None,
     input_type=_CPLAYER_GETDURATIONCONTROL_REQUEST,
     output_type=_CPLAYER_GETDURATIONCONTROL_RESPONSE,
@@ -5013,8 +6497,8 @@ _PLAYERCLIENT = _descriptor.ServiceDescriptor(
   file=DESCRIPTOR,
   index=1,
   serialized_options=_b('\202\265\030&Steam player data client notifications\300\265\030\002'),
-  serialized_start=19474,
-  serialized_end=20739,
+  serialized_start=25046,
+  serialized_end=26492,
   methods=[
   _descriptor.MethodDescriptor(
     name='NotifyLastPlayedTimes',
@@ -5061,10 +6545,19 @@ _PLAYERCLIENT = _descriptor.ServiceDescriptor(
     output_type=steammessages__unified__base__pb2._NORESPONSE,
     serialized_options=_b('\202\265\030PNotification from server to client that their community preferences have changed'),
   ),
+  _descriptor.MethodDescriptor(
+    name='NotifyTextFilterWordsChanged',
+    full_name='PlayerClient.NotifyTextFilterWordsChanged',
+    index=5,
+    containing_service=None,
+    input_type=_CPLAYER_TEXTFILTERWORDSCHANGED_NOTIFICATION,
+    output_type=steammessages__unified__base__pb2._NORESPONSE,
+    serialized_options=_b('\202\265\030SNotification from server to client that their text filtering dictionary has changed'),
+  ),
   _descriptor.MethodDescriptor(
     name='NotifyPerFriendPreferencesChanged',
     full_name='PlayerClient.NotifyPerFriendPreferencesChanged',
-    index=5,
+    index=6,
     containing_service=None,
     input_type=_CPLAYER_PERFRIENDPREFERENCESCHANGED_NOTIFICATION,
     output_type=steammessages__unified__base__pb2._NORESPONSE,
@@ -5073,7 +6566,7 @@ _PLAYERCLIENT = _descriptor.ServiceDescriptor(
   _descriptor.MethodDescriptor(
     name='NotifyPrivacyPrivacySettingsChanged',
     full_name='PlayerClient.NotifyPrivacyPrivacySettingsChanged',
-    index=6,
+    index=7,
     containing_service=None,
     input_type=_CPLAYER_PRIVACYSETTINGSCHANGED_NOTIFICATION,
     output_type=steammessages__unified__base__pb2._NORESPONSE,
diff --git a/steam/protobufs/steammessages_publishedfile_pb2.py b/steam/protobufs/steammessages_publishedfile_pb2.py
index a3ce03d..8f094ec 100644
--- a/steam/protobufs/steammessages_publishedfile_pb2.py
+++ b/steam/protobufs/steammessages_publishedfile_pb2.py
@@ -17,6 +17,7 @@ _sym_db = _symbol_database.Default()
 
 
 import steam.protobufs.steammessages_unified_base_pb2 as steammessages__unified__base__pb2
+import steam.protobufs.enums_pb2 as enums__pb2
 
 
 DESCRIPTOR = _descriptor.FileDescriptor(
@@ -24,9 +25,9 @@ DESCRIPTOR = _descriptor.FileDescriptor(
   package='',
   syntax='proto2',
   serialized_options=_b('\220\001\001'),
-  serialized_pb=_b('\n!steammessages_publishedfile.proto\x1a steammessages_unified_base.proto\"t\n CPublishedFile_Subscribe_Request\x12\x17\n\x0fpublishedfileid\x18\x01 \x01(\x04\x12\x11\n\tlist_type\x18\x02 \x01(\r\x12\r\n\x05\x61ppid\x18\x03 \x01(\x05\x12\x15\n\rnotify_client\x18\x04 \x01(\x08\"#\n!CPublishedFile_Subscribe_Response\"v\n\"CPublishedFile_Unsubscribe_Request\x12\x17\n\x0fpublishedfileid\x18\x01 \x01(\x04\x12\x11\n\tlist_type\x18\x02 \x01(\r\x12\r\n\x05\x61ppid\x18\x03 \x01(\x05\x12\x15\n\rnotify_client\x18\x04 \x01(\x08\"%\n#CPublishedFile_Unsubscribe_Response\">\n#CPublishedFile_CanSubscribe_Request\x12\x17\n\x0fpublishedfileid\x18\x01 \x01(\x04\"=\n$CPublishedFile_CanSubscribe_Response\x12\x15\n\rcan_subscribe\x18\x01 \x01(\x08\"\xcc\n\n\x1e\x43PublishedFile_Publish_Request\x12<\n\x05\x61ppid\x18\x01 \x01(\rB-\x82\xb5\x18)App Id this file is being published FROM.\x12\x43\n\x0e\x63onsumer_appid\x18\x02 \x01(\rB+\x82\xb5\x18\'App Id this file is being published TO.\x12K\n\rcloudfilename\x18\x03 \x01(\tB4\x82\xb5\x18\x30Name of the file to publish in the user\'s cloud.\x12[\n\x15preview_cloudfilename\x18\x04 \x01(\tB<\x82\xb5\x18\x38Name of the file to use as the published file\'s preview.\x12\x35\n\x05title\x18\x05 \x01(\tB&\x82\xb5\x18\"Text title for the published file.\x12\x46\n\x10\x66ile_description\x18\x06 \x01(\tB,\x82\xb5\x18(Text description for the published file.\x12L\n\tfile_type\x18\x07 \x01(\rB9\x82\xb5\x18\x35(EWorkshopFileType) Type of Workshop file to publish.\x12I\n\x16\x63onsumer_shortcut_name\x18\x08 \x01(\tB)\x82\xb5\x18%Shortcut name for the published file.\x12I\n\x10youtube_username\x18\t \x01(\tB/\x82\xb5\x18+(Optional) User\'s YouTube account username.\x12\\\n\x0fyoutube_videoid\x18\n \x01(\tBC\x82\xb5\x18?(Optional) Video Id of a YouTube video for this published file.\x12\x81\x01\n\nvisibility\x18\x0b \x01(\rBm\x82\xb5\x18i(ERemoteStoragePublishedFileVisibility) Visibility of the published file (private, friends, public, etc.)\x12k\n\x0credirect_uri\x18\x0c \x01(\tBU\x82\xb5\x18Q(Optional) If supplied, the resulting published file\'s Id is appended to the URI.\x12\x44\n\x04tags\x18\r \x03(\tB6\x82\xb5\x18\x32\x41rray of text tags to apply to the published file.\x12Y\n\x0f\x63ollection_type\x18\x0e \x01(\tB@\x82\xb5\x18<(Optional) Type of collection the published file represents.\x12M\n\tgame_type\x18\x0f \x01(\tB:\x82\xb5\x18\x36(Optional) Type of game the published file represents.\x12[\n\x03url\x18\x10 \x01(\tBN\x82\xb5\x18J(Optional) If this represents a game, this is the URL to that game\'s page.\"P\n\x1f\x43PublishedFile_Publish_Response\x12\x17\n\x0fpublishedfileid\x18\x01 \x01(\x04\x12\x14\n\x0credirect_uri\x18\x02 \x01(\t\"\x8d\n\n!CPublishedFile_GetDetails_Request\x12P\n\x10publishedfileids\x18\x01 \x03(\x06\x42\x36\x82\xb5\x18\x32Set of published file Ids to retrieve details for.\x12Q\n\x0bincludetags\x18\x02 \x01(\x08\x42<\x82\xb5\x18\x38If true, return tag information in the returned details.\x12\x63\n\x19includeadditionalpreviews\x18\x03 \x01(\x08\x42@\x82\xb5\x18<If true, return preview information in the returned details.\x12N\n\x0fincludechildren\x18\x04 \x01(\x08\x42\x35\x82\xb5\x18\x31If true, return children in the returned details.\x12R\n\rincludekvtags\x18\x05 \x01(\x08\x42;\x82\xb5\x18\x37If true, return key value tags in the returned details.\x12L\n\x0cincludevotes\x18\x06 \x01(\x08\x42\x36\x82\xb5\x18\x32If true, return vote data in the returned details.\x12\x63\n\x11short_description\x18\x08 \x01(\x08\x42H\x82\xb5\x18\x44If true, return a short description instead of the full description.\x12L\n\x12includeforsaledata\x18\n \x01(\x08\x42\x30\x82\xb5\x18,If true, return pricing data, if applicable.\x12\x42\n\x0fincludemetadata\x18\x0b \x01(\x08\x42)\x82\xb5\x18%If true, populate the metadata field.\x12U\n\x08language\x18\x0c \x01(\x05:\x01\x30\x42@\x82\xb5\x18<Specifies the localized text to return. Defaults to English.\x12g\n\x15return_playtime_stats\x18\r \x01(\rBH\x82\xb5\x18\x44Return playtime stats for the specified number of days before today.\x12\r\n\x05\x61ppid\x18\x0e \x01(\r\x12\x46\n\x18strip_description_bbcode\x18\x0f \x01(\x08\x42$\x82\xb5\x18 Strips BBCode from descriptions.\x12\x84\x01\n\x10\x64\x65sired_revision\x18\x10 \x01(\x0e\x32\x17.EPublishedFileRevision: k_EPublishedFileRevision_DefaultB/\x82\xb5\x18+Return the data for the specified revision.\x12W\n\x10includereactions\x18\x11 \x01(\x08:\x05\x66\x61lseB6\x82\xb5\x18\x32If true, then reactions to items will be returned.\"\xff\x17\n\x14PublishedFileDetails\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x17\n\x0fpublishedfileid\x18\x02 \x01(\x04\x12\x0f\n\x07\x63reator\x18\x03 \x01(\x06\x12\x15\n\rcreator_appid\x18\x04 \x01(\r\x12\x16\n\x0e\x63onsumer_appid\x18\x05 \x01(\r\x12\x1b\n\x13\x63onsumer_shortcutid\x18\x06 \x01(\r\x12\x10\n\x08\x66ilename\x18\x07 \x01(\t\x12\x11\n\tfile_size\x18\x08 \x01(\x04\x12\x19\n\x11preview_file_size\x18\t \x01(\x04\x12\x10\n\x08\x66ile_url\x18\n \x01(\t\x12\x13\n\x0bpreview_url\x18\x0b \x01(\t\x12\x16\n\x0eyoutubevideoid\x18\x0c \x01(\t\x12\x0b\n\x03url\x18\r \x01(\t\x12\x15\n\rhcontent_file\x18\x0e \x01(\x06\x12\x18\n\x10hcontent_preview\x18\x0f \x01(\x06\x12\r\n\x05title\x18\x10 \x01(\t\x12\x18\n\x10\x66ile_description\x18\x11 \x01(\t\x12\x19\n\x11short_description\x18\x12 \x01(\t\x12\x14\n\x0ctime_created\x18\x13 \x01(\r\x12\x14\n\x0ctime_updated\x18\x14 \x01(\r\x12\x12\n\nvisibility\x18\x15 \x01(\r\x12\r\n\x05\x66lags\x18\x16 \x01(\r\x12\x15\n\rworkshop_file\x18\x17 \x01(\x08\x12\x19\n\x11workshop_accepted\x18\x18 \x01(\x08\x12\x1a\n\x12show_subscribe_all\x18\x19 \x01(\x08\x12\x1e\n\x16num_comments_developer\x18\x1a \x01(\x05\x12\x1b\n\x13num_comments_public\x18\x1b \x01(\x05\x12\x0e\n\x06\x62\x61nned\x18\x1c \x01(\x08\x12\x12\n\nban_reason\x18\x1d \x01(\t\x12\x0e\n\x06\x62\x61nner\x18\x1e \x01(\x06\x12\x16\n\x0e\x63\x61n_be_deleted\x18\x1f \x01(\x08\x12\x14\n\x0cincompatible\x18  \x01(\x08\x12\x10\n\x08\x61pp_name\x18! \x01(\t\x12\x11\n\tfile_type\x18\" \x01(\r\x12\x15\n\rcan_subscribe\x18# \x01(\x08\x12\x15\n\rsubscriptions\x18$ \x01(\r\x12\x11\n\tfavorited\x18% \x01(\r\x12\x11\n\tfollowers\x18& \x01(\r\x12\x1e\n\x16lifetime_subscriptions\x18\' \x01(\r\x12\x1a\n\x12lifetime_favorited\x18( \x01(\r\x12\x1a\n\x12lifetime_followers\x18) \x01(\r\x12\x19\n\x11lifetime_playtime\x18> \x01(\x04\x12\"\n\x1alifetime_playtime_sessions\x18? \x01(\x04\x12\r\n\x05views\x18* \x01(\r\x12\x13\n\x0bimage_width\x18+ \x01(\r\x12\x14\n\x0cimage_height\x18, \x01(\r\x12\x11\n\timage_url\x18- \x01(\t\x12\x13\n\x0bspoiler_tag\x18. \x01(\x08\x12\x12\n\nshortcutid\x18/ \x01(\r\x12\x14\n\x0cshortcutname\x18\x30 \x01(\t\x12\x14\n\x0cnum_children\x18\x31 \x01(\r\x12\x13\n\x0bnum_reports\x18\x32 \x01(\r\x12/\n\x08previews\x18\x33 \x03(\x0b\x32\x1d.PublishedFileDetails.Preview\x12\'\n\x04tags\x18\x34 \x03(\x0b\x32\x19.PublishedFileDetails.Tag\x12-\n\x08\x63hildren\x18\x35 \x03(\x0b\x32\x1b.PublishedFileDetails.Child\x12+\n\x06kvtags\x18\x36 \x03(\x0b\x32\x1b.PublishedFileDetails.KVTag\x12\x31\n\tvote_data\x18\x37 \x01(\x0b\x32\x1e.PublishedFileDetails.VoteData\x12;\n\x0eplaytime_stats\x18@ \x01(\x0b\x32#.PublishedFileDetails.PlaytimeStats\x12r\n\x0ftime_subscribed\x18\x38 \x01(\rBY\x82\xb5\x18UOnly valid in PublishedFile.GetUserFiles and not normal PublishedFile.GetDetail calls\x12\x61\n\rfor_sale_data\x18\x39 \x01(\x0b\x32!.PublishedFileDetails.ForSaleDataB\'\x82\xb5\x18#Pricing information, if applicable.\x12\x37\n\x08metadata\x18: \x01(\tB%\x82\xb5\x18!Metadata associated with the item\x12\x43\n\x08language\x18= \x01(\x05:\x01\x30\x42.\x82\xb5\x18*The language of the title and description.\x12\x1f\n\x17maybe_inappropriate_sex\x18\x41 \x01(\x08\x12$\n\x1cmaybe_inappropriate_violence\x18\x42 \x01(\x08\x12Q\n\x16revision_change_number\x18\x43 \x01(\x04\x42\x31\x82\xb5\x18-The change number for the specified revision.\x12\xdc\x01\n\x08revision\x18\x44 \x01(\x0e\x32\x17.EPublishedFileRevision: k_EPublishedFileRevision_DefaultB\x8e\x01\x82\xb5\x18\x89\x01The revision of the data returned, usually k_EPublishedFileRevision_Latest, but can be another revision/snapshot depending on the caller.\x12M\n\x13\x61vailable_revisions\x18\x45 \x03(\x0e\x32\x17.EPublishedFileRevisionB\x17\x82\xb5\x18\x13\x41vailable revisions\x12M\n\treactions\x18\x46 \x03(\x0b\x32\x1e.PublishedFileDetails.ReactionB\x1a\x82\xb5\x18\x16Reactions to this item\x1a%\n\x03Tag\x12\x0b\n\x03tag\x18\x01 \x01(\t\x12\x11\n\tadminonly\x18\x02 \x01(\x08\x1a\xa6\x01\n\x07Preview\x12\x11\n\tpreviewid\x18\x01 \x01(\x04\x12\x11\n\tsortorder\x18\x02 \x01(\r\x12\x0b\n\x03url\x18\x03 \x01(\t\x12\x0c\n\x04size\x18\x04 \x01(\r\x12\x10\n\x08\x66ilename\x18\x05 \x01(\t\x12\x16\n\x0eyoutubevideoid\x18\x06 \x01(\t\x12\x14\n\x0cpreview_type\x18\x07 \x01(\r\x12\x1a\n\x12\x65xternal_reference\x18\x08 \x01(\t\x1a\x46\n\x05\x43hild\x12\x17\n\x0fpublishedfileid\x18\x01 \x01(\x04\x12\x11\n\tsortorder\x18\x02 \x01(\r\x12\x11\n\tfile_type\x18\x03 \x01(\r\x1a#\n\x05KVTag\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\x1a?\n\x08VoteData\x12\r\n\x05score\x18\x01 \x01(\x02\x12\x10\n\x08votes_up\x18\x02 \x01(\r\x12\x12\n\nvotes_down\x18\x03 \x01(\r\x1a\xdc\x01\n\x0b\x46orSaleData\x12\x13\n\x0bis_for_sale\x18\x01 \x01(\x08\x12\x16\n\x0eprice_category\x18\x02 \x01(\r\x12\x41\n\x07\x65status\x18\x03 \x01(\x0e\x32\x1c.EPublishedFileForSaleStatus:\x12k_PFFSS_NotForSale\x12\x1c\n\x14price_category_floor\x18\x04 \x01(\r\x12\"\n\x1aprice_is_pay_what_you_want\x18\x05 \x01(\x08\x12\x1b\n\x13\x64iscount_percentage\x18\x06 \x01(\r\x1a?\n\rPlaytimeStats\x12\x18\n\x10playtime_seconds\x18\x01 \x01(\x04\x12\x14\n\x0cnum_sessions\x18\x02 \x01(\x04\x1a-\n\x08Reaction\x12\x12\n\nreactionid\x18\x01 \x01(\r\x12\r\n\x05\x63ount\x18\x02 \x01(\r\"Y\n\"CPublishedFile_GetDetails_Response\x12\x33\n\x14publishedfiledetails\x18\x01 \x03(\x0b\x32\x15.PublishedFileDetails\"\xe2\x02\n\"CPublishedFile_GetItemInfo_Request\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x19\n\x11last_time_updated\x18\x02 \x01(\r\x12H\n\x0eworkshop_items\x18\x03 \x03(\x0b\x32\x30.CPublishedFile_GetItemInfo_Request.WorkshopItem\x1a\xc6\x01\n\x0cWorkshopItem\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\x12\x14\n\x0ctime_updated\x18\x02 \x01(\r\x12\x84\x01\n\x10\x64\x65sired_revision\x18\x03 \x01(\x0e\x32\x17.EPublishedFileRevision: k_EPublishedFileRevision_DefaultB/\x82\xb5\x18+Return the data for the specified revision.\"\x89\x02\n#CPublishedFile_GetItemInfo_Response\x12\x13\n\x0bupdate_time\x18\x01 \x01(\r\x12M\n\x0eworkshop_items\x18\x02 \x03(\x0b\x32\x35.CPublishedFile_GetItemInfo_Response.WorkshopItemInfo\x12\x15\n\rprivate_items\x18\x03 \x03(\x06\x1ag\n\x10WorkshopItemInfo\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\x12\x14\n\x0ctime_updated\x18\x02 \x01(\r\x12\x13\n\x0bmanifest_id\x18\x03 \x01(\x06\x12\r\n\x05\x66lags\x18\x04 \x01(\r\"\xc7\x15\n#CPublishedFile_GetUserFiles_Request\x12J\n\x07steamid\x18\x01 \x01(\x06\x42\x39\x82\xb5\x18\x35Steam ID of the user whose files are being requested.\x12\x46\n\x05\x61ppid\x18\x02 \x01(\rB7\x82\xb5\x18\x33\x41pp Id of the app that the files were published to.\x12:\n\x04page\x18\x04 \x01(\r:\x01\x31\x42)\x82\xb5\x18%(Optional) Starting page for results.\x12P\n\nnumperpage\x18\x05 \x01(\r:\x01\x31\x42\x39\x82\xb5\x18\x35(Optional) The number of results, per page to return.\x12\x43\n\x04type\x18\x06 \x01(\t:\x07myfilesB,\x82\xb5\x18((Optional) Type of files to be returned.\x12Y\n\nsortmethod\x18\x07 \x01(\t:\x0blastupdatedB8\x82\xb5\x18\x34(Optional) Sorting method to use on returned values.\x12;\n\x07privacy\x18\t \x01(\rB*\x82\xb5\x18&(optional) Filter by privacy settings.\x12h\n\x0crequiredtags\x18\n \x03(\tBR\x82\xb5\x18N(Optional) Tags that must be present on a published file to satisfy the query.\x12l\n\x0c\x65xcludedtags\x18\x0b \x03(\tBV\x82\xb5\x18R(Optional) Tags that must NOT be present on a published file to satisfy the query.\x12n\n\x10required_kv_tags\x18\x1e \x03(\x0b\x32*.CPublishedFile_GetUserFiles_Request.KVTagB(\x82\xb5\x18$Required key-value tags to match on.\x12=\n\x08\x66iletype\x18\x0e \x01(\rB+\x82\xb5\x18\'(Optional) File type to match files to.\x12\x61\n\rcreator_appid\x18\x0f \x01(\rBJ\x82\xb5\x18\x46\x41pp Id of the app that published the files, only matched if specified.\x12I\n\x14match_cloud_filename\x18\x10 \x01(\tB+\x82\xb5\x18\'Match this cloud filename if specified.\x12j\n\x15\x63\x61\x63he_max_age_seconds\x18\x1b \x01(\r:\x01\x30\x42H\x82\xb5\x18\x44\x41llow stale data to be returned for the specified number of seconds.\x12U\n\x08language\x18\x1d \x01(\x05:\x01\x30\x42@\x82\xb5\x18<Specifies the localized text to return. Defaults to English.\x12\xa3\x01\n\ttaggroups\x18\" \x03(\x0b\x32-.CPublishedFile_GetUserFiles_Request.TagGroupBa\x82\xb5\x18](Optional) At least one of the tags must be present on a published file to satisfy the query.\x12i\n\ttotalonly\x18\x11 \x01(\x08\x42V\x82\xb5\x18R(Optional) If true, only return the total number of files that satisfy this query.\x12n\n\x08ids_only\x18\x12 \x01(\x08\x42\\\x82\xb5\x18X(Optional) If true, only return the published file ids of files that satisfy this query.\x12\x34\n\x10return_vote_data\x18\x13 \x01(\x08:\x04trueB\x14\x82\xb5\x18\x10Return vote data\x12\x38\n\x0breturn_tags\x18\x14 \x01(\x08\x42#\x82\xb5\x18\x1fReturn tags in the file details\x12K\n\x0ereturn_kv_tags\x18\x15 \x01(\x08:\x04trueB-\x82\xb5\x18)Return key-value tags in the file details\x12W\n\x0freturn_previews\x18\x16 \x01(\x08\x42>\x82\xb5\x18:Return preview image and video details in the file details\x12\x46\n\x0freturn_children\x18\x17 \x01(\x08\x42-\x82\xb5\x18)Return child item ids in the file details\x12l\n\x18return_short_description\x18\x18 \x01(\x08:\x04trueBD\x82\xb5\x18@Populate the short_description field instead of file_description\x12K\n\x14return_for_sale_data\x18\x1a \x01(\x08\x42-\x82\xb5\x18)Return pricing information, if applicable\x12?\n\x0freturn_metadata\x18\x1c \x01(\x08:\x05\x66\x61lseB\x1f\x82\xb5\x18\x1bPopulate the metadata field\x12g\n\x15return_playtime_stats\x18\x1f \x01(\rBH\x82\xb5\x18\x44Return playtime stats for the specified number of days before today.\x12\x46\n\x18strip_description_bbcode\x18  \x01(\x08\x42$\x82\xb5\x18 Strips BBCode from descriptions.\x12W\n\x10return_reactions\x18# \x01(\x08:\x05\x66\x61lseB6\x82\xb5\x18\x32If true, then reactions to items will be returned.\x12\x84\x01\n\x10\x64\x65sired_revision\x18! \x01(\x0e\x32\x17.EPublishedFileRevision: k_EPublishedFileRevision_DefaultB/\x82\xb5\x18+Return the data for the specified revision.\x1a#\n\x05KVTag\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\x1a\x18\n\x08TagGroup\x12\x0c\n\x04tags\x18\x01 \x03(\t\"\x80\x02\n$CPublishedFile_GetUserFiles_Response\x12\r\n\x05total\x18\x01 \x01(\r\x12\x12\n\nstartindex\x18\x02 \x01(\r\x12\x33\n\x14publishedfiledetails\x18\x03 \x03(\x0b\x32\x15.PublishedFileDetails\x12\x37\n\x04\x61pps\x18\x04 \x03(\x0b\x32).CPublishedFile_GetUserFiles_Response.App\x1aG\n\x03\x41pp\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x12\n\nshortcutid\x18\x03 \x01(\r\x12\x0f\n\x07private\x18\x04 \x01(\x08\"\x9a\x02\n1CPublishedFile_AreFilesInSubscriptionList_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x18\n\x10publishedfileids\x18\x02 \x03(\x06\x12&\n\x08listtype\x18\x03 \x01(\rB\x14\x82\xb5\x18\x10See EUCMListType\x12<\n\x08\x66iletype\x18\x04 \x01(\rB*\x82\xb5\x18&See EPublishedFileInfoMatchingFileType\x12V\n\x10workshopfiletype\x18\x05 \x01(\rB<\x82\xb5\x18\x38See EWorkshopFileType.  If specified, overrides filetype\"\xb2\x01\n2CPublishedFile_AreFilesInSubscriptionList_Response\x12I\n\x05\x66iles\x18\x01 \x03(\x0b\x32:.CPublishedFile_AreFilesInSubscriptionList_Response.InList\x1a\x31\n\x06InList\x12\x17\n\x0fpublishedfileid\x18\x01 \x01(\x06\x12\x0e\n\x06inlist\x18\x02 \x01(\x08\"\x91\x06\n\x1d\x43PublishedFile_Update_Request\x12\x39\n\x05\x61ppid\x18\x01 \x01(\rB*\x82\xb5\x18&App Id this published file belongs to.\x12L\n\x0fpublishedfileid\x18\x02 \x01(\x06\x42\x33\x82\xb5\x18/Published file id of the file we\'d like update.\x12:\n\x05title\x18\x03 \x01(\tB+\x82\xb5\x18\'(Optional) Title of the published file.\x12K\n\x10\x66ile_description\x18\x04 \x01(\tB1\x82\xb5\x18-(Optional) Description of the published file.\x12\x44\n\nvisibility\x18\x05 \x01(\rB0\x82\xb5\x18,(Optional) Visibility of the published file.\x12@\n\x04tags\x18\x06 \x03(\tB2\x82\xb5\x18.(Optional) Set of tags for the published file.\x12\x41\n\x08\x66ilename\x18\x07 \x01(\tB/\x82\xb5\x18+(Optional) Filename for the published file.\x12Q\n\x10preview_filename\x18\x08 \x01(\tB7\x82\xb5\x18\x33(Optional) Preview filename for the published file.\x12^\n\x0bimage_width\x18\x0f \x01(\rBI\x82\xb5\x18\x45(Optional) If this is an image file, you can specify the image width.\x12`\n\x0cimage_height\x18\x10 \x01(\rBJ\x82\xb5\x18\x46(Optional) If this is an image file, you can specify the image height.\" \n\x1e\x43PublishedFile_Update_Response\"\xb8\x01\n,CPublishedFile_GetChangeHistoryEntry_Request\x12\x63\n\x0fpublishedfileid\x18\x01 \x01(\x06\x42J\x82\xb5\x18\x46Published file id of the file we\'d like to get the change history for.\x12\x11\n\ttimestamp\x18\x02 \x01(\r\x12\x10\n\x08language\x18\x03 \x01(\x05\"]\n-CPublishedFile_GetChangeHistoryEntry_Response\x12\x1a\n\x12\x63hange_description\x18\x01 \x01(\t\x12\x10\n\x08language\x18\x02 \x01(\x05\"\x9e\x02\n\'CPublishedFile_GetChangeHistory_Request\x12\x63\n\x0fpublishedfileid\x18\x01 \x01(\x06\x42J\x82\xb5\x18\x46Published file id of the file we\'d like to get the change history for.\x12@\n\ntotal_only\x18\x02 \x01(\x08\x42,\x82\xb5\x18(Return the total number of changes only.\x12\x12\n\nstartindex\x18\x03 \x01(\r\x12\r\n\x05\x63ount\x18\x04 \x01(\r\x12)\n\x08language\x18\x05 \x01(\x05:\x01\x30\x42\x14\x82\xb5\x18\x10\x44\x65sired language\"\xcd\x01\n(CPublishedFile_GetChangeHistory_Response\x12\x44\n\x07\x63hanges\x18\x01 \x03(\x0b\x32\x33.CPublishedFile_GetChangeHistory_Response.ChangeLog\x12\r\n\x05total\x18\x02 \x01(\r\x1aL\n\tChangeLog\x12\x11\n\ttimestamp\x18\x01 \x01(\r\x12\x1a\n\x12\x63hange_description\x18\x02 \x01(\t\x12\x10\n\x08language\x18\x03 \x01(\x05\"\xd1\x05\n)CPublishedFile_RefreshVotingQueue_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x42\n\x12matching_file_type\x18\x02 \x01(\rB&\x82\xb5\x18\"EPublishedFileInfoMatchingFileType\x12l\n\x04tags\x18\x03 \x03(\tB^\x82\xb5\x18ZInclude files that have all the tags or any of the tags if match_all_tags is set to false.\x12\x95\x01\n\x0ematch_all_tags\x18\x04 \x01(\x08:\x04trueBw\x82\xb5\x18sIf true, then files must have all the tags specified.  If false, then must have at least one of the tags specified.\x12I\n\rexcluded_tags\x18\x05 \x03(\tB2\x82\xb5\x18.Exclude any files that have any of these tags.\x12j\n\x12\x64\x65sired_queue_size\x18\x06 \x01(\rBN\x82\xb5\x18JDesired number of items in the voting queue.  May be clamped by the server\x12\x93\x01\n\x10\x64\x65sired_revision\x18\x08 \x01(\x0e\x32\x17.EPublishedFileRevision: k_EPublishedFileRevision_DefaultB>\x82\xb5\x18:Filter to items that have data for the specified revision.\",\n*CPublishedFile_RefreshVotingQueue_Response\"\xb6\x1b\n!CPublishedFile_QueryFiles_Request\x12L\n\nquery_type\x18\x01 \x01(\rB8\x82\xb5\x18\x34\x65numeration EPublishedFileQueryType in clientenums.h\x12\x1e\n\x04page\x18\x02 \x01(\rB\x10\x82\xb5\x18\x0c\x43urrent page\x12\xe8\x01\n\x06\x63ursor\x18\' \x01(\tB\xd7\x01\x82\xb5\x18\xd2\x01\x43ursor to paginate through the results (set to \'*\' for the first request).  Prefer this over using the page parameter, as it will allow you to do deep pagination.  When used, the page parameter will be ignored.\x12P\n\nnumperpage\x18\x03 \x01(\r:\x01\x31\x42\x39\x82\xb5\x18\x35(Optional) The number of results, per page to return.\x12\x35\n\rcreator_appid\x18\x04 \x01(\rB\x1e\x82\xb5\x18\x1a\x41pp that created the files\x12.\n\x05\x61ppid\x18\x05 \x01(\rB\x1f\x82\xb5\x18\x1b\x41pp that consumes the files\x12N\n\x0crequiredtags\x18\x06 \x03(\tB8\x82\xb5\x18\x34Tags to match on. See match_all_tags parameter below\x12l\n\x0c\x65xcludedtags\x18\x07 \x03(\tBV\x82\xb5\x18R(Optional) Tags that must NOT be present on a published file to satisfy the query.\x12\x8a\x01\n\x0ematch_all_tags\x18\x08 \x01(\x08:\x04trueBl\x82\xb5\x18hIf true, then items must have all the tags specified, otherwise they must have at least one of the tags.\x12Q\n\x0erequired_flags\x18\t \x03(\tB9\x82\xb5\x18\x35Required flags that must be set on any returned items\x12K\n\romitted_flags\x18\n \x03(\tB4\x82\xb5\x18\x30\x46lags that must not be set on any returned items\x12I\n\x0bsearch_text\x18\x0b \x01(\tB4\x82\xb5\x18\x30Text to match in the item\'s title or description\x12\x38\n\x08\x66iletype\x18\x0c \x01(\rB&\x82\xb5\x18\"EPublishedFileInfoMatchingFileType\x12P\n\x15\x63hild_publishedfileid\x18\r \x01(\x06\x42\x31\x82\xb5\x18-Find all items that reference the given item.\x12\x82\x01\n\x04\x64\x61ys\x18\x0e \x01(\rBt\x82\xb5\x18pIf query_type is k_PublishedFileQueryType_RankedByTrend, then this is the number of days to get votes for [1,7].\x12\xb0\x01\n\x19include_recent_votes_only\x18\x0f \x01(\x08\x42\x8c\x01\x82\xb5\x18\x87\x01If query_type is k_PublishedFileQueryType_RankedByTrend, then limit result set just to items that have votes within the day range given\x12j\n\x15\x63\x61\x63he_max_age_seconds\x18\x1f \x01(\r:\x01\x30\x42H\x82\xb5\x18\x44\x41llow stale data to be returned for the specified number of seconds.\x12`\n\x08language\x18! \x01(\x05:\x01\x30\x42K\x82\xb5\x18GLanguage to search in and also what gets returned. Defaults to English.\x12l\n\x10required_kv_tags\x18\" \x03(\x0b\x32(.CPublishedFile_QueryFiles_Request.KVTagB(\x82\xb5\x18$Required key-value tags to match on.\x12\xa1\x01\n\ttaggroups\x18* \x03(\x0b\x32+.CPublishedFile_QueryFiles_Request.TagGroupBa\x82\xb5\x18](Optional) At least one of the tags must be present on a published file to satisfy the query.\x12i\n\ttotalonly\x18\x10 \x01(\x08\x42V\x82\xb5\x18R(Optional) If true, only return the total number of files that satisfy this query.\x12n\n\x08ids_only\x18# \x01(\x08\x42\\\x82\xb5\x18X(Optional) If true, only return the published file ids of files that satisfy this query.\x12.\n\x10return_vote_data\x18\x11 \x01(\x08\x42\x14\x82\xb5\x18\x10Return vote data\x12\x38\n\x0breturn_tags\x18\x12 \x01(\x08\x42#\x82\xb5\x18\x1fReturn tags in the file details\x12\x45\n\x0ereturn_kv_tags\x18\x13 \x01(\x08\x42-\x82\xb5\x18)Return key-value tags in the file details\x12W\n\x0freturn_previews\x18\x14 \x01(\x08\x42>\x82\xb5\x18:Return preview image and video details in the file details\x12\x46\n\x0freturn_children\x18\x15 \x01(\x08\x42-\x82\xb5\x18)Return child item ids in the file details\x12\x66\n\x18return_short_description\x18\x16 \x01(\x08\x42\x44\x82\xb5\x18@Populate the short_description field instead of file_description\x12K\n\x14return_for_sale_data\x18\x1e \x01(\x08\x42-\x82\xb5\x18)Return pricing information, if applicable\x12\x39\n\x0freturn_metadata\x18  \x01(\x08:\x05\x66\x61lseB\x19\x82\xb5\x18\x15Populate the metadata\x12g\n\x15return_playtime_stats\x18$ \x01(\rBH\x82\xb5\x18\x44Return playtime stats for the specified number of days before today.\x12\xb7\x01\n\x0ereturn_details\x18% \x01(\x08\x42\x9e\x01\x82\xb5\x18\x99\x01\x42y default, if none of the other \'return_*\' fields are set, only some voting details are returned. Set this to true to return the default set of details.\x12\x46\n\x18strip_description_bbcode\x18& \x01(\x08\x42$\x82\xb5\x18 Strips BBCode from descriptions.\x12\x84\x01\n\x10\x64\x65sired_revision\x18( \x01(\x0e\x32\x17.EPublishedFileRevision: k_EPublishedFileRevision_DefaultB/\x82\xb5\x18+Return the data for the specified revision.\x12W\n\x10return_reactions\x18+ \x01(\x08:\x05\x66\x61lseB6\x82\xb5\x18\x32If true, then reactions to items will be returned.\x1a#\n\x05KVTag\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\x1a\x18\n\x08TagGroup\x12\x0c\n\x04tags\x18\x01 \x03(\t\"\x85\x03\n\"CPublishedFile_QueryFiles_Response\x12T\n\x05total\x18\x01 \x01(\rBE\x82\xb5\x18\x41Number of matches found, not necessarily number of items returned\x12\x8d\x01\n\x14publishedfiledetails\x18\x02 \x03(\x0b\x32\x15.PublishedFileDetailsBX\x82\xb5\x18TEach file details will be populated, depending on what return values were requested.\x12y\n\x0bnext_cursor\x18\x03 \x01(\tBd\x82\xb5\x18`If a paging cursor was used, then this will be the next cursor to use for paging through results\"i\n)CPublishedFile_AddAppRelationship_Request\x12\x17\n\x0fpublishedfileid\x18\x01 \x01(\x04\x12\r\n\x05\x61ppid\x18\x02 \x01(\r\x12\x14\n\x0crelationship\x18\x03 \x01(\r\",\n*CPublishedFile_AddAppRelationship_Response\"l\n,CPublishedFile_RemoveAppRelationship_Request\x12\x17\n\x0fpublishedfileid\x18\x01 \x01(\x04\x12\r\n\x05\x61ppid\x18\x02 \x01(\r\x12\x14\n\x0crelationship\x18\x03 \x01(\r\"/\n-CPublishedFile_RemoveAppRelationship_Response\"E\n*CPublishedFile_GetAppRelationships_Request\x12\x17\n\x0fpublishedfileid\x18\x01 \x01(\x04\"\xbe\x01\n+CPublishedFile_GetAppRelationships_Response\x12W\n\x11\x61pp_relationships\x18\x03 \x03(\x0b\x32<.CPublishedFile_GetAppRelationships_Response.AppRelationship\x1a\x36\n\x0f\x41ppRelationship\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x14\n\x0crelationship\x18\x02 \x01(\r\"W\n,CPublishedFile_StartPlaytimeTracking_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x18\n\x10publishedfileids\x18\x02 \x03(\x04\"/\n-CPublishedFile_StartPlaytimeTracking_Response\"V\n+CPublishedFile_StopPlaytimeTracking_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x18\n\x10publishedfileids\x18\x02 \x03(\x04\".\n,CPublishedFile_StopPlaytimeTracking_Response\"J\n9CPublishedFile_StopPlaytimeTrackingForAllAppItems_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\"<\n:CPublishedFile_StopPlaytimeTrackingForAllAppItems_Response\"\x81\x02\n6CPublishedFile_SetPlaytimeForControllerConfigs_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12n\n\x17\x63ontroller_config_usage\x18\x02 \x03(\x0b\x32M.CPublishedFile_SetPlaytimeForControllerConfigs_Request.ControllerConfigUsage\x1aH\n\x15\x43ontrollerConfigUsage\x12\x17\n\x0fpublishedfileid\x18\x01 \x01(\x04\x12\x16\n\x0eseconds_active\x18\x02 \x01(\x02\"9\n7CPublishedFile_SetPlaytimeForControllerConfigs_Response\"Y\n\x1f\x43PublishedFile_AddChild_Request\x12\x17\n\x0fpublishedfileid\x18\x01 \x01(\x04\x12\x1d\n\x15\x63hild_publishedfileid\x18\x02 \x01(\x04\"\"\n CPublishedFile_AddChild_Response\"\\\n\"CPublishedFile_RemoveChild_Request\x12\x17\n\x0fpublishedfileid\x18\x01 \x01(\x04\x12\x1d\n\x15\x63hild_publishedfileid\x18\x02 \x01(\x04\"%\n#CPublishedFile_RemoveChild_Response\"E\n)CPublishedFile_GetUserVoteSummary_Request\x12\x18\n\x10publishedfileids\x18\x01 \x03(\x06\"\xda\x01\n*CPublishedFile_GetUserVoteSummary_Response\x12J\n\tsummaries\x18\x01 \x03(\x0b\x32\x37.CPublishedFile_GetUserVoteSummary_Response.VoteSummary\x1a`\n\x0bVoteSummary\x12\x17\n\x0fpublishedfileid\x18\x01 \x01(\x06\x12\x10\n\x08vote_for\x18\x02 \x01(\x08\x12\x14\n\x0cvote_against\x18\x03 \x01(\x08\x12\x10\n\x08reported\x18\x04 \x01(\x08\"\xaf\x05\n*CPublishedFile_FileSubscribed_Notification\x12@\n\x11published_file_id\x18\x01 \x01(\x06\x42%\x82\xb5\x18!PublishedFileID_t for the content\x12\x0e\n\x06\x61pp_id\x18\x02 \x01(\r\x12:\n\rfile_hcontent\x18\x03 \x01(\x06\x42#\x82\xb5\x18\x1fUGC file handle or manifest GID\x12\x11\n\tfile_size\x18\x04 \x01(\r\x12\x18\n\x10rtime_subscribed\x18\x05 \x01(\r\x12N\n\x10is_depot_content\x18\x06 \x01(\x08\x42\x34\x82\xb5\x18\x30True if workshop item is delivered via Steampipe\x12\x34\n\rrtime_updated\x18\x07 \x01(\rB\x1d\x82\xb5\x18\x19Last time content updated\x12\x82\x01\n\trevisions\x18\x08 \x03(\x0b\x32\x38.CPublishedFile_FileSubscribed_Notification.RevisionDataB5\x82\xb5\x18\x31\x44\x61ta for each of the revisions that this item has\x1a\xba\x01\n\x0cRevisionData\x12K\n\x08revision\x18\x01 \x01(\x0e\x32\x17.EPublishedFileRevision: k_EPublishedFileRevision_Default\x12\'\n\rfile_hcontent\x18\x02 \x01(\x06\x42\x10\x82\xb5\x18\x0cManifest GID\x12\x34\n\rrtime_updated\x18\x03 \x01(\rB\x1d\x82\xb5\x18\x19Last time content updated\"\x80\x01\n,CPublishedFile_FileUnsubscribed_Notification\x12@\n\x11published_file_id\x18\x01 \x01(\x06\x42%\x82\xb5\x18!PublishedFileID_t for the content\x12\x0e\n\x06\x61pp_id\x18\x02 \x01(\r\"\x82\x01\n.CPublishedFile_FileDeleted_Client_Notification\x12@\n\x11published_file_id\x18\x01 \x01(\x06\x42%\x82\xb5\x18!PublishedFileID_t for the content\x12\x0e\n\x06\x61pp_id\x18\x02 \x01(\r*\xab\x02\n\x16\x45PublishedFileRevision\x12$\n k_EPublishedFileRevision_Default\x10\x00\x12#\n\x1fk_EPublishedFileRevision_Latest\x10\x01\x12-\n)k_EPublishedFileRevision_ApprovedSnapshot\x10\x02\x12\x33\n/k_EPublishedFileRevision_ApprovedSnapshot_China\x10\x03\x12-\n)k_EPublishedFileRevision_RejectedSnapshot\x10\x04\x12\x33\n/k_EPublishedFileRevision_RejectedSnapshot_China\x10\x05*\xc8\x01\n\x1b\x45PublishedFileForSaleStatus\x12\x16\n\x12k_PFFSS_NotForSale\x10\x00\x12\x1b\n\x17k_PFFSS_PendingApproval\x10\x01\x12\x1b\n\x17k_PFFSS_ApprovedForSale\x10\x02\x12\x1b\n\x17k_PFFSS_RejectedForSale\x10\x03\x12\x1b\n\x17k_PFFSS_NoLongerForSale\x10\x04\x12\x1d\n\x19k_PFFSS_TentativeApproval\x10\x05\x32\xd7\x1e\n\rPublishedFile\x12\x81\x01\n\tSubscribe\x12!.CPublishedFile_Subscribe_Request\x1a\".CPublishedFile_Subscribe_Response\"-\x82\xb5\x18)Subscribes the user to the published file\x12\x8b\x01\n\x0bUnsubscribe\x12#.CPublishedFile_Unsubscribe_Request\x1a$.CPublishedFile_Unsubscribe_Response\"1\x82\xb5\x18-Unsubscribes the user from the published file\x12\x96\x01\n\x0c\x43\x61nSubscribe\x12$.CPublishedFile_CanSubscribe_Request\x1a%.CPublishedFile_CanSubscribe_Response\"9\x82\xb5\x18\x35\x43heck if the user can subscribe to the published file\x12\x80\x01\n\x07Publish\x12\x1f.CPublishedFile_Publish_Request\x1a .CPublishedFile_Publish_Response\"2\x82\xb5\x18.Publishes a clouded user file to the Workshop.\x12\x90\x01\n\nGetDetails\x12\".CPublishedFile_GetDetails_Request\x1a#.CPublishedFile_GetDetails_Response\"9\x82\xb5\x18\x35Retrieves information about a set of published files.\x12\x93\x01\n\x0bGetItemInfo\x12#.CPublishedFile_GetItemInfo_Request\x1a$.CPublishedFile_GetItemInfo_Response\"9\x82\xb5\x18\x35Retrieves information about a set of published files.\x12\x85\x01\n\x0cGetUserFiles\x12$.CPublishedFile_GetUserFiles_Request\x1a%.CPublishedFile_GetUserFiles_Response\"(\x82\xb5\x18$Retrieves files published by a user.\x12\xd5\x01\n\x1a\x41reFilesInSubscriptionList\x12\x32.CPublishedFile_AreFilesInSubscriptionList_Request\x1a\x33.CPublishedFile_AreFilesInSubscriptionList_Response\"N\x82\xb5\x18JDetermines which files in the given list are in a user\'s subscription list\x12z\n\x06Update\x12\x1e.CPublishedFile_Update_Request\x1a\x1f.CPublishedFile_Update_Response\"/\x82\xb5\x18+Updates information about a published file.\x12\xc0\x01\n\x15GetChangeHistoryEntry\x12-.CPublishedFile_GetChangeHistoryEntry_Request\x1a..CPublishedFile_GetChangeHistoryEntry_Response\"H\x82\xb5\x18\x44Returns data on a specific change history entry for a published file\x12\xa4\x01\n\x10GetChangeHistory\x12(.CPublishedFile_GetChangeHistory_Request\x1a).CPublishedFile_GetChangeHistory_Response\";\x82\xb5\x18\x37Returns data on the change history for a published file\x12\x98\x01\n\x12RefreshVotingQueue\x12*.CPublishedFile_RefreshVotingQueue_Request\x1a+.CPublishedFile_RefreshVotingQueue_Response\")\x82\xb5\x18%Refresh the voting queue for the user\x12\x86\x01\n\nQueryFiles\x12\".CPublishedFile_QueryFiles_Request\x1a#.CPublishedFile_QueryFiles_Response\"/\x82\xb5\x18+Performs a search query for published files\x12\xb3\x01\n\x12\x41\x64\x64\x41ppRelationship\x12*.CPublishedFile_AddAppRelationship_Request\x1a+.CPublishedFile_AddAppRelationship_Response\"D\x82\xb5\x18@Adds a relationship between the published file and the given app\x12\xbe\x01\n\x15RemoveAppRelationship\x12-.CPublishedFile_RemoveAppRelationship_Request\x1a..CPublishedFile_RemoveAppRelationship_Response\"F\x82\xb5\x18\x42Remove a relationship between the published file and the given app\x12\xb3\x01\n\x13GetAppRelationships\x12+.CPublishedFile_GetAppRelationships_Request\x1a,.CPublishedFile_GetAppRelationships_Response\"A\x82\xb5\x18=Returns the list of app relationships for this published file\x12\xb3\x01\n\x15StartPlaytimeTracking\x12-.CPublishedFile_StartPlaytimeTracking_Request\x1a..CPublishedFile_StartPlaytimeTracking_Response\";\x82\xb5\x18\x37Start usage tracking for a given set of published files\x12\xb0\x01\n\x14StopPlaytimeTracking\x12,.CPublishedFile_StopPlaytimeTracking_Request\x1a-.CPublishedFile_StopPlaytimeTracking_Response\";\x82\xb5\x18\x37Stops usage tracking for a given set of published files\x12\xed\x01\n\"StopPlaytimeTrackingForAllAppItems\x12:.CPublishedFile_StopPlaytimeTrackingForAllAppItems_Request\x1a;.CPublishedFile_StopPlaytimeTrackingForAllAppItems_Response\"N\x82\xb5\x18JStops usage tracking for all items currently tracked for the specified app\x12\x98\x02\n\x1fSetPlaytimeForControllerConfigs\x12\x37.CPublishedFile_SetPlaytimeForControllerConfigs_Request\x1a\x38.CPublishedFile_SetPlaytimeForControllerConfigs_Response\"\x81\x01\x82\xb5\x18}Stops usage tracking all controller configs for the given app and set the usage time for the for the given controller configs\x12\x8f\x01\n\x08\x41\x64\x64\x43hild\x12 .CPublishedFile_AddChild_Request\x1a!.CPublishedFile_AddChild_Response\">\x82\xb5\x18:Adds a parent->child relationship between the given items.\x12\x99\x01\n\x0bRemoveChild\x12#.CPublishedFile_RemoveChild_Request\x1a$.CPublishedFile_RemoveChild_Response\"?\x82\xb5\x18;Removes parent->child relationship between the given items.\x12\x88\x01\n\x12GetUserVoteSummary\x12*.CPublishedFile_GetUserVoteSummary_Request\x1a+.CPublishedFile_GetUserVoteSummary_Response\"\x19\x82\xb5\x18\x15Get user vote summary\x1a+\x82\xb5\x18\'A service to access published file data2\x8d\x04\n\x13PublishedFileClient\x12\x93\x01\n\x14NotifyFileSubscribed\x12+.CPublishedFile_FileSubscribed_Notification\x1a\x0b.NoResponse\"A\x82\xb5\x18=Notification from the server when a user subscribes to a file\x12\x9b\x01\n\x16NotifyFileUnsubscribed\x12-.CPublishedFile_FileUnsubscribed_Notification\x1a\x0b.NoResponse\"E\x82\xb5\x18\x41Notification from the server when a user unsubscribes from a file\x12\x94\x01\n\x11NotifyFileDeleted\x12/.CPublishedFile_FileDeleted_Client_Notification\x1a\x0b.NoResponse\"A\x82\xb5\x18=Notification from the server when a published file is deleted\x1a+\x82\xb5\x18#Published file client notifications\xc0\xb5\x18\x02\x42\x03\x90\x01\x01')
+  serialized_pb=_b('\n!steammessages_publishedfile.proto\x1a steammessages_unified_base.proto\x1a\x0b\x65nums.proto\"t\n CPublishedFile_Subscribe_Request\x12\x17\n\x0fpublishedfileid\x18\x01 \x01(\x04\x12\x11\n\tlist_type\x18\x02 \x01(\r\x12\r\n\x05\x61ppid\x18\x03 \x01(\x05\x12\x15\n\rnotify_client\x18\x04 \x01(\x08\"#\n!CPublishedFile_Subscribe_Response\"v\n\"CPublishedFile_Unsubscribe_Request\x12\x17\n\x0fpublishedfileid\x18\x01 \x01(\x04\x12\x11\n\tlist_type\x18\x02 \x01(\r\x12\r\n\x05\x61ppid\x18\x03 \x01(\x05\x12\x15\n\rnotify_client\x18\x04 \x01(\x08\"%\n#CPublishedFile_Unsubscribe_Response\">\n#CPublishedFile_CanSubscribe_Request\x12\x17\n\x0fpublishedfileid\x18\x01 \x01(\x04\"=\n$CPublishedFile_CanSubscribe_Response\x12\x15\n\rcan_subscribe\x18\x01 \x01(\x08\"\xcc\n\n\x1e\x43PublishedFile_Publish_Request\x12<\n\x05\x61ppid\x18\x01 \x01(\rB-\x82\xb5\x18)App Id this file is being published FROM.\x12\x43\n\x0e\x63onsumer_appid\x18\x02 \x01(\rB+\x82\xb5\x18\'App Id this file is being published TO.\x12K\n\rcloudfilename\x18\x03 \x01(\tB4\x82\xb5\x18\x30Name of the file to publish in the user\'s cloud.\x12[\n\x15preview_cloudfilename\x18\x04 \x01(\tB<\x82\xb5\x18\x38Name of the file to use as the published file\'s preview.\x12\x35\n\x05title\x18\x05 \x01(\tB&\x82\xb5\x18\"Text title for the published file.\x12\x46\n\x10\x66ile_description\x18\x06 \x01(\tB,\x82\xb5\x18(Text description for the published file.\x12L\n\tfile_type\x18\x07 \x01(\rB9\x82\xb5\x18\x35(EWorkshopFileType) Type of Workshop file to publish.\x12I\n\x16\x63onsumer_shortcut_name\x18\x08 \x01(\tB)\x82\xb5\x18%Shortcut name for the published file.\x12I\n\x10youtube_username\x18\t \x01(\tB/\x82\xb5\x18+(Optional) User\'s YouTube account username.\x12\\\n\x0fyoutube_videoid\x18\n \x01(\tBC\x82\xb5\x18?(Optional) Video Id of a YouTube video for this published file.\x12\x81\x01\n\nvisibility\x18\x0b \x01(\rBm\x82\xb5\x18i(ERemoteStoragePublishedFileVisibility) Visibility of the published file (private, friends, public, etc.)\x12k\n\x0credirect_uri\x18\x0c \x01(\tBU\x82\xb5\x18Q(Optional) If supplied, the resulting published file\'s Id is appended to the URI.\x12\x44\n\x04tags\x18\r \x03(\tB6\x82\xb5\x18\x32\x41rray of text tags to apply to the published file.\x12Y\n\x0f\x63ollection_type\x18\x0e \x01(\tB@\x82\xb5\x18<(Optional) Type of collection the published file represents.\x12M\n\tgame_type\x18\x0f \x01(\tB:\x82\xb5\x18\x36(Optional) Type of game the published file represents.\x12[\n\x03url\x18\x10 \x01(\tBN\x82\xb5\x18J(Optional) If this represents a game, this is the URL to that game\'s page.\"P\n\x1f\x43PublishedFile_Publish_Response\x12\x17\n\x0fpublishedfileid\x18\x01 \x01(\x04\x12\x14\n\x0credirect_uri\x18\x02 \x01(\t\"\x8d\n\n!CPublishedFile_GetDetails_Request\x12P\n\x10publishedfileids\x18\x01 \x03(\x06\x42\x36\x82\xb5\x18\x32Set of published file Ids to retrieve details for.\x12Q\n\x0bincludetags\x18\x02 \x01(\x08\x42<\x82\xb5\x18\x38If true, return tag information in the returned details.\x12\x63\n\x19includeadditionalpreviews\x18\x03 \x01(\x08\x42@\x82\xb5\x18<If true, return preview information in the returned details.\x12N\n\x0fincludechildren\x18\x04 \x01(\x08\x42\x35\x82\xb5\x18\x31If true, return children in the returned details.\x12R\n\rincludekvtags\x18\x05 \x01(\x08\x42;\x82\xb5\x18\x37If true, return key value tags in the returned details.\x12L\n\x0cincludevotes\x18\x06 \x01(\x08\x42\x36\x82\xb5\x18\x32If true, return vote data in the returned details.\x12\x63\n\x11short_description\x18\x08 \x01(\x08\x42H\x82\xb5\x18\x44If true, return a short description instead of the full description.\x12L\n\x12includeforsaledata\x18\n \x01(\x08\x42\x30\x82\xb5\x18,If true, return pricing data, if applicable.\x12\x42\n\x0fincludemetadata\x18\x0b \x01(\x08\x42)\x82\xb5\x18%If true, populate the metadata field.\x12U\n\x08language\x18\x0c \x01(\x05:\x01\x30\x42@\x82\xb5\x18<Specifies the localized text to return. Defaults to English.\x12g\n\x15return_playtime_stats\x18\r \x01(\rBH\x82\xb5\x18\x44Return playtime stats for the specified number of days before today.\x12\r\n\x05\x61ppid\x18\x0e \x01(\r\x12\x46\n\x18strip_description_bbcode\x18\x0f \x01(\x08\x42$\x82\xb5\x18 Strips BBCode from descriptions.\x12\x84\x01\n\x10\x64\x65sired_revision\x18\x10 \x01(\x0e\x32\x17.EPublishedFileRevision: k_EPublishedFileRevision_DefaultB/\x82\xb5\x18+Return the data for the specified revision.\x12W\n\x10includereactions\x18\x11 \x01(\x08:\x05\x66\x61lseB6\x82\xb5\x18\x32If true, then reactions to items will be returned.\"\xf2\x18\n\x14PublishedFileDetails\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x17\n\x0fpublishedfileid\x18\x02 \x01(\x04\x12\x0f\n\x07\x63reator\x18\x03 \x01(\x06\x12\x15\n\rcreator_appid\x18\x04 \x01(\r\x12\x16\n\x0e\x63onsumer_appid\x18\x05 \x01(\r\x12\x1b\n\x13\x63onsumer_shortcutid\x18\x06 \x01(\r\x12\x10\n\x08\x66ilename\x18\x07 \x01(\t\x12\x11\n\tfile_size\x18\x08 \x01(\x04\x12\x19\n\x11preview_file_size\x18\t \x01(\x04\x12\x10\n\x08\x66ile_url\x18\n \x01(\t\x12\x13\n\x0bpreview_url\x18\x0b \x01(\t\x12\x16\n\x0eyoutubevideoid\x18\x0c \x01(\t\x12\x0b\n\x03url\x18\r \x01(\t\x12\x15\n\rhcontent_file\x18\x0e \x01(\x06\x12\x18\n\x10hcontent_preview\x18\x0f \x01(\x06\x12\r\n\x05title\x18\x10 \x01(\t\x12\x18\n\x10\x66ile_description\x18\x11 \x01(\t\x12\x19\n\x11short_description\x18\x12 \x01(\t\x12\x14\n\x0ctime_created\x18\x13 \x01(\r\x12\x14\n\x0ctime_updated\x18\x14 \x01(\r\x12\x12\n\nvisibility\x18\x15 \x01(\r\x12\r\n\x05\x66lags\x18\x16 \x01(\r\x12\x15\n\rworkshop_file\x18\x17 \x01(\x08\x12\x19\n\x11workshop_accepted\x18\x18 \x01(\x08\x12\x1a\n\x12show_subscribe_all\x18\x19 \x01(\x08\x12\x1e\n\x16num_comments_developer\x18\x1a \x01(\x05\x12\x1b\n\x13num_comments_public\x18\x1b \x01(\x05\x12\x0e\n\x06\x62\x61nned\x18\x1c \x01(\x08\x12\x12\n\nban_reason\x18\x1d \x01(\t\x12\x0e\n\x06\x62\x61nner\x18\x1e \x01(\x06\x12\x16\n\x0e\x63\x61n_be_deleted\x18\x1f \x01(\x08\x12\x14\n\x0cincompatible\x18  \x01(\x08\x12\x10\n\x08\x61pp_name\x18! \x01(\t\x12\x11\n\tfile_type\x18\" \x01(\r\x12\x15\n\rcan_subscribe\x18# \x01(\x08\x12\x15\n\rsubscriptions\x18$ \x01(\r\x12\x11\n\tfavorited\x18% \x01(\r\x12\x11\n\tfollowers\x18& \x01(\r\x12\x1e\n\x16lifetime_subscriptions\x18\' \x01(\r\x12\x1a\n\x12lifetime_favorited\x18( \x01(\r\x12\x1a\n\x12lifetime_followers\x18) \x01(\r\x12\x19\n\x11lifetime_playtime\x18> \x01(\x04\x12\"\n\x1alifetime_playtime_sessions\x18? \x01(\x04\x12\r\n\x05views\x18* \x01(\r\x12\x13\n\x0bimage_width\x18+ \x01(\r\x12\x14\n\x0cimage_height\x18, \x01(\r\x12\x11\n\timage_url\x18- \x01(\t\x12\x13\n\x0bspoiler_tag\x18. \x01(\x08\x12\x12\n\nshortcutid\x18/ \x01(\r\x12\x14\n\x0cshortcutname\x18\x30 \x01(\t\x12\x14\n\x0cnum_children\x18\x31 \x01(\r\x12\x13\n\x0bnum_reports\x18\x32 \x01(\r\x12/\n\x08previews\x18\x33 \x03(\x0b\x32\x1d.PublishedFileDetails.Preview\x12\'\n\x04tags\x18\x34 \x03(\x0b\x32\x19.PublishedFileDetails.Tag\x12-\n\x08\x63hildren\x18\x35 \x03(\x0b\x32\x1b.PublishedFileDetails.Child\x12+\n\x06kvtags\x18\x36 \x03(\x0b\x32\x1b.PublishedFileDetails.KVTag\x12\x31\n\tvote_data\x18\x37 \x01(\x0b\x32\x1e.PublishedFileDetails.VoteData\x12;\n\x0eplaytime_stats\x18@ \x01(\x0b\x32#.PublishedFileDetails.PlaytimeStats\x12r\n\x0ftime_subscribed\x18\x38 \x01(\rBY\x82\xb5\x18UOnly valid in PublishedFile.GetUserFiles and not normal PublishedFile.GetDetail calls\x12\x61\n\rfor_sale_data\x18\x39 \x01(\x0b\x32!.PublishedFileDetails.ForSaleDataB\'\x82\xb5\x18#Pricing information, if applicable.\x12\x37\n\x08metadata\x18: \x01(\tB%\x82\xb5\x18!Metadata associated with the item\x12\x43\n\x08language\x18= \x01(\x05:\x01\x30\x42.\x82\xb5\x18*The language of the title and description.\x12\x1f\n\x17maybe_inappropriate_sex\x18\x41 \x01(\x08\x12$\n\x1cmaybe_inappropriate_violence\x18\x42 \x01(\x08\x12Q\n\x16revision_change_number\x18\x43 \x01(\x04\x42\x31\x82\xb5\x18-The change number for the specified revision.\x12\xdc\x01\n\x08revision\x18\x44 \x01(\x0e\x32\x17.EPublishedFileRevision: k_EPublishedFileRevision_DefaultB\x8e\x01\x82\xb5\x18\x89\x01The revision of the data returned, usually k_EPublishedFileRevision_Latest, but can be another revision/snapshot depending on the caller.\x12M\n\x13\x61vailable_revisions\x18\x45 \x03(\x0e\x32\x17.EPublishedFileRevisionB\x17\x82\xb5\x18\x13\x41vailable revisions\x12M\n\treactions\x18\x46 \x03(\x0b\x32\x1e.PublishedFileDetails.ReactionB\x1a\x82\xb5\x18\x16Reactions to this item\x12[\n\x15\x62\x61n_text_check_result\x18G \x01(\x0e\x32\x17.EBanContentCheckResult:#k_EBanContentCheckResult_NotScanned\x1a;\n\x03Tag\x12\x0b\n\x03tag\x18\x01 \x01(\t\x12\x11\n\tadminonly\x18\x02 \x01(\x08\x12\x14\n\x0c\x64isplay_name\x18\x03 \x01(\t\x1a\xa6\x01\n\x07Preview\x12\x11\n\tpreviewid\x18\x01 \x01(\x04\x12\x11\n\tsortorder\x18\x02 \x01(\r\x12\x0b\n\x03url\x18\x03 \x01(\t\x12\x0c\n\x04size\x18\x04 \x01(\r\x12\x10\n\x08\x66ilename\x18\x05 \x01(\t\x12\x16\n\x0eyoutubevideoid\x18\x06 \x01(\t\x12\x14\n\x0cpreview_type\x18\x07 \x01(\r\x12\x1a\n\x12\x65xternal_reference\x18\x08 \x01(\t\x1a\x46\n\x05\x43hild\x12\x17\n\x0fpublishedfileid\x18\x01 \x01(\x04\x12\x11\n\tsortorder\x18\x02 \x01(\r\x12\x11\n\tfile_type\x18\x03 \x01(\r\x1a#\n\x05KVTag\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\x1a?\n\x08VoteData\x12\r\n\x05score\x18\x01 \x01(\x02\x12\x10\n\x08votes_up\x18\x02 \x01(\r\x12\x12\n\nvotes_down\x18\x03 \x01(\r\x1a\xdc\x01\n\x0b\x46orSaleData\x12\x13\n\x0bis_for_sale\x18\x01 \x01(\x08\x12\x16\n\x0eprice_category\x18\x02 \x01(\r\x12\x41\n\x07\x65status\x18\x03 \x01(\x0e\x32\x1c.EPublishedFileForSaleStatus:\x12k_PFFSS_NotForSale\x12\x1c\n\x14price_category_floor\x18\x04 \x01(\r\x12\"\n\x1aprice_is_pay_what_you_want\x18\x05 \x01(\x08\x12\x1b\n\x13\x64iscount_percentage\x18\x06 \x01(\r\x1a?\n\rPlaytimeStats\x12\x18\n\x10playtime_seconds\x18\x01 \x01(\x04\x12\x14\n\x0cnum_sessions\x18\x02 \x01(\x04\x1a-\n\x08Reaction\x12\x12\n\nreactionid\x18\x01 \x01(\r\x12\r\n\x05\x63ount\x18\x02 \x01(\r\"Y\n\"CPublishedFile_GetDetails_Response\x12\x33\n\x14publishedfiledetails\x18\x01 \x03(\x0b\x32\x15.PublishedFileDetails\"\xe2\x02\n\"CPublishedFile_GetItemInfo_Request\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x19\n\x11last_time_updated\x18\x02 \x01(\r\x12H\n\x0eworkshop_items\x18\x03 \x03(\x0b\x32\x30.CPublishedFile_GetItemInfo_Request.WorkshopItem\x1a\xc6\x01\n\x0cWorkshopItem\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\x12\x14\n\x0ctime_updated\x18\x02 \x01(\r\x12\x84\x01\n\x10\x64\x65sired_revision\x18\x03 \x01(\x0e\x32\x17.EPublishedFileRevision: k_EPublishedFileRevision_DefaultB/\x82\xb5\x18+Return the data for the specified revision.\"\x89\x02\n#CPublishedFile_GetItemInfo_Response\x12\x13\n\x0bupdate_time\x18\x01 \x01(\r\x12M\n\x0eworkshop_items\x18\x02 \x03(\x0b\x32\x35.CPublishedFile_GetItemInfo_Response.WorkshopItemInfo\x12\x15\n\rprivate_items\x18\x03 \x03(\x06\x1ag\n\x10WorkshopItemInfo\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\x12\x14\n\x0ctime_updated\x18\x02 \x01(\r\x12\x13\n\x0bmanifest_id\x18\x03 \x01(\x06\x12\r\n\x05\x66lags\x18\x04 \x01(\r\"\x8e\x16\n#CPublishedFile_GetUserFiles_Request\x12J\n\x07steamid\x18\x01 \x01(\x06\x42\x39\x82\xb5\x18\x35Steam ID of the user whose files are being requested.\x12\x46\n\x05\x61ppid\x18\x02 \x01(\rB7\x82\xb5\x18\x33\x41pp Id of the app that the files were published to.\x12:\n\x04page\x18\x04 \x01(\r:\x01\x31\x42)\x82\xb5\x18%(Optional) Starting page for results.\x12P\n\nnumperpage\x18\x05 \x01(\r:\x01\x31\x42\x39\x82\xb5\x18\x35(Optional) The number of results, per page to return.\x12\x43\n\x04type\x18\x06 \x01(\t:\x07myfilesB,\x82\xb5\x18((Optional) Type of files to be returned.\x12Y\n\nsortmethod\x18\x07 \x01(\t:\x0blastupdatedB8\x82\xb5\x18\x34(Optional) Sorting method to use on returned values.\x12;\n\x07privacy\x18\t \x01(\rB*\x82\xb5\x18&(optional) Filter by privacy settings.\x12h\n\x0crequiredtags\x18\n \x03(\tBR\x82\xb5\x18N(Optional) Tags that must be present on a published file to satisfy the query.\x12l\n\x0c\x65xcludedtags\x18\x0b \x03(\tBV\x82\xb5\x18R(Optional) Tags that must NOT be present on a published file to satisfy the query.\x12n\n\x10required_kv_tags\x18\x1e \x03(\x0b\x32*.CPublishedFile_GetUserFiles_Request.KVTagB(\x82\xb5\x18$Required key-value tags to match on.\x12=\n\x08\x66iletype\x18\x0e \x01(\rB+\x82\xb5\x18\'(Optional) File type to match files to.\x12\x61\n\rcreator_appid\x18\x0f \x01(\rBJ\x82\xb5\x18\x46\x41pp Id of the app that published the files, only matched if specified.\x12I\n\x14match_cloud_filename\x18\x10 \x01(\tB+\x82\xb5\x18\'Match this cloud filename if specified.\x12j\n\x15\x63\x61\x63he_max_age_seconds\x18\x1b \x01(\r:\x01\x30\x42H\x82\xb5\x18\x44\x41llow stale data to be returned for the specified number of seconds.\x12U\n\x08language\x18\x1d \x01(\x05:\x01\x30\x42@\x82\xb5\x18<Specifies the localized text to return. Defaults to English.\x12\xa3\x01\n\ttaggroups\x18\" \x03(\x0b\x32-.CPublishedFile_GetUserFiles_Request.TagGroupBa\x82\xb5\x18](Optional) At least one of the tags must be present on a published file to satisfy the query.\x12i\n\ttotalonly\x18\x11 \x01(\x08\x42V\x82\xb5\x18R(Optional) If true, only return the total number of files that satisfy this query.\x12n\n\x08ids_only\x18\x12 \x01(\x08\x42\\\x82\xb5\x18X(Optional) If true, only return the published file ids of files that satisfy this query.\x12\x34\n\x10return_vote_data\x18\x13 \x01(\x08:\x04trueB\x14\x82\xb5\x18\x10Return vote data\x12\x38\n\x0breturn_tags\x18\x14 \x01(\x08\x42#\x82\xb5\x18\x1fReturn tags in the file details\x12K\n\x0ereturn_kv_tags\x18\x15 \x01(\x08:\x04trueB-\x82\xb5\x18)Return key-value tags in the file details\x12W\n\x0freturn_previews\x18\x16 \x01(\x08\x42>\x82\xb5\x18:Return preview image and video details in the file details\x12\x46\n\x0freturn_children\x18\x17 \x01(\x08\x42-\x82\xb5\x18)Return child item ids in the file details\x12l\n\x18return_short_description\x18\x18 \x01(\x08:\x04trueBD\x82\xb5\x18@Populate the short_description field instead of file_description\x12K\n\x14return_for_sale_data\x18\x1a \x01(\x08\x42-\x82\xb5\x18)Return pricing information, if applicable\x12?\n\x0freturn_metadata\x18\x1c \x01(\x08:\x05\x66\x61lseB\x1f\x82\xb5\x18\x1bPopulate the metadata field\x12g\n\x15return_playtime_stats\x18\x1f \x01(\rBH\x82\xb5\x18\x44Return playtime stats for the specified number of days before today.\x12\x46\n\x18strip_description_bbcode\x18  \x01(\x08\x42$\x82\xb5\x18 Strips BBCode from descriptions.\x12W\n\x10return_reactions\x18# \x01(\x08:\x05\x66\x61lseB6\x82\xb5\x18\x32If true, then reactions to items will be returned.\x12\x45\n\x13startindex_override\x18\x19 \x01(\rB(\x82\xb5\x18$Backwards compatible for the client.\x12\x84\x01\n\x10\x64\x65sired_revision\x18! \x01(\x0e\x32\x17.EPublishedFileRevision: k_EPublishedFileRevision_DefaultB/\x82\xb5\x18+Return the data for the specified revision.\x1a#\n\x05KVTag\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\x1a\x18\n\x08TagGroup\x12\x0c\n\x04tags\x18\x01 \x03(\t\"\x80\x02\n$CPublishedFile_GetUserFiles_Response\x12\r\n\x05total\x18\x01 \x01(\r\x12\x12\n\nstartindex\x18\x02 \x01(\r\x12\x33\n\x14publishedfiledetails\x18\x03 \x03(\x0b\x32\x15.PublishedFileDetails\x12\x37\n\x04\x61pps\x18\x04 \x03(\x0b\x32).CPublishedFile_GetUserFiles_Response.App\x1aG\n\x03\x41pp\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x12\n\nshortcutid\x18\x03 \x01(\r\x12\x0f\n\x07private\x18\x04 \x01(\x08\"\x9a\x02\n1CPublishedFile_AreFilesInSubscriptionList_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x18\n\x10publishedfileids\x18\x02 \x03(\x06\x12&\n\x08listtype\x18\x03 \x01(\rB\x14\x82\xb5\x18\x10See EUCMListType\x12<\n\x08\x66iletype\x18\x04 \x01(\rB*\x82\xb5\x18&See EPublishedFileInfoMatchingFileType\x12V\n\x10workshopfiletype\x18\x05 \x01(\rB<\x82\xb5\x18\x38See EWorkshopFileType.  If specified, overrides filetype\"\xb2\x01\n2CPublishedFile_AreFilesInSubscriptionList_Response\x12I\n\x05\x66iles\x18\x01 \x03(\x0b\x32:.CPublishedFile_AreFilesInSubscriptionList_Response.InList\x1a\x31\n\x06InList\x12\x17\n\x0fpublishedfileid\x18\x01 \x01(\x06\x12\x0e\n\x06inlist\x18\x02 \x01(\x08\"\x91\x06\n\x1d\x43PublishedFile_Update_Request\x12\x39\n\x05\x61ppid\x18\x01 \x01(\rB*\x82\xb5\x18&App Id this published file belongs to.\x12L\n\x0fpublishedfileid\x18\x02 \x01(\x06\x42\x33\x82\xb5\x18/Published file id of the file we\'d like update.\x12:\n\x05title\x18\x03 \x01(\tB+\x82\xb5\x18\'(Optional) Title of the published file.\x12K\n\x10\x66ile_description\x18\x04 \x01(\tB1\x82\xb5\x18-(Optional) Description of the published file.\x12\x44\n\nvisibility\x18\x05 \x01(\rB0\x82\xb5\x18,(Optional) Visibility of the published file.\x12@\n\x04tags\x18\x06 \x03(\tB2\x82\xb5\x18.(Optional) Set of tags for the published file.\x12\x41\n\x08\x66ilename\x18\x07 \x01(\tB/\x82\xb5\x18+(Optional) Filename for the published file.\x12Q\n\x10preview_filename\x18\x08 \x01(\tB7\x82\xb5\x18\x33(Optional) Preview filename for the published file.\x12^\n\x0bimage_width\x18\x0f \x01(\rBI\x82\xb5\x18\x45(Optional) If this is an image file, you can specify the image width.\x12`\n\x0cimage_height\x18\x10 \x01(\rBJ\x82\xb5\x18\x46(Optional) If this is an image file, you can specify the image height.\" \n\x1e\x43PublishedFile_Update_Response\"\xb8\x01\n,CPublishedFile_GetChangeHistoryEntry_Request\x12\x63\n\x0fpublishedfileid\x18\x01 \x01(\x06\x42J\x82\xb5\x18\x46Published file id of the file we\'d like to get the change history for.\x12\x11\n\ttimestamp\x18\x02 \x01(\r\x12\x10\n\x08language\x18\x03 \x01(\x05\"]\n-CPublishedFile_GetChangeHistoryEntry_Response\x12\x1a\n\x12\x63hange_description\x18\x01 \x01(\t\x12\x10\n\x08language\x18\x02 \x01(\x05\"\x9e\x02\n\'CPublishedFile_GetChangeHistory_Request\x12\x63\n\x0fpublishedfileid\x18\x01 \x01(\x06\x42J\x82\xb5\x18\x46Published file id of the file we\'d like to get the change history for.\x12@\n\ntotal_only\x18\x02 \x01(\x08\x42,\x82\xb5\x18(Return the total number of changes only.\x12\x12\n\nstartindex\x18\x03 \x01(\r\x12\r\n\x05\x63ount\x18\x04 \x01(\r\x12)\n\x08language\x18\x05 \x01(\x05:\x01\x30\x42\x14\x82\xb5\x18\x10\x44\x65sired language\"\xcd\x01\n(CPublishedFile_GetChangeHistory_Response\x12\x44\n\x07\x63hanges\x18\x01 \x03(\x0b\x32\x33.CPublishedFile_GetChangeHistory_Response.ChangeLog\x12\r\n\x05total\x18\x02 \x01(\r\x1aL\n\tChangeLog\x12\x11\n\ttimestamp\x18\x01 \x01(\r\x12\x1a\n\x12\x63hange_description\x18\x02 \x01(\t\x12\x10\n\x08language\x18\x03 \x01(\x05\"\xd1\x05\n)CPublishedFile_RefreshVotingQueue_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x42\n\x12matching_file_type\x18\x02 \x01(\rB&\x82\xb5\x18\"EPublishedFileInfoMatchingFileType\x12l\n\x04tags\x18\x03 \x03(\tB^\x82\xb5\x18ZInclude files that have all the tags or any of the tags if match_all_tags is set to false.\x12\x95\x01\n\x0ematch_all_tags\x18\x04 \x01(\x08:\x04trueBw\x82\xb5\x18sIf true, then files must have all the tags specified.  If false, then must have at least one of the tags specified.\x12I\n\rexcluded_tags\x18\x05 \x03(\tB2\x82\xb5\x18.Exclude any files that have any of these tags.\x12j\n\x12\x64\x65sired_queue_size\x18\x06 \x01(\rBN\x82\xb5\x18JDesired number of items in the voting queue.  May be clamped by the server\x12\x93\x01\n\x10\x64\x65sired_revision\x18\x08 \x01(\x0e\x32\x17.EPublishedFileRevision: k_EPublishedFileRevision_DefaultB>\x82\xb5\x18:Filter to items that have data for the specified revision.\",\n*CPublishedFile_RefreshVotingQueue_Response\"\xb6\x1b\n!CPublishedFile_QueryFiles_Request\x12L\n\nquery_type\x18\x01 \x01(\rB8\x82\xb5\x18\x34\x65numeration EPublishedFileQueryType in clientenums.h\x12\x1e\n\x04page\x18\x02 \x01(\rB\x10\x82\xb5\x18\x0c\x43urrent page\x12\xe8\x01\n\x06\x63ursor\x18\' \x01(\tB\xd7\x01\x82\xb5\x18\xd2\x01\x43ursor to paginate through the results (set to \'*\' for the first request).  Prefer this over using the page parameter, as it will allow you to do deep pagination.  When used, the page parameter will be ignored.\x12P\n\nnumperpage\x18\x03 \x01(\r:\x01\x31\x42\x39\x82\xb5\x18\x35(Optional) The number of results, per page to return.\x12\x35\n\rcreator_appid\x18\x04 \x01(\rB\x1e\x82\xb5\x18\x1a\x41pp that created the files\x12.\n\x05\x61ppid\x18\x05 \x01(\rB\x1f\x82\xb5\x18\x1b\x41pp that consumes the files\x12N\n\x0crequiredtags\x18\x06 \x03(\tB8\x82\xb5\x18\x34Tags to match on. See match_all_tags parameter below\x12l\n\x0c\x65xcludedtags\x18\x07 \x03(\tBV\x82\xb5\x18R(Optional) Tags that must NOT be present on a published file to satisfy the query.\x12\x8a\x01\n\x0ematch_all_tags\x18\x08 \x01(\x08:\x04trueBl\x82\xb5\x18hIf true, then items must have all the tags specified, otherwise they must have at least one of the tags.\x12Q\n\x0erequired_flags\x18\t \x03(\tB9\x82\xb5\x18\x35Required flags that must be set on any returned items\x12K\n\romitted_flags\x18\n \x03(\tB4\x82\xb5\x18\x30\x46lags that must not be set on any returned items\x12I\n\x0bsearch_text\x18\x0b \x01(\tB4\x82\xb5\x18\x30Text to match in the item\'s title or description\x12\x38\n\x08\x66iletype\x18\x0c \x01(\rB&\x82\xb5\x18\"EPublishedFileInfoMatchingFileType\x12P\n\x15\x63hild_publishedfileid\x18\r \x01(\x06\x42\x31\x82\xb5\x18-Find all items that reference the given item.\x12\x82\x01\n\x04\x64\x61ys\x18\x0e \x01(\rBt\x82\xb5\x18pIf query_type is k_PublishedFileQueryType_RankedByTrend, then this is the number of days to get votes for [1,7].\x12\xb0\x01\n\x19include_recent_votes_only\x18\x0f \x01(\x08\x42\x8c\x01\x82\xb5\x18\x87\x01If query_type is k_PublishedFileQueryType_RankedByTrend, then limit result set just to items that have votes within the day range given\x12j\n\x15\x63\x61\x63he_max_age_seconds\x18\x1f \x01(\r:\x01\x30\x42H\x82\xb5\x18\x44\x41llow stale data to be returned for the specified number of seconds.\x12`\n\x08language\x18! \x01(\x05:\x01\x30\x42K\x82\xb5\x18GLanguage to search in and also what gets returned. Defaults to English.\x12l\n\x10required_kv_tags\x18\" \x03(\x0b\x32(.CPublishedFile_QueryFiles_Request.KVTagB(\x82\xb5\x18$Required key-value tags to match on.\x12\xa1\x01\n\ttaggroups\x18* \x03(\x0b\x32+.CPublishedFile_QueryFiles_Request.TagGroupBa\x82\xb5\x18](Optional) At least one of the tags must be present on a published file to satisfy the query.\x12i\n\ttotalonly\x18\x10 \x01(\x08\x42V\x82\xb5\x18R(Optional) If true, only return the total number of files that satisfy this query.\x12n\n\x08ids_only\x18# \x01(\x08\x42\\\x82\xb5\x18X(Optional) If true, only return the published file ids of files that satisfy this query.\x12.\n\x10return_vote_data\x18\x11 \x01(\x08\x42\x14\x82\xb5\x18\x10Return vote data\x12\x38\n\x0breturn_tags\x18\x12 \x01(\x08\x42#\x82\xb5\x18\x1fReturn tags in the file details\x12\x45\n\x0ereturn_kv_tags\x18\x13 \x01(\x08\x42-\x82\xb5\x18)Return key-value tags in the file details\x12W\n\x0freturn_previews\x18\x14 \x01(\x08\x42>\x82\xb5\x18:Return preview image and video details in the file details\x12\x46\n\x0freturn_children\x18\x15 \x01(\x08\x42-\x82\xb5\x18)Return child item ids in the file details\x12\x66\n\x18return_short_description\x18\x16 \x01(\x08\x42\x44\x82\xb5\x18@Populate the short_description field instead of file_description\x12K\n\x14return_for_sale_data\x18\x1e \x01(\x08\x42-\x82\xb5\x18)Return pricing information, if applicable\x12\x39\n\x0freturn_metadata\x18  \x01(\x08:\x05\x66\x61lseB\x19\x82\xb5\x18\x15Populate the metadata\x12g\n\x15return_playtime_stats\x18$ \x01(\rBH\x82\xb5\x18\x44Return playtime stats for the specified number of days before today.\x12\xb7\x01\n\x0ereturn_details\x18% \x01(\x08\x42\x9e\x01\x82\xb5\x18\x99\x01\x42y default, if none of the other \'return_*\' fields are set, only some voting details are returned. Set this to true to return the default set of details.\x12\x46\n\x18strip_description_bbcode\x18& \x01(\x08\x42$\x82\xb5\x18 Strips BBCode from descriptions.\x12\x84\x01\n\x10\x64\x65sired_revision\x18( \x01(\x0e\x32\x17.EPublishedFileRevision: k_EPublishedFileRevision_DefaultB/\x82\xb5\x18+Return the data for the specified revision.\x12W\n\x10return_reactions\x18+ \x01(\x08:\x05\x66\x61lseB6\x82\xb5\x18\x32If true, then reactions to items will be returned.\x1a#\n\x05KVTag\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\x1a\x18\n\x08TagGroup\x12\x0c\n\x04tags\x18\x01 \x03(\t\"\x85\x03\n\"CPublishedFile_QueryFiles_Response\x12T\n\x05total\x18\x01 \x01(\rBE\x82\xb5\x18\x41Number of matches found, not necessarily number of items returned\x12\x8d\x01\n\x14publishedfiledetails\x18\x02 \x03(\x0b\x32\x15.PublishedFileDetailsBX\x82\xb5\x18TEach file details will be populated, depending on what return values were requested.\x12y\n\x0bnext_cursor\x18\x03 \x01(\tBd\x82\xb5\x18`If a paging cursor was used, then this will be the next cursor to use for paging through results\"i\n)CPublishedFile_AddAppRelationship_Request\x12\x17\n\x0fpublishedfileid\x18\x01 \x01(\x04\x12\r\n\x05\x61ppid\x18\x02 \x01(\r\x12\x14\n\x0crelationship\x18\x03 \x01(\r\",\n*CPublishedFile_AddAppRelationship_Response\"l\n,CPublishedFile_RemoveAppRelationship_Request\x12\x17\n\x0fpublishedfileid\x18\x01 \x01(\x04\x12\r\n\x05\x61ppid\x18\x02 \x01(\r\x12\x14\n\x0crelationship\x18\x03 \x01(\r\"/\n-CPublishedFile_RemoveAppRelationship_Response\"E\n*CPublishedFile_GetAppRelationships_Request\x12\x17\n\x0fpublishedfileid\x18\x01 \x01(\x04\"\xbe\x01\n+CPublishedFile_GetAppRelationships_Response\x12W\n\x11\x61pp_relationships\x18\x03 \x03(\x0b\x32<.CPublishedFile_GetAppRelationships_Response.AppRelationship\x1a\x36\n\x0f\x41ppRelationship\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x14\n\x0crelationship\x18\x02 \x01(\r\"W\n,CPublishedFile_StartPlaytimeTracking_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x18\n\x10publishedfileids\x18\x02 \x03(\x04\"/\n-CPublishedFile_StartPlaytimeTracking_Response\"V\n+CPublishedFile_StopPlaytimeTracking_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x18\n\x10publishedfileids\x18\x02 \x03(\x04\".\n,CPublishedFile_StopPlaytimeTracking_Response\"J\n9CPublishedFile_StopPlaytimeTrackingForAllAppItems_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\"<\n:CPublishedFile_StopPlaytimeTrackingForAllAppItems_Response\"\x81\x02\n6CPublishedFile_SetPlaytimeForControllerConfigs_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12n\n\x17\x63ontroller_config_usage\x18\x02 \x03(\x0b\x32M.CPublishedFile_SetPlaytimeForControllerConfigs_Request.ControllerConfigUsage\x1aH\n\x15\x43ontrollerConfigUsage\x12\x17\n\x0fpublishedfileid\x18\x01 \x01(\x04\x12\x16\n\x0eseconds_active\x18\x02 \x01(\x02\"9\n7CPublishedFile_SetPlaytimeForControllerConfigs_Response\"Y\n\x1f\x43PublishedFile_AddChild_Request\x12\x17\n\x0fpublishedfileid\x18\x01 \x01(\x04\x12\x1d\n\x15\x63hild_publishedfileid\x18\x02 \x01(\x04\"\"\n CPublishedFile_AddChild_Response\"\\\n\"CPublishedFile_RemoveChild_Request\x12\x17\n\x0fpublishedfileid\x18\x01 \x01(\x04\x12\x1d\n\x15\x63hild_publishedfileid\x18\x02 \x01(\x04\"%\n#CPublishedFile_RemoveChild_Response\"E\n)CPublishedFile_GetUserVoteSummary_Request\x12\x18\n\x10publishedfileids\x18\x01 \x03(\x06\"\xda\x01\n*CPublishedFile_GetUserVoteSummary_Response\x12J\n\tsummaries\x18\x01 \x03(\x0b\x32\x37.CPublishedFile_GetUserVoteSummary_Response.VoteSummary\x1a`\n\x0bVoteSummary\x12\x17\n\x0fpublishedfileid\x18\x01 \x01(\x06\x12\x10\n\x08vote_for\x18\x02 \x01(\x08\x12\x14\n\x0cvote_against\x18\x03 \x01(\x08\x12\x10\n\x08reported\x18\x04 \x01(\x08\"\xaf\x05\n*CPublishedFile_FileSubscribed_Notification\x12@\n\x11published_file_id\x18\x01 \x01(\x06\x42%\x82\xb5\x18!PublishedFileID_t for the content\x12\x0e\n\x06\x61pp_id\x18\x02 \x01(\r\x12:\n\rfile_hcontent\x18\x03 \x01(\x06\x42#\x82\xb5\x18\x1fUGC file handle or manifest GID\x12\x11\n\tfile_size\x18\x04 \x01(\r\x12\x18\n\x10rtime_subscribed\x18\x05 \x01(\r\x12N\n\x10is_depot_content\x18\x06 \x01(\x08\x42\x34\x82\xb5\x18\x30True if workshop item is delivered via Steampipe\x12\x34\n\rrtime_updated\x18\x07 \x01(\rB\x1d\x82\xb5\x18\x19Last time content updated\x12\x82\x01\n\trevisions\x18\x08 \x03(\x0b\x32\x38.CPublishedFile_FileSubscribed_Notification.RevisionDataB5\x82\xb5\x18\x31\x44\x61ta for each of the revisions that this item has\x1a\xba\x01\n\x0cRevisionData\x12K\n\x08revision\x18\x01 \x01(\x0e\x32\x17.EPublishedFileRevision: k_EPublishedFileRevision_Default\x12\'\n\rfile_hcontent\x18\x02 \x01(\x06\x42\x10\x82\xb5\x18\x0cManifest GID\x12\x34\n\rrtime_updated\x18\x03 \x01(\rB\x1d\x82\xb5\x18\x19Last time content updated\"\x80\x01\n,CPublishedFile_FileUnsubscribed_Notification\x12@\n\x11published_file_id\x18\x01 \x01(\x06\x42%\x82\xb5\x18!PublishedFileID_t for the content\x12\x0e\n\x06\x61pp_id\x18\x02 \x01(\r\"\x82\x01\n.CPublishedFile_FileDeleted_Client_Notification\x12@\n\x11published_file_id\x18\x01 \x01(\x06\x42%\x82\xb5\x18!PublishedFileID_t for the content\x12\x0e\n\x06\x61pp_id\x18\x02 \x01(\r*\xab\x02\n\x16\x45PublishedFileRevision\x12$\n k_EPublishedFileRevision_Default\x10\x00\x12#\n\x1fk_EPublishedFileRevision_Latest\x10\x01\x12-\n)k_EPublishedFileRevision_ApprovedSnapshot\x10\x02\x12\x33\n/k_EPublishedFileRevision_ApprovedSnapshot_China\x10\x03\x12-\n)k_EPublishedFileRevision_RejectedSnapshot\x10\x04\x12\x33\n/k_EPublishedFileRevision_RejectedSnapshot_China\x10\x05*\xc8\x01\n\x1b\x45PublishedFileForSaleStatus\x12\x16\n\x12k_PFFSS_NotForSale\x10\x00\x12\x1b\n\x17k_PFFSS_PendingApproval\x10\x01\x12\x1b\n\x17k_PFFSS_ApprovedForSale\x10\x02\x12\x1b\n\x17k_PFFSS_RejectedForSale\x10\x03\x12\x1b\n\x17k_PFFSS_NoLongerForSale\x10\x04\x12\x1d\n\x19k_PFFSS_TentativeApproval\x10\x05\x32\xd7\x1e\n\rPublishedFile\x12\x81\x01\n\tSubscribe\x12!.CPublishedFile_Subscribe_Request\x1a\".CPublishedFile_Subscribe_Response\"-\x82\xb5\x18)Subscribes the user to the published file\x12\x8b\x01\n\x0bUnsubscribe\x12#.CPublishedFile_Unsubscribe_Request\x1a$.CPublishedFile_Unsubscribe_Response\"1\x82\xb5\x18-Unsubscribes the user from the published file\x12\x96\x01\n\x0c\x43\x61nSubscribe\x12$.CPublishedFile_CanSubscribe_Request\x1a%.CPublishedFile_CanSubscribe_Response\"9\x82\xb5\x18\x35\x43heck if the user can subscribe to the published file\x12\x80\x01\n\x07Publish\x12\x1f.CPublishedFile_Publish_Request\x1a .CPublishedFile_Publish_Response\"2\x82\xb5\x18.Publishes a clouded user file to the Workshop.\x12\x90\x01\n\nGetDetails\x12\".CPublishedFile_GetDetails_Request\x1a#.CPublishedFile_GetDetails_Response\"9\x82\xb5\x18\x35Retrieves information about a set of published files.\x12\x93\x01\n\x0bGetItemInfo\x12#.CPublishedFile_GetItemInfo_Request\x1a$.CPublishedFile_GetItemInfo_Response\"9\x82\xb5\x18\x35Retrieves information about a set of published files.\x12\x85\x01\n\x0cGetUserFiles\x12$.CPublishedFile_GetUserFiles_Request\x1a%.CPublishedFile_GetUserFiles_Response\"(\x82\xb5\x18$Retrieves files published by a user.\x12\xd5\x01\n\x1a\x41reFilesInSubscriptionList\x12\x32.CPublishedFile_AreFilesInSubscriptionList_Request\x1a\x33.CPublishedFile_AreFilesInSubscriptionList_Response\"N\x82\xb5\x18JDetermines which files in the given list are in a user\'s subscription list\x12z\n\x06Update\x12\x1e.CPublishedFile_Update_Request\x1a\x1f.CPublishedFile_Update_Response\"/\x82\xb5\x18+Updates information about a published file.\x12\xc0\x01\n\x15GetChangeHistoryEntry\x12-.CPublishedFile_GetChangeHistoryEntry_Request\x1a..CPublishedFile_GetChangeHistoryEntry_Response\"H\x82\xb5\x18\x44Returns data on a specific change history entry for a published file\x12\xa4\x01\n\x10GetChangeHistory\x12(.CPublishedFile_GetChangeHistory_Request\x1a).CPublishedFile_GetChangeHistory_Response\";\x82\xb5\x18\x37Returns data on the change history for a published file\x12\x98\x01\n\x12RefreshVotingQueue\x12*.CPublishedFile_RefreshVotingQueue_Request\x1a+.CPublishedFile_RefreshVotingQueue_Response\")\x82\xb5\x18%Refresh the voting queue for the user\x12\x86\x01\n\nQueryFiles\x12\".CPublishedFile_QueryFiles_Request\x1a#.CPublishedFile_QueryFiles_Response\"/\x82\xb5\x18+Performs a search query for published files\x12\xb3\x01\n\x12\x41\x64\x64\x41ppRelationship\x12*.CPublishedFile_AddAppRelationship_Request\x1a+.CPublishedFile_AddAppRelationship_Response\"D\x82\xb5\x18@Adds a relationship between the published file and the given app\x12\xbe\x01\n\x15RemoveAppRelationship\x12-.CPublishedFile_RemoveAppRelationship_Request\x1a..CPublishedFile_RemoveAppRelationship_Response\"F\x82\xb5\x18\x42Remove a relationship between the published file and the given app\x12\xb3\x01\n\x13GetAppRelationships\x12+.CPublishedFile_GetAppRelationships_Request\x1a,.CPublishedFile_GetAppRelationships_Response\"A\x82\xb5\x18=Returns the list of app relationships for this published file\x12\xb3\x01\n\x15StartPlaytimeTracking\x12-.CPublishedFile_StartPlaytimeTracking_Request\x1a..CPublishedFile_StartPlaytimeTracking_Response\";\x82\xb5\x18\x37Start usage tracking for a given set of published files\x12\xb0\x01\n\x14StopPlaytimeTracking\x12,.CPublishedFile_StopPlaytimeTracking_Request\x1a-.CPublishedFile_StopPlaytimeTracking_Response\";\x82\xb5\x18\x37Stops usage tracking for a given set of published files\x12\xed\x01\n\"StopPlaytimeTrackingForAllAppItems\x12:.CPublishedFile_StopPlaytimeTrackingForAllAppItems_Request\x1a;.CPublishedFile_StopPlaytimeTrackingForAllAppItems_Response\"N\x82\xb5\x18JStops usage tracking for all items currently tracked for the specified app\x12\x98\x02\n\x1fSetPlaytimeForControllerConfigs\x12\x37.CPublishedFile_SetPlaytimeForControllerConfigs_Request\x1a\x38.CPublishedFile_SetPlaytimeForControllerConfigs_Response\"\x81\x01\x82\xb5\x18}Stops usage tracking all controller configs for the given app and set the usage time for the for the given controller configs\x12\x8f\x01\n\x08\x41\x64\x64\x43hild\x12 .CPublishedFile_AddChild_Request\x1a!.CPublishedFile_AddChild_Response\">\x82\xb5\x18:Adds a parent->child relationship between the given items.\x12\x99\x01\n\x0bRemoveChild\x12#.CPublishedFile_RemoveChild_Request\x1a$.CPublishedFile_RemoveChild_Response\"?\x82\xb5\x18;Removes parent->child relationship between the given items.\x12\x88\x01\n\x12GetUserVoteSummary\x12*.CPublishedFile_GetUserVoteSummary_Request\x1a+.CPublishedFile_GetUserVoteSummary_Response\"\x19\x82\xb5\x18\x15Get user vote summary\x1a+\x82\xb5\x18\'A service to access published file data2\x8d\x04\n\x13PublishedFileClient\x12\x93\x01\n\x14NotifyFileSubscribed\x12+.CPublishedFile_FileSubscribed_Notification\x1a\x0b.NoResponse\"A\x82\xb5\x18=Notification from the server when a user subscribes to a file\x12\x9b\x01\n\x16NotifyFileUnsubscribed\x12-.CPublishedFile_FileUnsubscribed_Notification\x1a\x0b.NoResponse\"E\x82\xb5\x18\x41Notification from the server when a user unsubscribes from a file\x12\x94\x01\n\x11NotifyFileDeleted\x12/.CPublishedFile_FileDeleted_Client_Notification\x1a\x0b.NoResponse\"A\x82\xb5\x18=Notification from the server when a published file is deleted\x1a+\x82\xb5\x18#Published file client notifications\xc0\xb5\x18\x02\x42\x03\x90\x01\x01')
   ,
-  dependencies=[steammessages__unified__base__pb2.DESCRIPTOR,])
+  dependencies=[steammessages__unified__base__pb2.DESCRIPTOR,enums__pb2.DESCRIPTOR,])
 
 _EPUBLISHEDFILEREVISION = _descriptor.EnumDescriptor(
   name='EPublishedFileRevision',
@@ -61,8 +62,8 @@ _EPUBLISHEDFILEREVISION = _descriptor.EnumDescriptor(
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=19616,
-  serialized_end=19915,
+  serialized_start=19815,
+  serialized_end=20114,
 )
 _sym_db.RegisterEnumDescriptor(_EPUBLISHEDFILEREVISION)
 
@@ -100,8 +101,8 @@ _EPUBLISHEDFILEFORSALESTATUS = _descriptor.EnumDescriptor(
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=19918,
-  serialized_end=20118,
+  serialized_start=20117,
+  serialized_end=20317,
 )
 _sym_db.RegisterEnumDescriptor(_EPUBLISHEDFILEFORSALESTATUS)
 
@@ -168,8 +169,8 @@ _CPUBLISHEDFILE_SUBSCRIBE_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=71,
-  serialized_end=187,
+  serialized_start=84,
+  serialized_end=200,
 )
 
 
@@ -192,8 +193,8 @@ _CPUBLISHEDFILE_SUBSCRIBE_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=189,
-  serialized_end=224,
+  serialized_start=202,
+  serialized_end=237,
 )
 
 
@@ -244,8 +245,8 @@ _CPUBLISHEDFILE_UNSUBSCRIBE_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=226,
-  serialized_end=344,
+  serialized_start=239,
+  serialized_end=357,
 )
 
 
@@ -268,8 +269,8 @@ _CPUBLISHEDFILE_UNSUBSCRIBE_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=346,
-  serialized_end=383,
+  serialized_start=359,
+  serialized_end=396,
 )
 
 
@@ -299,8 +300,8 @@ _CPUBLISHEDFILE_CANSUBSCRIBE_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=385,
-  serialized_end=447,
+  serialized_start=398,
+  serialized_end=460,
 )
 
 
@@ -330,8 +331,8 @@ _CPUBLISHEDFILE_CANSUBSCRIBE_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=449,
-  serialized_end=510,
+  serialized_start=462,
+  serialized_end=523,
 )
 
 
@@ -466,8 +467,8 @@ _CPUBLISHEDFILE_PUBLISH_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=513,
-  serialized_end=1869,
+  serialized_start=526,
+  serialized_end=1882,
 )
 
 
@@ -504,8 +505,8 @@ _CPUBLISHEDFILE_PUBLISH_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1871,
-  serialized_end=1951,
+  serialized_start=1884,
+  serialized_end=1964,
 )
 
 
@@ -633,8 +634,8 @@ _CPUBLISHEDFILE_GETDETAILS_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1954,
-  serialized_end=3247,
+  serialized_start=1967,
+  serialized_end=3260,
 )
 
 
@@ -659,6 +660,13 @@ _PUBLISHEDFILEDETAILS_TAG = _descriptor.Descriptor(
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='display_name', full_name='PublishedFileDetails.Tag.display_name', index=2,
+      number=3, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -671,8 +679,8 @@ _PUBLISHEDFILEDETAILS_TAG = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5606,
-  serialized_end=5643,
+  serialized_start=5712,
+  serialized_end=5771,
 )
 
 _PUBLISHEDFILEDETAILS_PREVIEW = _descriptor.Descriptor(
@@ -750,8 +758,8 @@ _PUBLISHEDFILEDETAILS_PREVIEW = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5646,
-  serialized_end=5812,
+  serialized_start=5774,
+  serialized_end=5940,
 )
 
 _PUBLISHEDFILEDETAILS_CHILD = _descriptor.Descriptor(
@@ -794,8 +802,8 @@ _PUBLISHEDFILEDETAILS_CHILD = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5814,
-  serialized_end=5884,
+  serialized_start=5942,
+  serialized_end=6012,
 )
 
 _PUBLISHEDFILEDETAILS_KVTAG = _descriptor.Descriptor(
@@ -831,8 +839,8 @@ _PUBLISHEDFILEDETAILS_KVTAG = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5886,
-  serialized_end=5921,
+  serialized_start=6014,
+  serialized_end=6049,
 )
 
 _PUBLISHEDFILEDETAILS_VOTEDATA = _descriptor.Descriptor(
@@ -875,8 +883,8 @@ _PUBLISHEDFILEDETAILS_VOTEDATA = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5923,
-  serialized_end=5986,
+  serialized_start=6051,
+  serialized_end=6114,
 )
 
 _PUBLISHEDFILEDETAILS_FORSALEDATA = _descriptor.Descriptor(
@@ -940,8 +948,8 @@ _PUBLISHEDFILEDETAILS_FORSALEDATA = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5989,
-  serialized_end=6209,
+  serialized_start=6117,
+  serialized_end=6337,
 )
 
 _PUBLISHEDFILEDETAILS_PLAYTIMESTATS = _descriptor.Descriptor(
@@ -977,8 +985,8 @@ _PUBLISHEDFILEDETAILS_PLAYTIMESTATS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6211,
-  serialized_end=6274,
+  serialized_start=6339,
+  serialized_end=6402,
 )
 
 _PUBLISHEDFILEDETAILS_REACTION = _descriptor.Descriptor(
@@ -1014,8 +1022,8 @@ _PUBLISHEDFILEDETAILS_REACTION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6276,
-  serialized_end=6321,
+  serialized_start=6404,
+  serialized_end=6449,
 )
 
 _PUBLISHEDFILEDETAILS = _descriptor.Descriptor(
@@ -1501,6 +1509,13 @@ _PUBLISHEDFILEDETAILS = _descriptor.Descriptor(
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=_b('\202\265\030\026Reactions to this item'), file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='ban_text_check_result', full_name='PublishedFileDetails.ban_text_check_result', index=68,
+      number=71, type=14, cpp_type=8, label=1,
+      has_default_value=True, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -1513,8 +1528,8 @@ _PUBLISHEDFILEDETAILS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3250,
-  serialized_end=6321,
+  serialized_start=3263,
+  serialized_end=6449,
 )
 
 
@@ -1544,8 +1559,8 @@ _CPUBLISHEDFILE_GETDETAILS_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6323,
-  serialized_end=6412,
+  serialized_start=6451,
+  serialized_end=6540,
 )
 
 
@@ -1589,8 +1604,8 @@ _CPUBLISHEDFILE_GETITEMINFO_REQUEST_WORKSHOPITEM = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6571,
-  serialized_end=6769,
+  serialized_start=6699,
+  serialized_end=6897,
 )
 
 _CPUBLISHEDFILE_GETITEMINFO_REQUEST = _descriptor.Descriptor(
@@ -1633,8 +1648,8 @@ _CPUBLISHEDFILE_GETITEMINFO_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6415,
-  serialized_end=6769,
+  serialized_start=6543,
+  serialized_end=6897,
 )
 
 
@@ -1685,8 +1700,8 @@ _CPUBLISHEDFILE_GETITEMINFO_RESPONSE_WORKSHOPITEMINFO = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6934,
-  serialized_end=7037,
+  serialized_start=7062,
+  serialized_end=7165,
 )
 
 _CPUBLISHEDFILE_GETITEMINFO_RESPONSE = _descriptor.Descriptor(
@@ -1729,8 +1744,8 @@ _CPUBLISHEDFILE_GETITEMINFO_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6772,
-  serialized_end=7037,
+  serialized_start=6900,
+  serialized_end=7165,
 )
 
 
@@ -1767,8 +1782,8 @@ _CPUBLISHEDFILE_GETUSERFILES_REQUEST_KVTAG = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5886,
-  serialized_end=5921,
+  serialized_start=6014,
+  serialized_end=6049,
 )
 
 _CPUBLISHEDFILE_GETUSERFILES_REQUEST_TAGGROUP = _descriptor.Descriptor(
@@ -1797,8 +1812,8 @@ _CPUBLISHEDFILE_GETUSERFILES_REQUEST_TAGGROUP = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9775,
-  serialized_end=9799,
+  serialized_start=9974,
+  serialized_end=9998,
 )
 
 _CPUBLISHEDFILE_GETUSERFILES_REQUEST = _descriptor.Descriptor(
@@ -2012,7 +2027,14 @@ _CPUBLISHEDFILE_GETUSERFILES_REQUEST = _descriptor.Descriptor(
       is_extension=False, extension_scope=None,
       serialized_options=_b('\202\265\0302If true, then reactions to items will be returned.'), file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='desired_revision', full_name='CPublishedFile_GetUserFiles_Request.desired_revision', index=29,
+      name='startindex_override', full_name='CPublishedFile_GetUserFiles_Request.startindex_override', index=29,
+      number=25, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=_b('\202\265\030$Backwards compatible for the client.'), file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='desired_revision', full_name='CPublishedFile_GetUserFiles_Request.desired_revision', index=30,
       number=33, type=14, cpp_type=8, label=1,
       has_default_value=True, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
@@ -2030,8 +2052,8 @@ _CPUBLISHEDFILE_GETUSERFILES_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=7040,
-  serialized_end=9799,
+  serialized_start=7168,
+  serialized_end=9998,
 )
 
 
@@ -2082,8 +2104,8 @@ _CPUBLISHEDFILE_GETUSERFILES_RESPONSE_APP = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9987,
-  serialized_end=10058,
+  serialized_start=10186,
+  serialized_end=10257,
 )
 
 _CPUBLISHEDFILE_GETUSERFILES_RESPONSE = _descriptor.Descriptor(
@@ -2133,8 +2155,8 @@ _CPUBLISHEDFILE_GETUSERFILES_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9802,
-  serialized_end=10058,
+  serialized_start=10001,
+  serialized_end=10257,
 )
 
 
@@ -2192,8 +2214,8 @@ _CPUBLISHEDFILE_AREFILESINSUBSCRIPTIONLIST_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10061,
-  serialized_end=10343,
+  serialized_start=10260,
+  serialized_end=10542,
 )
 
 
@@ -2230,8 +2252,8 @@ _CPUBLISHEDFILE_AREFILESINSUBSCRIPTIONLIST_RESPONSE_INLIST = _descriptor.Descrip
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10475,
-  serialized_end=10524,
+  serialized_start=10674,
+  serialized_end=10723,
 )
 
 _CPUBLISHEDFILE_AREFILESINSUBSCRIPTIONLIST_RESPONSE = _descriptor.Descriptor(
@@ -2260,8 +2282,8 @@ _CPUBLISHEDFILE_AREFILESINSUBSCRIPTIONLIST_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10346,
-  serialized_end=10524,
+  serialized_start=10545,
+  serialized_end=10723,
 )
 
 
@@ -2354,8 +2376,8 @@ _CPUBLISHEDFILE_UPDATE_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10527,
-  serialized_end=11312,
+  serialized_start=10726,
+  serialized_end=11511,
 )
 
 
@@ -2378,8 +2400,8 @@ _CPUBLISHEDFILE_UPDATE_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11314,
-  serialized_end=11346,
+  serialized_start=11513,
+  serialized_end=11545,
 )
 
 
@@ -2423,8 +2445,8 @@ _CPUBLISHEDFILE_GETCHANGEHISTORYENTRY_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11349,
-  serialized_end=11533,
+  serialized_start=11548,
+  serialized_end=11732,
 )
 
 
@@ -2461,8 +2483,8 @@ _CPUBLISHEDFILE_GETCHANGEHISTORYENTRY_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11535,
-  serialized_end=11628,
+  serialized_start=11734,
+  serialized_end=11827,
 )
 
 
@@ -2520,8 +2542,8 @@ _CPUBLISHEDFILE_GETCHANGEHISTORY_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11631,
-  serialized_end=11917,
+  serialized_start=11830,
+  serialized_end=12116,
 )
 
 
@@ -2565,8 +2587,8 @@ _CPUBLISHEDFILE_GETCHANGEHISTORY_RESPONSE_CHANGELOG = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12049,
-  serialized_end=12125,
+  serialized_start=12248,
+  serialized_end=12324,
 )
 
 _CPUBLISHEDFILE_GETCHANGEHISTORY_RESPONSE = _descriptor.Descriptor(
@@ -2602,8 +2624,8 @@ _CPUBLISHEDFILE_GETCHANGEHISTORY_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=11920,
-  serialized_end=12125,
+  serialized_start=12119,
+  serialized_end=12324,
 )
 
 
@@ -2675,8 +2697,8 @@ _CPUBLISHEDFILE_REFRESHVOTINGQUEUE_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12128,
-  serialized_end=12849,
+  serialized_start=12327,
+  serialized_end=13048,
 )
 
 
@@ -2699,8 +2721,8 @@ _CPUBLISHEDFILE_REFRESHVOTINGQUEUE_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12851,
-  serialized_end=12895,
+  serialized_start=13050,
+  serialized_end=13094,
 )
 
 
@@ -2737,8 +2759,8 @@ _CPUBLISHEDFILE_QUERYFILES_REQUEST_KVTAG = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5886,
-  serialized_end=5921,
+  serialized_start=6014,
+  serialized_end=6049,
 )
 
 _CPUBLISHEDFILE_QUERYFILES_REQUEST_TAGGROUP = _descriptor.Descriptor(
@@ -2767,8 +2789,8 @@ _CPUBLISHEDFILE_QUERYFILES_REQUEST_TAGGROUP = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9775,
-  serialized_end=9799,
+  serialized_start=9974,
+  serialized_end=9998,
 )
 
 _CPUBLISHEDFILE_QUERYFILES_REQUEST = _descriptor.Descriptor(
@@ -3035,8 +3057,8 @@ _CPUBLISHEDFILE_QUERYFILES_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=12898,
-  serialized_end=16408,
+  serialized_start=13097,
+  serialized_end=16607,
 )
 
 
@@ -3080,8 +3102,8 @@ _CPUBLISHEDFILE_QUERYFILES_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=16411,
-  serialized_end=16800,
+  serialized_start=16610,
+  serialized_end=16999,
 )
 
 
@@ -3125,8 +3147,8 @@ _CPUBLISHEDFILE_ADDAPPRELATIONSHIP_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=16802,
-  serialized_end=16907,
+  serialized_start=17001,
+  serialized_end=17106,
 )
 
 
@@ -3149,8 +3171,8 @@ _CPUBLISHEDFILE_ADDAPPRELATIONSHIP_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=16909,
-  serialized_end=16953,
+  serialized_start=17108,
+  serialized_end=17152,
 )
 
 
@@ -3194,8 +3216,8 @@ _CPUBLISHEDFILE_REMOVEAPPRELATIONSHIP_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=16955,
-  serialized_end=17063,
+  serialized_start=17154,
+  serialized_end=17262,
 )
 
 
@@ -3218,8 +3240,8 @@ _CPUBLISHEDFILE_REMOVEAPPRELATIONSHIP_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17065,
-  serialized_end=17112,
+  serialized_start=17264,
+  serialized_end=17311,
 )
 
 
@@ -3249,8 +3271,8 @@ _CPUBLISHEDFILE_GETAPPRELATIONSHIPS_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17114,
-  serialized_end=17183,
+  serialized_start=17313,
+  serialized_end=17382,
 )
 
 
@@ -3287,8 +3309,8 @@ _CPUBLISHEDFILE_GETAPPRELATIONSHIPS_RESPONSE_APPRELATIONSHIP = _descriptor.Descr
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17322,
-  serialized_end=17376,
+  serialized_start=17521,
+  serialized_end=17575,
 )
 
 _CPUBLISHEDFILE_GETAPPRELATIONSHIPS_RESPONSE = _descriptor.Descriptor(
@@ -3317,8 +3339,8 @@ _CPUBLISHEDFILE_GETAPPRELATIONSHIPS_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17186,
-  serialized_end=17376,
+  serialized_start=17385,
+  serialized_end=17575,
 )
 
 
@@ -3355,8 +3377,8 @@ _CPUBLISHEDFILE_STARTPLAYTIMETRACKING_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17378,
-  serialized_end=17465,
+  serialized_start=17577,
+  serialized_end=17664,
 )
 
 
@@ -3379,8 +3401,8 @@ _CPUBLISHEDFILE_STARTPLAYTIMETRACKING_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17467,
-  serialized_end=17514,
+  serialized_start=17666,
+  serialized_end=17713,
 )
 
 
@@ -3417,8 +3439,8 @@ _CPUBLISHEDFILE_STOPPLAYTIMETRACKING_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17516,
-  serialized_end=17602,
+  serialized_start=17715,
+  serialized_end=17801,
 )
 
 
@@ -3441,8 +3463,8 @@ _CPUBLISHEDFILE_STOPPLAYTIMETRACKING_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17604,
-  serialized_end=17650,
+  serialized_start=17803,
+  serialized_end=17849,
 )
 
 
@@ -3472,8 +3494,8 @@ _CPUBLISHEDFILE_STOPPLAYTIMETRACKINGFORALLAPPITEMS_REQUEST = _descriptor.Descrip
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17652,
-  serialized_end=17726,
+  serialized_start=17851,
+  serialized_end=17925,
 )
 
 
@@ -3496,8 +3518,8 @@ _CPUBLISHEDFILE_STOPPLAYTIMETRACKINGFORALLAPPITEMS_RESPONSE = _descriptor.Descri
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17728,
-  serialized_end=17788,
+  serialized_start=17927,
+  serialized_end=17987,
 )
 
 
@@ -3534,8 +3556,8 @@ _CPUBLISHEDFILE_SETPLAYTIMEFORCONTROLLERCONFIGS_REQUEST_CONTROLLERCONFIGUSAGE =
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17976,
-  serialized_end=18048,
+  serialized_start=18175,
+  serialized_end=18247,
 )
 
 _CPUBLISHEDFILE_SETPLAYTIMEFORCONTROLLERCONFIGS_REQUEST = _descriptor.Descriptor(
@@ -3571,8 +3593,8 @@ _CPUBLISHEDFILE_SETPLAYTIMEFORCONTROLLERCONFIGS_REQUEST = _descriptor.Descriptor
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=17791,
-  serialized_end=18048,
+  serialized_start=17990,
+  serialized_end=18247,
 )
 
 
@@ -3595,8 +3617,8 @@ _CPUBLISHEDFILE_SETPLAYTIMEFORCONTROLLERCONFIGS_RESPONSE = _descriptor.Descripto
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=18050,
-  serialized_end=18107,
+  serialized_start=18249,
+  serialized_end=18306,
 )
 
 
@@ -3633,8 +3655,8 @@ _CPUBLISHEDFILE_ADDCHILD_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=18109,
-  serialized_end=18198,
+  serialized_start=18308,
+  serialized_end=18397,
 )
 
 
@@ -3657,8 +3679,8 @@ _CPUBLISHEDFILE_ADDCHILD_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=18200,
-  serialized_end=18234,
+  serialized_start=18399,
+  serialized_end=18433,
 )
 
 
@@ -3695,8 +3717,8 @@ _CPUBLISHEDFILE_REMOVECHILD_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=18236,
-  serialized_end=18328,
+  serialized_start=18435,
+  serialized_end=18527,
 )
 
 
@@ -3719,8 +3741,8 @@ _CPUBLISHEDFILE_REMOVECHILD_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=18330,
-  serialized_end=18367,
+  serialized_start=18529,
+  serialized_end=18566,
 )
 
 
@@ -3750,8 +3772,8 @@ _CPUBLISHEDFILE_GETUSERVOTESUMMARY_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=18369,
-  serialized_end=18438,
+  serialized_start=18568,
+  serialized_end=18637,
 )
 
 
@@ -3802,8 +3824,8 @@ _CPUBLISHEDFILE_GETUSERVOTESUMMARY_RESPONSE_VOTESUMMARY = _descriptor.Descriptor
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=18563,
-  serialized_end=18659,
+  serialized_start=18762,
+  serialized_end=18858,
 )
 
 _CPUBLISHEDFILE_GETUSERVOTESUMMARY_RESPONSE = _descriptor.Descriptor(
@@ -3832,8 +3854,8 @@ _CPUBLISHEDFILE_GETUSERVOTESUMMARY_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=18441,
-  serialized_end=18659,
+  serialized_start=18640,
+  serialized_end=18858,
 )
 
 
@@ -3877,8 +3899,8 @@ _CPUBLISHEDFILE_FILESUBSCRIBED_NOTIFICATION_REVISIONDATA = _descriptor.Descripto
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=19163,
-  serialized_end=19349,
+  serialized_start=19362,
+  serialized_end=19548,
 )
 
 _CPUBLISHEDFILE_FILESUBSCRIBED_NOTIFICATION = _descriptor.Descriptor(
@@ -3956,8 +3978,8 @@ _CPUBLISHEDFILE_FILESUBSCRIBED_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=18662,
-  serialized_end=19349,
+  serialized_start=18861,
+  serialized_end=19548,
 )
 
 
@@ -3994,8 +4016,8 @@ _CPUBLISHEDFILE_FILEUNSUBSCRIBED_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=19352,
-  serialized_end=19480,
+  serialized_start=19551,
+  serialized_end=19679,
 )
 
 
@@ -4032,8 +4054,8 @@ _CPUBLISHEDFILE_FILEDELETED_CLIENT_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=19483,
-  serialized_end=19613,
+  serialized_start=19682,
+  serialized_end=19812,
 )
 
 _CPUBLISHEDFILE_GETDETAILS_REQUEST.fields_by_name['desired_revision'].enum_type = _EPUBLISHEDFILEREVISION
@@ -4056,6 +4078,7 @@ _PUBLISHEDFILEDETAILS.fields_by_name['for_sale_data'].message_type = _PUBLISHEDF
 _PUBLISHEDFILEDETAILS.fields_by_name['revision'].enum_type = _EPUBLISHEDFILEREVISION
 _PUBLISHEDFILEDETAILS.fields_by_name['available_revisions'].enum_type = _EPUBLISHEDFILEREVISION
 _PUBLISHEDFILEDETAILS.fields_by_name['reactions'].message_type = _PUBLISHEDFILEDETAILS_REACTION
+_PUBLISHEDFILEDETAILS.fields_by_name['ban_text_check_result'].enum_type = enums__pb2._EBANCONTENTCHECKRESULT
 _CPUBLISHEDFILE_GETDETAILS_RESPONSE.fields_by_name['publishedfiledetails'].message_type = _PUBLISHEDFILEDETAILS
 _CPUBLISHEDFILE_GETITEMINFO_REQUEST_WORKSHOPITEM.fields_by_name['desired_revision'].enum_type = _EPUBLISHEDFILEREVISION
 _CPUBLISHEDFILE_GETITEMINFO_REQUEST_WORKSHOPITEM.containing_type = _CPUBLISHEDFILE_GETITEMINFO_REQUEST
@@ -4732,6 +4755,7 @@ _CPUBLISHEDFILE_GETUSERFILES_REQUEST.fields_by_name['return_metadata']._options
 _CPUBLISHEDFILE_GETUSERFILES_REQUEST.fields_by_name['return_playtime_stats']._options = None
 _CPUBLISHEDFILE_GETUSERFILES_REQUEST.fields_by_name['strip_description_bbcode']._options = None
 _CPUBLISHEDFILE_GETUSERFILES_REQUEST.fields_by_name['return_reactions']._options = None
+_CPUBLISHEDFILE_GETUSERFILES_REQUEST.fields_by_name['startindex_override']._options = None
 _CPUBLISHEDFILE_GETUSERFILES_REQUEST.fields_by_name['desired_revision']._options = None
 _CPUBLISHEDFILE_AREFILESINSUBSCRIPTIONLIST_REQUEST.fields_by_name['listtype']._options = None
 _CPUBLISHEDFILE_AREFILESINSUBSCRIPTIONLIST_REQUEST.fields_by_name['filetype']._options = None
@@ -4810,8 +4834,8 @@ _PUBLISHEDFILE = _descriptor.ServiceDescriptor(
   file=DESCRIPTOR,
   index=0,
   serialized_options=_b('\202\265\030\'A service to access published file data'),
-  serialized_start=20121,
-  serialized_end=24048,
+  serialized_start=20320,
+  serialized_end=24247,
   methods=[
   _descriptor.MethodDescriptor(
     name='Subscribe',
@@ -5032,8 +5056,8 @@ _PUBLISHEDFILECLIENT = _descriptor.ServiceDescriptor(
   file=DESCRIPTOR,
   index=1,
   serialized_options=_b('\202\265\030#Published file client notifications\300\265\030\002'),
-  serialized_start=24051,
-  serialized_end=24576,
+  serialized_start=24250,
+  serialized_end=24775,
   methods=[
   _descriptor.MethodDescriptor(
     name='NotifyFileSubscribed',
diff --git a/steam/protobufs/steammessages_shader_pb2.py b/steam/protobufs/steammessages_shader_pb2.py
index 835f40a..414b4c1 100644
--- a/steam/protobufs/steammessages_shader_pb2.py
+++ b/steam/protobufs/steammessages_shader_pb2.py
@@ -23,7 +23,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
   package='',
   syntax='proto2',
   serialized_options=_b('\220\001\001'),
-  serialized_pb=_b('\n\x1asteammessages_shader.proto\x1a steammessages_unified_base.proto\"\xc9\x01\n\x1e\x43Shader_RegisterShader_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x10\n\x08gpu_desc\x18\x02 \x01(\t\x12\x13\n\x0b\x64river_desc\x18\x03 \x01(\t\x12\x37\n\x07shaders\x18\x04 \x03(\x0b\x32&.CShader_RegisterShader_Request.Shader\x1a\x38\n\x06Shader\x12\x15\n\rcache_key_sha\x18\x01 \x01(\x0c\x12\x17\n\x0fshader_code_sha\x18\x02 \x01(\x0c\"<\n\x1f\x43Shader_RegisterShader_Response\x12\x19\n\x11requested_codeids\x18\x01 \x03(\r\"\xa0\x01\n\x1a\x43Shader_SendShader_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x37\n\x07shaders\x18\x02 \x03(\x0b\x32&.CShader_SendShader_Request.ShaderCode\x1a:\n\nShaderCode\x12\x17\n\x0fshader_code_sha\x18\x01 \x01(\x0c\x12\x13\n\x0bshader_code\x18\x02 \x01(\x0c\"\x1d\n\x1b\x43Shader_SendShader_Response\"Y\n!CShader_GetBucketManifest_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x10\n\x08gpu_desc\x18\x02 \x01(\t\x12\x13\n\x0b\x64river_desc\x18\x03 \x01(\t\"]\n\"CShader_GetBucketManifest_Response\x12\x12\n\nmanifestid\x18\x01 \x01(\x04\x12\x11\n\tdepotsize\x18\x02 \x01(\r\x12\x10\n\x08\x62ucketid\x18\x03 \x01(\x04\x32\x9f\x04\n\x06Shader\x12\xbe\x01\n\x0eRegisterShader\x12\x1f.CShader_RegisterShader_Request\x1a .CShader_RegisterShader_Response\"i\x82\xb5\x18\x65\x43lient just finished playing a game, detected new shader cache entries and is notifying us about them\x12\x8f\x01\n\nSendShader\x12\x1b.CShader_SendShader_Request\x1a\x1c.CShader_SendShader_Response\"F\x82\xb5\x18\x42\x43lient is sending us actual compiled shader code that we requested\x12\xad\x01\n\x11GetBucketManifest\x12\".CShader_GetBucketManifest_Request\x1a#.CShader_GetBucketManifest_Response\"O\x82\xb5\x18KClient wants to know the manifest ID to fetch (if any) for a bucket\'s depot\x1a\x12\x82\xb5\x18\x0eShader methodsB\x03\x90\x01\x01')
+  serialized_pb=_b('\n\x1asteammessages_shader.proto\x1a steammessages_unified_base.proto\"\xc9\x01\n\x1e\x43Shader_RegisterShader_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x10\n\x08gpu_desc\x18\x02 \x01(\t\x12\x13\n\x0b\x64river_desc\x18\x03 \x01(\t\x12\x37\n\x07shaders\x18\x04 \x03(\x0b\x32&.CShader_RegisterShader_Request.Shader\x1a\x38\n\x06Shader\x12\x15\n\rcache_key_sha\x18\x01 \x01(\x0c\x12\x17\n\x0fshader_code_sha\x18\x02 \x01(\x0c\"<\n\x1f\x43Shader_RegisterShader_Response\x12\x19\n\x11requested_codeids\x18\x01 \x03(\r\"\xa0\x01\n\x1a\x43Shader_SendShader_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x37\n\x07shaders\x18\x02 \x03(\x0b\x32&.CShader_SendShader_Request.ShaderCode\x1a:\n\nShaderCode\x12\x17\n\x0fshader_code_sha\x18\x01 \x01(\x0c\x12\x13\n\x0bshader_code\x18\x02 \x01(\x0c\"\x1d\n\x1b\x43Shader_SendShader_Response\"Y\n!CShader_GetBucketManifest_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x10\n\x08gpu_desc\x18\x02 \x01(\t\x12\x13\n\x0b\x64river_desc\x18\x03 \x01(\t\"]\n\"CShader_GetBucketManifest_Response\x12\x12\n\nmanifestid\x18\x01 \x01(\x04\x12\x11\n\tdepotsize\x18\x02 \x01(\x04\x12\x10\n\x08\x62ucketid\x18\x03 \x01(\x04\"G\n\x1e\x43Shader_GetStaleBucket_Request\x12\x10\n\x08gpu_desc\x18\x01 \x01(\t\x12\x13\n\x0b\x64river_desc\x18\x02 \x01(\t\"V\n\x1f\x43Shader_GetStaleBucket_Response\x12\x10\n\x08\x62ucketid\x18\x01 \x01(\x04\x12\r\n\x05\x61ppid\x18\x02 \x01(\r\x12\x12\n\nmanifestid\x18\x03 \x01(\x04\"\xb7\x01\n#CShader_ReportExternalBuild_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x10\n\x08gpu_desc\x18\x02 \x01(\t\x12\x13\n\x0b\x64river_desc\x18\x03 \x01(\t\x12\x12\n\nmanifestid\x18\x04 \x01(\x04\x12\x17\n\x0fsource_gpu_desc\x18\x05 \x01(\t\x12\x1a\n\x12source_driver_desc\x18\x06 \x01(\t\x12\x11\n\tdepotsize\x18\x07 \x01(\x04\"&\n$CShader_ReportExternalBuild_Response2\xbb\x06\n\x06Shader\x12\xbe\x01\n\x0eRegisterShader\x12\x1f.CShader_RegisterShader_Request\x1a .CShader_RegisterShader_Response\"i\x82\xb5\x18\x65\x43lient just finished playing a game, detected new shader cache entries and is notifying us about them\x12\x8f\x01\n\nSendShader\x12\x1b.CShader_SendShader_Request\x1a\x1c.CShader_SendShader_Response\"F\x82\xb5\x18\x42\x43lient is sending us actual compiled shader code that we requested\x12\xad\x01\n\x11GetBucketManifest\x12\".CShader_GetBucketManifest_Request\x1a#.CShader_GetBucketManifest_Response\"O\x82\xb5\x18KClient wants to know the manifest ID to fetch (if any) for a bucket\'s depot\x12\x8e\x01\n\x0eGetStaleBucket\x12\x1f.CShader_GetStaleBucket_Request\x1a .CShader_GetStaleBucket_Response\"9\x82\xb5\x18\x35Job to get a stale bucket given a gpu and driver desc\x12\x88\x01\n\x13ReportExternalBuild\x12$.CShader_ReportExternalBuild_Request\x1a%.CShader_ReportExternalBuild_Response\"$\x82\xb5\x18 Report an exernally built bucket\x1a\x12\x82\xb5\x18\x0eShader methodsB\x03\x90\x01\x01')
   ,
   dependencies=[steammessages__unified__base__pb2.DESCRIPTOR,])
 
@@ -310,7 +310,7 @@ _CSHADER_GETBUCKETMANIFEST_RESPONSE = _descriptor.Descriptor(
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
       name='depotsize', full_name='CShader_GetBucketManifest_Response.depotsize', index=1,
-      number=2, type=13, cpp_type=3, label=1,
+      number=2, type=4, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
@@ -338,6 +338,186 @@ _CSHADER_GETBUCKETMANIFEST_RESPONSE = _descriptor.Descriptor(
   serialized_end=708,
 )
 
+
+_CSHADER_GETSTALEBUCKET_REQUEST = _descriptor.Descriptor(
+  name='CShader_GetStaleBucket_Request',
+  full_name='CShader_GetStaleBucket_Request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='gpu_desc', full_name='CShader_GetStaleBucket_Request.gpu_desc', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='driver_desc', full_name='CShader_GetStaleBucket_Request.driver_desc', index=1,
+      number=2, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=710,
+  serialized_end=781,
+)
+
+
+_CSHADER_GETSTALEBUCKET_RESPONSE = _descriptor.Descriptor(
+  name='CShader_GetStaleBucket_Response',
+  full_name='CShader_GetStaleBucket_Response',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='bucketid', full_name='CShader_GetStaleBucket_Response.bucketid', index=0,
+      number=1, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='appid', full_name='CShader_GetStaleBucket_Response.appid', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='manifestid', full_name='CShader_GetStaleBucket_Response.manifestid', index=2,
+      number=3, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=783,
+  serialized_end=869,
+)
+
+
+_CSHADER_REPORTEXTERNALBUILD_REQUEST = _descriptor.Descriptor(
+  name='CShader_ReportExternalBuild_Request',
+  full_name='CShader_ReportExternalBuild_Request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='appid', full_name='CShader_ReportExternalBuild_Request.appid', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='gpu_desc', full_name='CShader_ReportExternalBuild_Request.gpu_desc', index=1,
+      number=2, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='driver_desc', full_name='CShader_ReportExternalBuild_Request.driver_desc', index=2,
+      number=3, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='manifestid', full_name='CShader_ReportExternalBuild_Request.manifestid', index=3,
+      number=4, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='source_gpu_desc', full_name='CShader_ReportExternalBuild_Request.source_gpu_desc', index=4,
+      number=5, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='source_driver_desc', full_name='CShader_ReportExternalBuild_Request.source_driver_desc', index=5,
+      number=6, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='depotsize', full_name='CShader_ReportExternalBuild_Request.depotsize', index=6,
+      number=7, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=872,
+  serialized_end=1055,
+)
+
+
+_CSHADER_REPORTEXTERNALBUILD_RESPONSE = _descriptor.Descriptor(
+  name='CShader_ReportExternalBuild_Response',
+  full_name='CShader_ReportExternalBuild_Response',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=1057,
+  serialized_end=1095,
+)
+
 _CSHADER_REGISTERSHADER_REQUEST_SHADER.containing_type = _CSHADER_REGISTERSHADER_REQUEST
 _CSHADER_REGISTERSHADER_REQUEST.fields_by_name['shaders'].message_type = _CSHADER_REGISTERSHADER_REQUEST_SHADER
 _CSHADER_SENDSHADER_REQUEST_SHADERCODE.containing_type = _CSHADER_SENDSHADER_REQUEST
@@ -348,6 +528,10 @@ DESCRIPTOR.message_types_by_name['CShader_SendShader_Request'] = _CSHADER_SENDSH
 DESCRIPTOR.message_types_by_name['CShader_SendShader_Response'] = _CSHADER_SENDSHADER_RESPONSE
 DESCRIPTOR.message_types_by_name['CShader_GetBucketManifest_Request'] = _CSHADER_GETBUCKETMANIFEST_REQUEST
 DESCRIPTOR.message_types_by_name['CShader_GetBucketManifest_Response'] = _CSHADER_GETBUCKETMANIFEST_RESPONSE
+DESCRIPTOR.message_types_by_name['CShader_GetStaleBucket_Request'] = _CSHADER_GETSTALEBUCKET_REQUEST
+DESCRIPTOR.message_types_by_name['CShader_GetStaleBucket_Response'] = _CSHADER_GETSTALEBUCKET_RESPONSE
+DESCRIPTOR.message_types_by_name['CShader_ReportExternalBuild_Request'] = _CSHADER_REPORTEXTERNALBUILD_REQUEST
+DESCRIPTOR.message_types_by_name['CShader_ReportExternalBuild_Response'] = _CSHADER_REPORTEXTERNALBUILD_RESPONSE
 _sym_db.RegisterFileDescriptor(DESCRIPTOR)
 
 CShader_RegisterShader_Request = _reflection.GeneratedProtocolMessageType('CShader_RegisterShader_Request', (_message.Message,), dict(
@@ -408,6 +592,34 @@ CShader_GetBucketManifest_Response = _reflection.GeneratedProtocolMessageType('C
   ))
 _sym_db.RegisterMessage(CShader_GetBucketManifest_Response)
 
+CShader_GetStaleBucket_Request = _reflection.GeneratedProtocolMessageType('CShader_GetStaleBucket_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CSHADER_GETSTALEBUCKET_REQUEST,
+  __module__ = 'steammessages_shader_pb2'
+  # @@protoc_insertion_point(class_scope:CShader_GetStaleBucket_Request)
+  ))
+_sym_db.RegisterMessage(CShader_GetStaleBucket_Request)
+
+CShader_GetStaleBucket_Response = _reflection.GeneratedProtocolMessageType('CShader_GetStaleBucket_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CSHADER_GETSTALEBUCKET_RESPONSE,
+  __module__ = 'steammessages_shader_pb2'
+  # @@protoc_insertion_point(class_scope:CShader_GetStaleBucket_Response)
+  ))
+_sym_db.RegisterMessage(CShader_GetStaleBucket_Response)
+
+CShader_ReportExternalBuild_Request = _reflection.GeneratedProtocolMessageType('CShader_ReportExternalBuild_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CSHADER_REPORTEXTERNALBUILD_REQUEST,
+  __module__ = 'steammessages_shader_pb2'
+  # @@protoc_insertion_point(class_scope:CShader_ReportExternalBuild_Request)
+  ))
+_sym_db.RegisterMessage(CShader_ReportExternalBuild_Request)
+
+CShader_ReportExternalBuild_Response = _reflection.GeneratedProtocolMessageType('CShader_ReportExternalBuild_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CSHADER_REPORTEXTERNALBUILD_RESPONSE,
+  __module__ = 'steammessages_shader_pb2'
+  # @@protoc_insertion_point(class_scope:CShader_ReportExternalBuild_Response)
+  ))
+_sym_db.RegisterMessage(CShader_ReportExternalBuild_Response)
+
 
 DESCRIPTOR._options = None
 
@@ -417,8 +629,8 @@ _SHADER = _descriptor.ServiceDescriptor(
   file=DESCRIPTOR,
   index=0,
   serialized_options=_b('\202\265\030\016Shader methods'),
-  serialized_start=711,
-  serialized_end=1254,
+  serialized_start=1098,
+  serialized_end=1925,
   methods=[
   _descriptor.MethodDescriptor(
     name='RegisterShader',
@@ -447,6 +659,24 @@ _SHADER = _descriptor.ServiceDescriptor(
     output_type=_CSHADER_GETBUCKETMANIFEST_RESPONSE,
     serialized_options=_b('\202\265\030KClient wants to know the manifest ID to fetch (if any) for a bucket\'s depot'),
   ),
+  _descriptor.MethodDescriptor(
+    name='GetStaleBucket',
+    full_name='Shader.GetStaleBucket',
+    index=3,
+    containing_service=None,
+    input_type=_CSHADER_GETSTALEBUCKET_REQUEST,
+    output_type=_CSHADER_GETSTALEBUCKET_RESPONSE,
+    serialized_options=_b('\202\265\0305Job to get a stale bucket given a gpu and driver desc'),
+  ),
+  _descriptor.MethodDescriptor(
+    name='ReportExternalBuild',
+    full_name='Shader.ReportExternalBuild',
+    index=4,
+    containing_service=None,
+    input_type=_CSHADER_REPORTEXTERNALBUILD_REQUEST,
+    output_type=_CSHADER_REPORTEXTERNALBUILD_RESPONSE,
+    serialized_options=_b('\202\265\030 Report an exernally built bucket'),
+  ),
 ])
 _sym_db.RegisterServiceDescriptor(_SHADER)
 
diff --git a/steam/protobufs/steammessages_store_pb2.py b/steam/protobufs/steammessages_store_pb2.py
index 36b6a67..4873313 100644
--- a/steam/protobufs/steammessages_store_pb2.py
+++ b/steam/protobufs/steammessages_store_pb2.py
@@ -24,7 +24,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
   package='',
   syntax='proto2',
   serialized_options=_b('\220\001\001'),
-  serialized_pb=_b('\n\x19steammessages_store.proto\x1a steammessages_unified_base.proto\"J\n&CStore_GetLocalizedNameForTags_Request\x12\x10\n\x08language\x18\x01 \x01(\t\x12\x0e\n\x06tagids\x18\x02 \x03(\r\"\x9f\x01\n\'CStore_GetLocalizedNameForTags_Response\x12:\n\x04tags\x18\x01 \x03(\x0b\x32,.CStore_GetLocalizedNameForTags_Response.Tag\x1a\x38\n\x03Tag\x12\r\n\x05tagid\x18\x01 \x01(\r\x12\x14\n\x0c\x65nglish_name\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\"$\n\"CStore_GetStorePreferences_Request\"\xb1\x03\n\x16\x43Store_UserPreferences\x12\x18\n\x10primary_language\x18\x01 \x01(\r\x12\x1b\n\x13secondary_languages\x18\x02 \x01(\r\x12\x18\n\x10platform_windows\x18\x03 \x01(\x08\x12\x14\n\x0cplatform_mac\x18\x04 \x01(\x08\x12\x16\n\x0eplatform_linux\x18\x05 \x01(\x08\x12#\n\x1bhide_adult_content_violence\x18\x06 \x01(\x08\x12\x1e\n\x16hide_adult_content_sex\x18\x07 \x01(\x08\x12\x19\n\x11timestamp_updated\x18\x08 \x01(\r\x12\x1c\n\x14hide_store_broadcast\x18\t \x01(\x08\x12`\n\x17review_score_preference\x18\n \x01(\x0e\x32\x1b.EUserReviewScorePreference:\"k_EUserReviewScorePreference_Unset\x12\x38\n0timestamp_content_descriptor_preferences_updated\x18\x0b \x01(\x05\"\x91\x01\n\x19\x43Store_UserTagPreferences\x12\x37\n\x0ftags_to_exclude\x18\x01 \x03(\x0b\x32\x1e.CStore_UserTagPreferences.Tag\x1a;\n\x03Tag\x12\r\n\x05tagid\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x17\n\x0ftimestamp_added\x18\x03 \x01(\r\"\xd9\x01\n\'CStore_UserContentDescriptorPreferences\x12\x62\n\x1e\x63ontent_descriptors_to_exclude\x18\x01 \x03(\x0b\x32:.CStore_UserContentDescriptorPreferences.ContentDescriptor\x1aJ\n\x11\x43ontentDescriptor\x12\x1c\n\x14\x63ontent_descriptorid\x18\x01 \x01(\r\x12\x17\n\x0ftimestamp_added\x18\x02 \x01(\r\"\xda\x01\n#CStore_GetStorePreferences_Response\x12,\n\x0bpreferences\x18\x01 \x01(\x0b\x32\x17.CStore_UserPreferences\x12\x33\n\x0ftag_preferences\x18\x02 \x01(\x0b\x32\x1a.CStore_UserTagPreferences\x12P\n\x1e\x63ontent_descriptor_preferences\x18\x03 \x01(\x0b\x32(.CStore_UserContentDescriptorPreferences\"\xe2\x01\n+CStore_StorePreferencesChanged_Notification\x12,\n\x0bpreferences\x18\x01 \x01(\x0b\x32\x17.CStore_UserPreferences\x12\x33\n\x0ftag_preferences\x18\x02 \x01(\x0b\x32\x1a.CStore_UserTagPreferences\x12P\n\x1e\x63ontent_descriptor_preferences\x18\x03 \x01(\x0b\x32(.CStore_UserContentDescriptorPreferences*\xa0\x01\n\x1a\x45UserReviewScorePreference\x12&\n\"k_EUserReviewScorePreference_Unset\x10\x00\x12+\n\'k_EUserReviewScorePreference_IncludeAll\x10\x01\x12-\n)k_EUserReviewScorePreference_ExcludeBombs\x10\x02\x32\xf9\x02\n\x05Store\x12\x98\x01\n\x17GetLocalizedNameForTags\x12\'.CStore_GetLocalizedNameForTags_Request\x1a(.CStore_GetLocalizedNameForTags_Response\"*\x82\xb5\x18&Gets tag names in a different language\x12\xaf\x01\n\x13GetStorePreferences\x12#.CStore_GetStorePreferences_Request\x1a$.CStore_GetStorePreferences_Response\"M\x82\xb5\x18IReturns the desired ratings board and maximum rating to show on the store\x1a#\x82\xb5\x18\x1f\x41 service to access store data.2\xee\x01\n\x0bStoreClient\x12\xb1\x01\n\x1dNotifyStorePreferencesChanged\x12,.CStore_StorePreferencesChanged_Notification\x1a\x0b.NoResponse\"U\x82\xb5\x18QNotification from server to client that the user\'s store preferences have changed\x1a+\x82\xb5\x18#Steam store to client notifications\xc0\xb5\x18\x02\x42\x03\x90\x01\x01')
+  serialized_pb=_b('\n\x19steammessages_store.proto\x1a steammessages_unified_base.proto\"5\n!CStore_GetMostPopularTags_Request\x12\x10\n\x08language\x18\x01 \x01(\t\"\x7f\n\"CStore_GetMostPopularTags_Response\x12\x35\n\x04tags\x18\x01 \x03(\x0b\x32\'.CStore_GetMostPopularTags_Response.Tag\x1a\"\n\x03Tag\x12\r\n\x05tagid\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\"J\n&CStore_GetLocalizedNameForTags_Request\x12\x10\n\x08language\x18\x01 \x01(\t\x12\x0e\n\x06tagids\x18\x02 \x03(\r\"\x9f\x01\n\'CStore_GetLocalizedNameForTags_Response\x12:\n\x04tags\x18\x01 \x03(\x0b\x32,.CStore_GetLocalizedNameForTags_Response.Tag\x1a\x38\n\x03Tag\x12\r\n\x05tagid\x18\x01 \x01(\r\x12\x14\n\x0c\x65nglish_name\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\"$\n\"CStore_GetStorePreferences_Request\"\xb1\x03\n\x16\x43Store_UserPreferences\x12\x18\n\x10primary_language\x18\x01 \x01(\r\x12\x1b\n\x13secondary_languages\x18\x02 \x01(\r\x12\x18\n\x10platform_windows\x18\x03 \x01(\x08\x12\x14\n\x0cplatform_mac\x18\x04 \x01(\x08\x12\x16\n\x0eplatform_linux\x18\x05 \x01(\x08\x12#\n\x1bhide_adult_content_violence\x18\x06 \x01(\x08\x12\x1e\n\x16hide_adult_content_sex\x18\x07 \x01(\x08\x12\x19\n\x11timestamp_updated\x18\x08 \x01(\r\x12\x1c\n\x14hide_store_broadcast\x18\t \x01(\x08\x12`\n\x17review_score_preference\x18\n \x01(\x0e\x32\x1b.EUserReviewScorePreference:\"k_EUserReviewScorePreference_Unset\x12\x38\n0timestamp_content_descriptor_preferences_updated\x18\x0b \x01(\x05\"\x91\x01\n\x19\x43Store_UserTagPreferences\x12\x37\n\x0ftags_to_exclude\x18\x01 \x03(\x0b\x32\x1e.CStore_UserTagPreferences.Tag\x1a;\n\x03Tag\x12\r\n\x05tagid\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x17\n\x0ftimestamp_added\x18\x03 \x01(\r\"\xd9\x01\n\'CStore_UserContentDescriptorPreferences\x12\x62\n\x1e\x63ontent_descriptors_to_exclude\x18\x01 \x03(\x0b\x32:.CStore_UserContentDescriptorPreferences.ContentDescriptor\x1aJ\n\x11\x43ontentDescriptor\x12\x1c\n\x14\x63ontent_descriptorid\x18\x01 \x01(\r\x12\x17\n\x0ftimestamp_added\x18\x02 \x01(\r\"\xda\x01\n#CStore_GetStorePreferences_Response\x12,\n\x0bpreferences\x18\x01 \x01(\x0b\x32\x17.CStore_UserPreferences\x12\x33\n\x0ftag_preferences\x18\x02 \x01(\x0b\x32\x1a.CStore_UserTagPreferences\x12P\n\x1e\x63ontent_descriptor_preferences\x18\x03 \x01(\x0b\x32(.CStore_UserContentDescriptorPreferences\"\xe2\x01\n+CStore_StorePreferencesChanged_Notification\x12,\n\x0bpreferences\x18\x01 \x01(\x0b\x32\x17.CStore_UserPreferences\x12\x33\n\x0ftag_preferences\x18\x02 \x01(\x0b\x32\x1a.CStore_UserTagPreferences\x12P\n\x1e\x63ontent_descriptor_preferences\x18\x03 \x01(\x0b\x32(.CStore_UserContentDescriptorPreferences*\xa0\x01\n\x1a\x45UserReviewScorePreference\x12&\n\"k_EUserReviewScorePreference_Unset\x10\x00\x12+\n\'k_EUserReviewScorePreference_IncludeAll\x10\x01\x12-\n)k_EUserReviewScorePreference_ExcludeBombs\x10\x02\x32\x8e\x04\n\x05Store\x12\x92\x01\n\x12GetMostPopularTags\x12\".CStore_GetMostPopularTags_Request\x1a#.CStore_GetMostPopularTags_Response\"3\x82\xb5\x18/Get all whitelisted tags, with localized names.\x12\x98\x01\n\x17GetLocalizedNameForTags\x12\'.CStore_GetLocalizedNameForTags_Request\x1a(.CStore_GetLocalizedNameForTags_Response\"*\x82\xb5\x18&Gets tag names in a different language\x12\xaf\x01\n\x13GetStorePreferences\x12#.CStore_GetStorePreferences_Request\x1a$.CStore_GetStorePreferences_Response\"M\x82\xb5\x18IReturns the desired ratings board and maximum rating to show on the store\x1a#\x82\xb5\x18\x1f\x41 service to access store data.2\xee\x01\n\x0bStoreClient\x12\xb1\x01\n\x1dNotifyStorePreferencesChanged\x12,.CStore_StorePreferencesChanged_Notification\x1a\x0b.NoResponse\"U\x82\xb5\x18QNotification from server to client that the user\'s store preferences have changed\x1a+\x82\xb5\x18#Steam store to client notifications\xc0\xb5\x18\x02\x42\x03\x90\x01\x01')
   ,
   dependencies=[steammessages__unified__base__pb2.DESCRIPTOR,])
 
@@ -49,8 +49,8 @@ _EUSERREVIEWSCOREPREFERENCE = _descriptor.EnumDescriptor(
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=1594,
-  serialized_end=1754,
+  serialized_start=1778,
+  serialized_end=1938,
 )
 _sym_db.RegisterEnumDescriptor(_EUSERREVIEWSCOREPREFERENCE)
 
@@ -61,6 +61,105 @@ k_EUserReviewScorePreference_ExcludeBombs = 2
 
 
 
+_CSTORE_GETMOSTPOPULARTAGS_REQUEST = _descriptor.Descriptor(
+  name='CStore_GetMostPopularTags_Request',
+  full_name='CStore_GetMostPopularTags_Request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='language', full_name='CStore_GetMostPopularTags_Request.language', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=63,
+  serialized_end=116,
+)
+
+
+_CSTORE_GETMOSTPOPULARTAGS_RESPONSE_TAG = _descriptor.Descriptor(
+  name='Tag',
+  full_name='CStore_GetMostPopularTags_Response.Tag',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='tagid', full_name='CStore_GetMostPopularTags_Response.Tag.tagid', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='name', full_name='CStore_GetMostPopularTags_Response.Tag.name', index=1,
+      number=2, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=211,
+  serialized_end=245,
+)
+
+_CSTORE_GETMOSTPOPULARTAGS_RESPONSE = _descriptor.Descriptor(
+  name='CStore_GetMostPopularTags_Response',
+  full_name='CStore_GetMostPopularTags_Response',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='tags', full_name='CStore_GetMostPopularTags_Response.tags', index=0,
+      number=1, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[_CSTORE_GETMOSTPOPULARTAGS_RESPONSE_TAG, ],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=118,
+  serialized_end=245,
+)
+
+
 _CSTORE_GETLOCALIZEDNAMEFORTAGS_REQUEST = _descriptor.Descriptor(
   name='CStore_GetLocalizedNameForTags_Request',
   full_name='CStore_GetLocalizedNameForTags_Request',
@@ -94,8 +193,8 @@ _CSTORE_GETLOCALIZEDNAMEFORTAGS_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=63,
-  serialized_end=137,
+  serialized_start=247,
+  serialized_end=321,
 )
 
 
@@ -139,8 +238,8 @@ _CSTORE_GETLOCALIZEDNAMEFORTAGS_RESPONSE_TAG = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=243,
-  serialized_end=299,
+  serialized_start=427,
+  serialized_end=483,
 )
 
 _CSTORE_GETLOCALIZEDNAMEFORTAGS_RESPONSE = _descriptor.Descriptor(
@@ -169,8 +268,8 @@ _CSTORE_GETLOCALIZEDNAMEFORTAGS_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=140,
-  serialized_end=299,
+  serialized_start=324,
+  serialized_end=483,
 )
 
 
@@ -193,8 +292,8 @@ _CSTORE_GETSTOREPREFERENCES_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=301,
-  serialized_end=337,
+  serialized_start=485,
+  serialized_end=521,
 )
 
 
@@ -294,8 +393,8 @@ _CSTORE_USERPREFERENCES = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=340,
-  serialized_end=773,
+  serialized_start=524,
+  serialized_end=957,
 )
 
 
@@ -339,8 +438,8 @@ _CSTORE_USERTAGPREFERENCES_TAG = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=862,
-  serialized_end=921,
+  serialized_start=1046,
+  serialized_end=1105,
 )
 
 _CSTORE_USERTAGPREFERENCES = _descriptor.Descriptor(
@@ -369,8 +468,8 @@ _CSTORE_USERTAGPREFERENCES = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=776,
-  serialized_end=921,
+  serialized_start=960,
+  serialized_end=1105,
 )
 
 
@@ -407,8 +506,8 @@ _CSTORE_USERCONTENTDESCRIPTORPREFERENCES_CONTENTDESCRIPTOR = _descriptor.Descrip
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1067,
-  serialized_end=1141,
+  serialized_start=1251,
+  serialized_end=1325,
 )
 
 _CSTORE_USERCONTENTDESCRIPTORPREFERENCES = _descriptor.Descriptor(
@@ -437,8 +536,8 @@ _CSTORE_USERCONTENTDESCRIPTORPREFERENCES = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=924,
-  serialized_end=1141,
+  serialized_start=1108,
+  serialized_end=1325,
 )
 
 
@@ -482,8 +581,8 @@ _CSTORE_GETSTOREPREFERENCES_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1144,
-  serialized_end=1362,
+  serialized_start=1328,
+  serialized_end=1546,
 )
 
 
@@ -527,10 +626,12 @@ _CSTORE_STOREPREFERENCESCHANGED_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1365,
-  serialized_end=1591,
+  serialized_start=1549,
+  serialized_end=1775,
 )
 
+_CSTORE_GETMOSTPOPULARTAGS_RESPONSE_TAG.containing_type = _CSTORE_GETMOSTPOPULARTAGS_RESPONSE
+_CSTORE_GETMOSTPOPULARTAGS_RESPONSE.fields_by_name['tags'].message_type = _CSTORE_GETMOSTPOPULARTAGS_RESPONSE_TAG
 _CSTORE_GETLOCALIZEDNAMEFORTAGS_RESPONSE_TAG.containing_type = _CSTORE_GETLOCALIZEDNAMEFORTAGS_RESPONSE
 _CSTORE_GETLOCALIZEDNAMEFORTAGS_RESPONSE.fields_by_name['tags'].message_type = _CSTORE_GETLOCALIZEDNAMEFORTAGS_RESPONSE_TAG
 _CSTORE_USERPREFERENCES.fields_by_name['review_score_preference'].enum_type = _EUSERREVIEWSCOREPREFERENCE
@@ -544,6 +645,8 @@ _CSTORE_GETSTOREPREFERENCES_RESPONSE.fields_by_name['content_descriptor_preferen
 _CSTORE_STOREPREFERENCESCHANGED_NOTIFICATION.fields_by_name['preferences'].message_type = _CSTORE_USERPREFERENCES
 _CSTORE_STOREPREFERENCESCHANGED_NOTIFICATION.fields_by_name['tag_preferences'].message_type = _CSTORE_USERTAGPREFERENCES
 _CSTORE_STOREPREFERENCESCHANGED_NOTIFICATION.fields_by_name['content_descriptor_preferences'].message_type = _CSTORE_USERCONTENTDESCRIPTORPREFERENCES
+DESCRIPTOR.message_types_by_name['CStore_GetMostPopularTags_Request'] = _CSTORE_GETMOSTPOPULARTAGS_REQUEST
+DESCRIPTOR.message_types_by_name['CStore_GetMostPopularTags_Response'] = _CSTORE_GETMOSTPOPULARTAGS_RESPONSE
 DESCRIPTOR.message_types_by_name['CStore_GetLocalizedNameForTags_Request'] = _CSTORE_GETLOCALIZEDNAMEFORTAGS_REQUEST
 DESCRIPTOR.message_types_by_name['CStore_GetLocalizedNameForTags_Response'] = _CSTORE_GETLOCALIZEDNAMEFORTAGS_RESPONSE
 DESCRIPTOR.message_types_by_name['CStore_GetStorePreferences_Request'] = _CSTORE_GETSTOREPREFERENCES_REQUEST
@@ -555,6 +658,28 @@ DESCRIPTOR.message_types_by_name['CStore_StorePreferencesChanged_Notification']
 DESCRIPTOR.enum_types_by_name['EUserReviewScorePreference'] = _EUSERREVIEWSCOREPREFERENCE
 _sym_db.RegisterFileDescriptor(DESCRIPTOR)
 
+CStore_GetMostPopularTags_Request = _reflection.GeneratedProtocolMessageType('CStore_GetMostPopularTags_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CSTORE_GETMOSTPOPULARTAGS_REQUEST,
+  __module__ = 'steammessages_store_pb2'
+  # @@protoc_insertion_point(class_scope:CStore_GetMostPopularTags_Request)
+  ))
+_sym_db.RegisterMessage(CStore_GetMostPopularTags_Request)
+
+CStore_GetMostPopularTags_Response = _reflection.GeneratedProtocolMessageType('CStore_GetMostPopularTags_Response', (_message.Message,), dict(
+
+  Tag = _reflection.GeneratedProtocolMessageType('Tag', (_message.Message,), dict(
+    DESCRIPTOR = _CSTORE_GETMOSTPOPULARTAGS_RESPONSE_TAG,
+    __module__ = 'steammessages_store_pb2'
+    # @@protoc_insertion_point(class_scope:CStore_GetMostPopularTags_Response.Tag)
+    ))
+  ,
+  DESCRIPTOR = _CSTORE_GETMOSTPOPULARTAGS_RESPONSE,
+  __module__ = 'steammessages_store_pb2'
+  # @@protoc_insertion_point(class_scope:CStore_GetMostPopularTags_Response)
+  ))
+_sym_db.RegisterMessage(CStore_GetMostPopularTags_Response)
+_sym_db.RegisterMessage(CStore_GetMostPopularTags_Response.Tag)
+
 CStore_GetLocalizedNameForTags_Request = _reflection.GeneratedProtocolMessageType('CStore_GetLocalizedNameForTags_Request', (_message.Message,), dict(
   DESCRIPTOR = _CSTORE_GETLOCALIZEDNAMEFORTAGS_REQUEST,
   __module__ = 'steammessages_store_pb2'
@@ -644,13 +769,22 @@ _STORE = _descriptor.ServiceDescriptor(
   file=DESCRIPTOR,
   index=0,
   serialized_options=_b('\202\265\030\037A service to access store data.'),
-  serialized_start=1757,
-  serialized_end=2134,
+  serialized_start=1941,
+  serialized_end=2467,
   methods=[
+  _descriptor.MethodDescriptor(
+    name='GetMostPopularTags',
+    full_name='Store.GetMostPopularTags',
+    index=0,
+    containing_service=None,
+    input_type=_CSTORE_GETMOSTPOPULARTAGS_REQUEST,
+    output_type=_CSTORE_GETMOSTPOPULARTAGS_RESPONSE,
+    serialized_options=_b('\202\265\030/Get all whitelisted tags, with localized names.'),
+  ),
   _descriptor.MethodDescriptor(
     name='GetLocalizedNameForTags',
     full_name='Store.GetLocalizedNameForTags',
-    index=0,
+    index=1,
     containing_service=None,
     input_type=_CSTORE_GETLOCALIZEDNAMEFORTAGS_REQUEST,
     output_type=_CSTORE_GETLOCALIZEDNAMEFORTAGS_RESPONSE,
@@ -659,7 +793,7 @@ _STORE = _descriptor.ServiceDescriptor(
   _descriptor.MethodDescriptor(
     name='GetStorePreferences',
     full_name='Store.GetStorePreferences',
-    index=1,
+    index=2,
     containing_service=None,
     input_type=_CSTORE_GETSTOREPREFERENCES_REQUEST,
     output_type=_CSTORE_GETSTOREPREFERENCES_RESPONSE,
@@ -677,8 +811,8 @@ _STORECLIENT = _descriptor.ServiceDescriptor(
   file=DESCRIPTOR,
   index=1,
   serialized_options=_b('\202\265\030#Steam store to client notifications\300\265\030\002'),
-  serialized_start=2137,
-  serialized_end=2375,
+  serialized_start=2470,
+  serialized_end=2708,
   methods=[
   _descriptor.MethodDescriptor(
     name='NotifyStorePreferencesChanged',
diff --git a/steam/protobufs/steammessages_webui_friends_pb2.py b/steam/protobufs/steammessages_webui_friends_pb2.py
index 4d5dfd0..8c743af 100644
--- a/steam/protobufs/steammessages_webui_friends_pb2.py
+++ b/steam/protobufs/steammessages_webui_friends_pb2.py
@@ -25,13 +25,172 @@ DESCRIPTOR = _descriptor.FileDescriptor(
   package='',
   syntax='proto2',
   serialized_options=_b('\220\001\001'),
-  serialized_pb=_b('\n!steammessages_webui_friends.proto\x1a steammessages_unified_base.proto\x1a\x18steammessages_base.proto\x1a(steammessages_clientserver_friends.proto\">\n\x1a\x43\x43ommunity_GetApps_Request\x12\x0e\n\x06\x61ppids\x18\x01 \x03(\x05\x12\x10\n\x08language\x18\x02 \x01(\r\"B\n\x1b\x43\x43ommunity_GetApps_Response\x12#\n\x04\x61pps\x18\x01 \x03(\x0b\x32\x15.CCDDBAppDetailCommon\"T\n1CCommunity_GetAppRichPresenceLocalization_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\x05\x12\x10\n\x08language\x18\x02 \x01(\t\"\x97\x01\n2CCommunity_GetAppRichPresenceLocalization_Response\x12\r\n\x05\x61ppid\x18\x01 \x01(\x05\x12R\n\x0btoken_lists\x18\x02 \x03(\x0b\x32=.CCommunity_GetAppRichPresenceLocalization_Response_TokenList\"W\n8CCommunity_GetAppRichPresenceLocalization_Response_Token\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"\x9b\x01\n<CCommunity_GetAppRichPresenceLocalization_Response_TokenList\x12\x10\n\x08language\x18\x01 \x01(\t\x12I\n\x06tokens\x18\x02 \x03(\x0b\x32\x39.CCommunity_GetAppRichPresenceLocalization_Response_Token\"\xf6\x01\n\x12\x43\x43ommunity_Comment\x12\x12\n\ngidcomment\x18\x01 \x01(\x06\x12\x0f\n\x07steamid\x18\x02 \x01(\x06\x12\x11\n\ttimestamp\x18\x03 \x01(\r\x12\x0c\n\x04text\x18\x04 \x01(\t\x12\x0f\n\x07upvotes\x18\x05 \x01(\x05\x12\x0e\n\x06hidden\x18\x06 \x01(\x08\x12\x16\n\x0ehidden_by_user\x18\x07 \x01(\x08\x12\x0f\n\x07\x64\x65leted\x18\x08 \x01(\x08\x12!\n\tipaddress\x18\t \x01(\x0b\x32\x0e.CMsgIPAddress\x12\x14\n\x0ctotal_hidden\x18\n \x01(\x05\x12\x17\n\x0fupvoted_by_user\x18\x0b \x01(\x08\"\x88\x03\n$CCommunity_GetCommentThread_Response\x12%\n\x08\x63omments\x18\x01 \x03(\x0b\x32\x13.CCommunity_Comment\x12-\n\x10\x64\x65leted_comments\x18\x02 \x03(\x0b\x32\x13.CCommunity_Comment\x12\x0f\n\x07steamid\x18\x03 \x01(\x06\x12\x17\n\x0f\x63ommentthreadid\x18\x04 \x01(\x06\x12\r\n\x05start\x18\x05 \x01(\x05\x12\r\n\x05\x63ount\x18\x06 \x01(\x05\x12\x13\n\x0btotal_count\x18\x07 \x01(\x05\x12\x0f\n\x07upvotes\x18\x08 \x01(\x05\x12\x10\n\x08upvoters\x18\t \x03(\r\x12\x17\n\x0fuser_subscribed\x18\n \x01(\x08\x12\x14\n\x0cuser_upvoted\x18\x0b \x01(\x08\x12\x18\n\x10\x61nswer_commentid\x18\x0c \x01(\x06\x12\x14\n\x0c\x61nswer_actor\x18\r \x01(\r\x12\x19\n\x11\x61nswer_actor_rank\x18\x0e \x01(\x05\x12\x10\n\x08\x63\x61n_post\x18\x0f \x01(\x08\"v\n\'CCommunity_PostCommentToThread_Response\x12\x12\n\ngidcomment\x18\x01 \x01(\x06\x12\x17\n\x0f\x63ommentthreadid\x18\x02 \x01(\x06\x12\r\n\x05\x63ount\x18\x03 \x01(\x05\x12\x0f\n\x07upvotes\x18\x04 \x01(\x05\"-\n+CCommunity_DeleteCommentFromThread_Response\"\x89\x01\n%CCommunity_RateCommentThread_Response\x12\x12\n\ngidcomment\x18\x01 \x01(\x04\x12\x17\n\x0f\x63ommentthreadid\x18\x02 \x01(\x04\x12\r\n\x05\x63ount\x18\x03 \x01(\r\x12\x0f\n\x07upvotes\x18\x04 \x01(\r\x12\x13\n\x0bhas_upvoted\x18\x05 \x01(\x08\"\x9c\x01\n+CCommunity_GetCommentThreadRatings_Response\x12\x17\n\x0f\x63ommentthreadid\x18\x01 \x01(\x04\x12\x12\n\ngidcomment\x18\x02 \x01(\x04\x12\x0f\n\x07upvotes\x18\x03 \x01(\r\x12\x13\n\x0bhas_upvoted\x18\x04 \x01(\x08\x12\x1a\n\x12upvoter_accountids\x18\x05 \x03(\r\"j\n\'CCommunity_RateClanAnnouncement_Request\x12\x16\n\x0e\x61nnouncementid\x18\x01 \x01(\x04\x12\x0f\n\x07vote_up\x18\x02 \x01(\x08\x12\x16\n\x0e\x63lan_accountid\x18\x03 \x01(\r\"*\n(CCommunity_RateClanAnnouncement_Response\"K\n1CCommunity_GetClanAnnouncementVoteForUser_Request\x12\x16\n\x0e\x61nnouncementid\x18\x01 \x01(\x04\"Z\n2CCommunity_GetClanAnnouncementVoteForUser_Response\x12\x10\n\x08voted_up\x18\x01 \x01(\x08\x12\x12\n\nvoted_down\x18\x02 \x01(\x08\"i\n$CCommunity_GetAvatarHistory_Response\x12\x41\n\x07\x61vatars\x18\x01 \x03(\x0b\x32\x30.CCommunity_GetAvatarHistory_Response_AvatarData\"p\n/CCommunity_GetAvatarHistory_Response_AvatarData\x12\x13\n\x0b\x61vatar_sha1\x18\x01 \x01(\t\x12\x15\n\ruser_uploaded\x18\x02 \x01(\x08\x12\x11\n\ttimestamp\x18\x03 \x01(\r\"/\n\x0c\x43\x41ppPriority\x12\x10\n\x08priority\x18\x01 \x01(\r\x12\r\n\x05\x61ppid\x18\x02 \x03(\r\"W\n+CCommunity_GetUserPartnerEventNews_Response\x12(\n\x07results\x18\x01 \x03(\x0b\x32\x17.CClanMatchEventByRange\"\xc3\x01\n\x1d\x43\x43ommunity_PartnerEventResult\x12\x0e\n\x06\x63lanid\x18\x01 \x01(\r\x12\x11\n\tevent_gid\x18\x02 \x01(\x06\x12\x18\n\x10\x61nnouncement_gid\x18\x03 \x01(\x06\x12\r\n\x05\x61ppid\x18\x04 \x01(\r\x12\x19\n\x11possible_takeover\x18\x05 \x01(\x08\x12 \n\x15rtime32_last_modified\x18\x06 \x01(\r:\x01\x30\x12\x19\n\x11user_app_priority\x18\x07 \x01(\x05\"[\n(CCommunity_GetBestEventsForUser_Response\x12/\n\x07results\x18\x01 \x03(\x0b\x32\x1e.CCommunity_PartnerEventResult\"9\n7CCommunity_ClearUserPartnerEventsAppPriorities_Response\"O\n#CCommunity_PartnerEventsAppPriority\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x19\n\x11user_app_priority\x18\x02 \x01(\x05\"q\n5CCommunity_GetUserPartnerEventsAppPriorities_Response\x12\x38\n\npriorities\x18\x01 \x03(\x0b\x32$.CCommunity_PartnerEventsAppPriority\"9\n7CCommunity_ClearSinglePartnerEventsAppPriority_Response\"1\n/CCommunity_PartnerEventsShowMoreForApp_Response\"1\n/CCommunity_PartnerEventsShowLessForApp_Response\"\x81\x01\n+CCommunity_MarkPartnerEventsForUser_Request\x12R\n\x08markings\x18\x01 \x03(\x0b\x32@.CCommunity_MarkPartnerEventsForUser_Request_PartnerEventMarking\"\xaf\x01\n?CCommunity_MarkPartnerEventsForUser_Request_PartnerEventMarking\x12\x0e\n\x06\x63lanid\x18\x01 \x01(\r\x12\x11\n\tevent_gid\x18\x02 \x01(\x06\x12\"\n\x10\x64isplay_location\x18\x03 \x01(\x05\x42\x08\x82\xb5\x18\x04\x65num\x12\x12\n\nmark_shown\x18\x04 \x01(\x08\x12\x11\n\tmark_read\x18\x05 \x01(\x08\".\n,CCommunity_MarkPartnerEventsForUser_Response\"\x84\x01\n1CCommunity_GetUserPartnerEventViewStatus_Response\x12O\n\x06\x65vents\x18\x01 \x03(\x0b\x32?.CCommunity_GetUserPartnerEventViewStatus_Response_PartnerEvent\"\x9d\x01\n>CCommunity_GetUserPartnerEventViewStatus_Response_PartnerEvent\x12\x11\n\tevent_gid\x18\x01 \x01(\x06\x12\x17\n\x0flast_shown_time\x18\x02 \x01(\r\x12\x16\n\x0elast_read_time\x18\x03 \x01(\r\x12\x17\n\x0f\x63lan_account_id\x18\x04 \x01(\r\"=\n.CWebRTCClient_InitiateWebRTCConnection_Request\x12\x0b\n\x03sdp\x18\x01 \x01(\t\"M\n/CWebRTCClient_InitiateWebRTCConnection_Response\x12\x1a\n\x12remote_description\x18\x01 \x01(\t\"\x8b\x01\n+CWebRTC_WebRTCSessionConnected_Notification\x12\x0c\n\x04ssrc\x18\x01 \x01(\r\x12\x11\n\tclient_ip\x18\x02 \x01(\r\x12\x13\n\x0b\x63lient_port\x18\x03 \x01(\r\x12\x11\n\tserver_ip\x18\x04 \x01(\r\x12\x13\n\x0bserver_port\x18\x05 \x01(\r\"\xde\x01\n2CWebRTC_WebRTCUpdateRemoteDescription_Notification\x12\x1a\n\x12remote_description\x18\x01 \x01(\t\x12\"\n\x1aremote_description_version\x18\x02 \x01(\x04\x12h\n\x13ssrcs_to_accountids\x18\x03 \x03(\x0b\x32K.CWebRTC_WebRTCUpdateRemoteDescription_Notification_CSSRCToAccountIDMapping\"m\nJCWebRTC_WebRTCUpdateRemoteDescription_Notification_CSSRCToAccountIDMapping\x12\x0c\n\x04ssrc\x18\x01 \x01(\r\x12\x11\n\taccountid\x18\x02 \x01(\r\"\xdb\x01\n9CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Request\x12\x18\n\x10ip_webrtc_server\x18\x01 \x01(\r\x12\x1a\n\x12port_webrtc_server\x18\x02 \x01(\r\x12 \n\x18ip_webrtc_session_client\x18\x03 \x01(\r\x12\"\n\x1aport_webrtc_session_client\x18\x04 \x01(\r\x12\"\n\x1aremote_description_version\x18\x05 \x01(\x04\"<\n:CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Response\"A\n&CVoiceChat_RequestOneOnOneChat_Request\x12\x17\n\x0fsteamid_partner\x18\x01 \x01(\x06\"?\n\'CVoiceChat_RequestOneOnOneChat_Response\x12\x14\n\x0cvoice_chatid\x18\x01 \x01(\x06\"^\n-CVoiceChat_OneOnOneChatRequested_Notification\x12\x14\n\x0cvoice_chatid\x18\x01 \x01(\x06\x12\x17\n\x0fsteamid_partner\x18\x02 \x01(\x06\"p\n%CVoiceChat_AnswerOneOnOneChat_Request\x12\x14\n\x0cvoice_chatid\x18\x01 \x01(\x06\x12\x17\n\x0fsteamid_partner\x18\x02 \x01(\x06\x12\x18\n\x10\x61\x63\x63\x65pted_request\x18\x03 \x01(\x08\"(\n&CVoiceChat_AnswerOneOnOneChat_Response\"~\n3CVoiceChat_OneOnOneChatRequestResponse_Notification\x12\x14\n\x0cvoicechat_id\x18\x01 \x01(\x06\x12\x17\n\x0fsteamid_partner\x18\x02 \x01(\x06\x12\x18\n\x10\x61\x63\x63\x65pted_request\x18\x03 \x01(\x08\"=\n\"CVoiceChat_EndOneOnOneChat_Request\x12\x17\n\x0fsteamid_partner\x18\x01 \x01(\x06\"%\n#CVoiceChat_EndOneOnOneChat_Response\"U\n$CVoiceChat_LeaveOneOnOneChat_Request\x12\x17\n\x0fsteamid_partner\x18\x01 \x01(\x06\x12\x14\n\x0cvoice_chatid\x18\x02 \x01(\x06\"\'\n%CVoiceChat_LeaveOneOnOneChat_Response\"\xdd\x01\n+CVoiceChat_UserJoinedVoiceChat_Notification\x12\x14\n\x0cvoice_chatid\x18\x01 \x01(\x06\x12\x14\n\x0cuser_steamid\x18\x02 \x01(\x06\x12\x0e\n\x06\x63hatid\x18\x03 \x01(\x04\x12 \n\x18one_on_one_steamid_lower\x18\x04 \x01(\x06\x12!\n\x19one_on_one_steamid_higher\x18\x05 \x01(\x06\x12\x15\n\rchat_group_id\x18\x06 \x01(\x04\x12\x16\n\x0euser_sessionid\x18\x07 \x01(\r\"\xe0\x01\n\'CVoiceChat_UserVoiceStatus_Notification\x12\x14\n\x0cvoice_chatid\x18\x01 \x01(\x06\x12\x14\n\x0cuser_steamid\x18\x02 \x01(\x06\x12\x1e\n\x16user_muted_mic_locally\x18\x03 \x01(\x08\x12!\n\x19user_muted_output_locally\x18\x04 \x01(\x08\x12#\n\x1buser_has_no_mic_for_session\x18\x05 \x01(\x08\x12!\n\x19user_webaudio_sample_rate\x18\x06 \x01(\x05\"y\n(CVoiceChat_AllMembersStatus_Notification\x12\x14\n\x0cvoice_chatid\x18\x01 \x01(\x06\x12\x37\n\x05users\x18\x02 \x03(\x0b\x32(.CVoiceChat_UserVoiceStatus_Notification\"\x88\x02\n,CVoiceChat_UpdateVoiceChatWebRTCData_Request\x12\x14\n\x0cvoice_chatid\x18\x01 \x01(\x06\x12\x18\n\x10ip_webrtc_server\x18\x02 \x01(\r\x12\x1a\n\x12port_webrtc_server\x18\x03 \x01(\r\x12\x18\n\x10ip_webrtc_client\x18\x04 \x01(\r\x12\x1a\n\x12port_webrtc_client\x18\x05 \x01(\r\x12\x1e\n\x16ssrc_my_sending_stream\x18\x06 \x01(\r\x12\x12\n\nuser_agent\x18\x07 \x01(\t\x12\"\n\x1ahas_audio_worklets_support\x18\x08 \x01(\x08\"O\n-CVoiceChat_UpdateVoiceChatWebRTCData_Response\x12\x1e\n\x16send_client_voice_logs\x18\x01 \x01(\x08\"i\n,CVoiceChat_UploadClientVoiceChatLogs_Request\x12\x14\n\x0cvoice_chatid\x18\x01 \x01(\x06\x12#\n\x1b\x63lient_voice_logs_new_lines\x18\x02 \x01(\t\"/\n-CVoiceChat_UploadClientVoiceChatLogs_Response\"$\n\"CVoiceChat_LeaveVoiceChat_Response\"\xdb\x01\n)CVoiceChat_UserLeftVoiceChat_Notification\x12\x14\n\x0cvoice_chatid\x18\x01 \x01(\x06\x12\x14\n\x0cuser_steamid\x18\x02 \x01(\x06\x12\x0e\n\x06\x63hatid\x18\x03 \x01(\x04\x12 \n\x18one_on_one_steamid_lower\x18\x04 \x01(\x06\x12!\n\x19one_on_one_steamid_higher\x18\x05 \x01(\x06\x12\x15\n\rchat_group_id\x18\x06 \x01(\x04\x12\x16\n\x0euser_sessionid\x18\x07 \x01(\r\"\xaa\x01\n&CVoiceChat_VoiceChatEnded_Notification\x12\x14\n\x0cvoice_chatid\x18\x01 \x01(\x06\x12 \n\x18one_on_one_steamid_lower\x18\x02 \x01(\x06\x12!\n\x19one_on_one_steamid_higher\x18\x03 \x01(\x06\x12\x0e\n\x06\x63hatid\x18\x04 \x01(\x04\x12\x15\n\rchat_group_id\x18\x05 \x01(\x04\"H\n(CSteamTV_CreateBroadcastChannel_Response\x12\x1c\n\x14\x62roadcast_channel_id\x18\x01 \x01(\x06\"m\n\'CSteamTV_GetBroadcastChannelID_Response\x12\x1c\n\x14\x62roadcast_channel_id\x18\x01 \x01(\x06\x12\x13\n\x0bunique_name\x18\x02 \x01(\t\x12\x0f\n\x07steamid\x18\x03 \x01(\x06\".\n,CSteamTV_SetBroadcastChannelProfile_Response\"\xe4\x01\n,CSteamTV_GetBroadcastChannelProfile_Response\x12\x13\n\x0bunique_name\x18\x01 \x01(\t\x12\x15\n\rowner_steamid\x18\x02 \x01(\x06\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x10\n\x08language\x18\x04 \x01(\t\x12\x10\n\x08headline\x18\x05 \x01(\t\x12\x0f\n\x07summary\x18\x06 \x01(\t\x12\x10\n\x08schedule\x18\x07 \x01(\t\x12\r\n\x05rules\x18\x08 \x01(\t\x12\x0e\n\x06panels\x18\t \x01(\t\x12\x14\n\x0cis_partnered\x18\n \x01(\x08\"H\n*CSteamTV_SetBroadcastChannelImage_Response\x12\x1a\n\x12replace_image_hash\x18\x01 \x01(\t\"r\n+CSteamTV_GetBroadcastChannelImages_Response\x12\x43\n\x06images\x18\x01 \x03(\x0b\x32\x33.CSteamTV_GetBroadcastChannelImages_Response_Images\"{\n2CSteamTV_GetBroadcastChannelImages_Response_Images\x12\x1c\n\nimage_type\x18\x01 \x01(\x05\x42\x08\x82\xb5\x18\x04\x65num\x12\x12\n\nimage_path\x18\x02 \x01(\t\x12\x13\n\x0bimage_index\x18\x03 \x01(\r\"n\n*CSteamTV_GetBroadcastChannelLinks_Response\x12@\n\x05links\x18\x01 \x03(\x0b\x32\x31.CSteamTV_GetBroadcastChannelLinks_Response_Links\"\xa7\x01\n0CSteamTV_GetBroadcastChannelLinks_Response_Links\x12\x12\n\nlink_index\x18\x01 \x01(\r\x12\x0b\n\x03url\x18\x02 \x01(\t\x12\x18\n\x10link_description\x18\x03 \x01(\t\x12\x0c\n\x04left\x18\x04 \x01(\r\x12\x0b\n\x03top\x18\x05 \x01(\r\x12\r\n\x05width\x18\x06 \x01(\r\x12\x0e\n\x06height\x18\x07 \x01(\r\"\xac\x01\n5CSteamTV_SetBroadcastChannelLinkRegions_Request_Links\x12\x12\n\nlink_index\x18\x01 \x01(\r\x12\x0b\n\x03url\x18\x02 \x01(\t\x12\x18\n\x10link_description\x18\x03 \x01(\t\x12\x0c\n\x04left\x18\x04 \x01(\r\x12\x0b\n\x03top\x18\x05 \x01(\r\x12\r\n\x05width\x18\x06 \x01(\r\x12\x0e\n\x06height\x18\x07 \x01(\r\"2\n0CSteamTV_SetBroadcastChannelLinkRegions_Response\"\x91\x02\n+CSteamTV_GetBroadcastChannelStatus_Response\x12\x0f\n\x07is_live\x18\x01 \x01(\x08\x12\x13\n\x0bis_disabled\x18\x02 \x01(\x08\x12\r\n\x05\x61ppid\x18\x03 \x01(\r\x12\x0f\n\x07viewers\x18\x04 \x01(\x04\x12\r\n\x05views\x18\x05 \x01(\x04\x12\x1b\n\x13\x62roadcaster_steamid\x18\x06 \x01(\x06\x12\x15\n\rthumbnail_url\x18\x07 \x01(\t\x12\x11\n\tfollowers\x18\x08 \x01(\x04\x12\x13\n\x0bsubscribers\x18\t \x01(\x04\x12\x13\n\x0bunique_name\x18\n \x01(\t\x12\x1c\n\x14\x62roadcast_session_id\x18\x0b \x01(\x04\"\x98\x03\n\x18GetBroadcastChannelEntry\x12\x1c\n\x14\x62roadcast_channel_id\x18\x01 \x01(\x06\x12\x13\n\x0bunique_name\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\r\n\x05\x61ppid\x18\x04 \x01(\r\x12\x0f\n\x07viewers\x18\x05 \x01(\x04\x12\r\n\x05views\x18\x06 \x01(\x04\x12\x15\n\rthumbnail_url\x18\x07 \x01(\t\x12\x11\n\tfollowers\x18\x08 \x01(\x04\x12\x10\n\x08headline\x18\t \x01(\t\x12\x12\n\navatar_url\x18\n \x01(\t\x12\x1b\n\x13\x62roadcaster_steamid\x18\x0b \x01(\x06\x12\x13\n\x0bsubscribers\x18\x0c \x01(\x04\x12\x16\n\x0e\x62\x61\x63kground_url\x18\r \x01(\t\x12\x13\n\x0bis_featured\x18\x0e \x01(\x08\x12\x13\n\x0bis_disabled\x18\x0f \x01(\x08\x12\x0f\n\x07is_live\x18\x10 \x01(\x08\x12\x10\n\x08language\x18\x11 \x01(\t\x12\x0f\n\x07reports\x18\x12 \x01(\r\x12\x14\n\x0cis_partnered\x18\x13 \x01(\x08\"S\n%CSteamTV_GetFollowedChannels_Response\x12*\n\x07results\x18\x01 \x03(\x0b\x32\x19.GetBroadcastChannelEntry\"U\n\'CSteamTV_GetSubscribedChannels_Response\x12*\n\x07results\x18\x01 \x03(\x0b\x32\x19.GetBroadcastChannelEntry\"?\n(CSteamTV_FollowBroadcastChannel_Response\x12\x13\n\x0bis_followed\x18\x01 \x01(\x08\"D\n+CSteamTV_SubscribeBroadcastChannel_Response\x12\x15\n\ris_subscribed\x18\x01 \x01(\x08\"*\n(CSteamTV_ReportBroadcastChannel_Response\"^\n0CSteamTV_GetBroadcastChannelInteraction_Response\x12\x13\n\x0bis_followed\x18\x01 \x01(\x08\x12\x15\n\ris_subscribed\x18\x02 \x01(\x08\"\xb5\x01\n\rCSteamTV_Game\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\r\n\x05image\x18\x03 \x01(\t\x12\x0f\n\x07viewers\x18\x04 \x01(\x04\x12+\n\x08\x63hannels\x18\x05 \x03(\x0b\x32\x19.GetBroadcastChannelEntry\x12\x14\n\x0crelease_date\x18\x06 \x01(\t\x12\x11\n\tdeveloper\x18\x07 \x01(\t\x12\x11\n\tpublisher\x18\x08 \x01(\t\"=\n\x1a\x43SteamTV_GetGames_Response\x12\x1f\n\x07results\x18\x01 \x03(\x0b\x32\x0e.CSteamTV_Game\"K\n\x1d\x43SteamTV_GetChannels_Response\x12*\n\x07results\x18\x01 \x03(\x0b\x32\x19.GetBroadcastChannelEntry\"\x89\x01\n1CSteamTV_GetBroadcastChannelBroadcasters_Response\x12T\n\x0c\x62roadcasters\x18\x01 \x03(\x0b\x32>.CSteamTV_GetBroadcastChannelBroadcasters_Response_Broadcaster\"r\n=CSteamTV_GetBroadcastChannelBroadcasters_Response_Broadcaster\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x12\n\nrtmp_token\x18\x03 \x01(\t\"z\n\x10\x43SteamTV_ChatBan\x12\x16\n\x0eissuer_steamid\x18\x01 \x01(\x06\x12\x17\n\x0f\x63hatter_steamid\x18\x02 \x01(\x06\x12\x14\n\x0ctime_expires\x18\x03 \x01(\t\x12\x11\n\tpermanent\x18\x04 \x01(\x08\x12\x0c\n\x04name\x18\x05 \x01(\t\"\x87\x01\n\x1b\x43SteamTV_AddChatBan_Request\x12\x1c\n\x14\x62roadcast_channel_id\x18\x01 \x01(\x06\x12\x17\n\x0f\x63hatter_steamid\x18\x02 \x01(\x06\x12\x10\n\x08\x64uration\x18\x03 \x01(\r\x12\x11\n\tpermanent\x18\x04 \x01(\x08\x12\x0c\n\x04undo\x18\x05 \x01(\x08\"\x1e\n\x1c\x43SteamTV_AddChatBan_Response\"C\n\x1d\x43SteamTV_GetChatBans_Response\x12\"\n\x07results\x18\x01 \x03(\x0b\x32\x11.CSteamTV_ChatBan\"j\n!CSteamTV_AddChatModerator_Request\x12\x1c\n\x14\x62roadcast_channel_id\x18\x01 \x01(\x06\x12\x19\n\x11moderator_steamid\x18\x02 \x01(\x06\x12\x0c\n\x04undo\x18\x03 \x01(\x08\"$\n\"CSteamTV_AddChatModerator_Response\"B\n\"CSteamTV_GetChatModerators_Request\x12\x1c\n\x14\x62roadcast_channel_id\x18\x01 \x01(\x06\"7\n\x16\x43SteamTV_ChatModerator\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x0c\n\x04name\x18\x02 \x01(\t\"O\n#CSteamTV_GetChatModerators_Response\x12(\n\x07results\x18\x01 \x03(\x0b\x32\x17.CSteamTV_ChatModerator\"\x1e\n\x1c\x43SteamTV_AddWordBan_Response\"0\n\x1d\x43SteamTV_GetWordBans_Response\x12\x0f\n\x07results\x18\x01 \x03(\t\"9\n\x19\x43SteamTV_JoinChat_Request\x12\x1c\n\x14\x62roadcast_channel_id\x18\x01 \x01(\x06\"a\n\x1a\x43SteamTV_JoinChat_Response\x12\x0f\n\x07\x63hat_id\x18\x01 \x01(\x06\x12\x19\n\x11view_url_template\x18\x02 \x01(\t\x12\x17\n\x0f\x66lair_group_ids\x18\x03 \x03(\x04\"F\n\x18\x43SteamTV_Search_Response\x12*\n\x07results\x18\x01 \x03(\x0b\x32\x19.GetBroadcastChannelEntry\"g\n(CSteamTV_GetSteamTVUserSettings_Response\x12\x19\n\x11stream_live_email\x18\x01 \x01(\x08\x12 \n\x18stream_live_notification\x18\x02 \x01(\x08\"*\n(CSteamTV_SetSteamTVUserSettings_Response\"V\n(CSteamTV_GetMyBroadcastChannels_Response\x12*\n\x07results\x18\x01 \x03(\x0b\x32\x19.GetBroadcastChannelEntry\"S\n\"CSteamTV_HomePageTemplate_Takeover\x12-\n\nbroadcasts\x18\x01 \x03(\x0b\x32\x19.GetBroadcastChannelEntry\"s\n$CSteamTV_HomePageTemplate_SingleGame\x12-\n\nbroadcasts\x18\x01 \x03(\x0b\x32\x19.GetBroadcastChannelEntry\x12\r\n\x05\x61ppid\x18\x02 \x01(\r\x12\r\n\x05title\x18\x03 \x01(\t\"_\n\rGameListEntry\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x11\n\tgame_name\x18\x02 \x01(\t\x12,\n\tbroadcast\x18\x03 \x01(\x0b\x32\x19.GetBroadcastChannelEntry\"T\n\"CSteamTV_HomePageTemplate_GameList\x12\x1f\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x0e.GameListEntry\x12\r\n\x05title\x18\x02 \x01(\t\"f\n&CSteamTV_HomePageTemplate_QuickExplore\x12-\n\nbroadcasts\x18\x01 \x03(\x0b\x32\x19.GetBroadcastChannelEntry\x12\r\n\x05title\x18\x02 \x01(\t\"f\n&CSteamTV_HomePageTemplate_ConveyorBelt\x12-\n\nbroadcasts\x18\x01 \x03(\x0b\x32\x19.GetBroadcastChannelEntry\x12\r\n\x05title\x18\x02 \x01(\t\"z\n$CSteamTV_HomePageTemplate_WatchParty\x12,\n\tbroadcast\x18\x01 \x01(\x0b\x32\x19.GetBroadcastChannelEntry\x12\r\n\x05title\x18\x02 \x01(\t\x12\x15\n\rchat_group_id\x18\x03 \x01(\x04\"b\n#CSteamTV_HomePageTemplate_Developer\x12,\n\tbroadcast\x18\x01 \x01(\x0b\x32\x19.GetBroadcastChannelEntry\x12\r\n\x05title\x18\x02 \x01(\t\"0\n\x1f\x43SteamTV_HomePageTemplate_Event\x12\r\n\x05title\x18\x01 \x01(\t\"\x8f\x04\n\x1b\x43SteamTV_HomePageContentRow\x12\x1f\n\rtemplate_type\x18\x01 \x01(\x05\x42\x08\x82\xb5\x18\x04\x65num\x12\x35\n\x08takeover\x18\x02 \x01(\x0b\x32#.CSteamTV_HomePageTemplate_Takeover\x12:\n\x0bsingle_game\x18\x03 \x01(\x0b\x32%.CSteamTV_HomePageTemplate_SingleGame\x12\x36\n\tgame_list\x18\x04 \x01(\x0b\x32#.CSteamTV_HomePageTemplate_GameList\x12>\n\rquick_explore\x18\x05 \x01(\x0b\x32\'.CSteamTV_HomePageTemplate_QuickExplore\x12>\n\rconveyor_belt\x18\x06 \x01(\x0b\x32\'.CSteamTV_HomePageTemplate_ConveyorBelt\x12:\n\x0bwatch_party\x18\x07 \x01(\x0b\x32%.CSteamTV_HomePageTemplate_WatchParty\x12\x37\n\tdeveloper\x18\x08 \x01(\x0b\x32$.CSteamTV_HomePageTemplate_Developer\x12/\n\x05\x65vent\x18\t \x01(\x0b\x32 .CSteamTV_HomePageTemplate_Event\"S\n%CSteamTV_GetHomePageContents_Response\x12*\n\x04rows\x18\x01 \x03(\x0b\x32\x1c.CSteamTV_HomePageContentRow\"\xea\x01\n\x1a\x43SteamTV_BroadcastClipInfo\x12\x19\n\x11\x62roadcast_clip_id\x18\x01 \x01(\x04\x12\x12\n\nchannel_id\x18\x02 \x01(\x04\x12\x0e\n\x06\x61pp_id\x18\x03 \x01(\r\x12\x1b\n\x13\x62roadcaster_steamid\x18\x04 \x01(\x06\x12\x17\n\x0f\x63reator_steamid\x18\x05 \x01(\x06\x12\x19\n\x11video_description\x18\x06 \x01(\t\x12\x11\n\tlive_time\x18\x07 \x01(\r\x12\x11\n\tlength_ms\x18\x08 \x01(\r\x12\x16\n\x0ethumbnail_path\x18\t \x01(\t\"p\n*CSteamTV_GetBroadcastChannelClips_Response\x12*\n\x05\x63lips\x18\x01 \x03(\x0b\x32\x1b.CSteamTV_BroadcastClipInfo\x12\x16\n\x0ethumbnail_host\x18\x02 \x01(\t\"P\n\x14\x43\x46riendsListCategory\x12\x0f\n\x07groupid\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x19\n\x11\x61\x63\x63ountid_members\x18\x03 \x03(\r\"$\n\"CFriendsList_GetCategories_Request\"P\n#CFriendsList_GetCategories_Response\x12)\n\ncategories\x18\x01 \x03(\x0b\x32\x15.CFriendsListCategory\"U\n\x19\x43\x46riendsListFavoriteEntry\x12\x11\n\taccountid\x18\x01 \x01(\r\x12\x0e\n\x06\x63lanid\x18\x02 \x01(\r\x12\x15\n\rchat_group_id\x18\x03 \x01(\x04\"#\n!CFriendsList_GetFavorites_Request\"S\n\"CFriendsList_GetFavorites_Response\x12-\n\tfavorites\x18\x01 \x03(\x0b\x32\x1a.CFriendsListFavoriteEntry\"R\n!CFriendsList_SetFavorites_Request\x12-\n\tfavorites\x18\x01 \x03(\x0b\x32\x1a.CFriendsListFavoriteEntry\"$\n\"CFriendsList_SetFavorites_Response\"[\n*CFriendsList_FavoritesChanged_Notification\x12-\n\tfavorites\x18\x01 \x03(\x0b\x32\x1a.CFriendsListFavoriteEntry\"%\n#CFriendsList_GetFriendsList_Request\"S\n$CFriendsList_GetFriendsList_Response\x12+\n\x0b\x66riendslist\x18\x01 \x01(\x0b\x32\x16.CMsgClientFriendsList\"D\n!CClan_RespondToClanInvite_Request\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x0e\n\x06\x61\x63\x63\x65pt\x18\x02 \x01(\x08\"$\n\"CClan_RespondToClanInvite_Response\"y\n*CProductImpressionsFromClient_Notification\x12K\n\x0bimpressions\x18\x01 \x03(\x0b\x32\x36.CProductImpressionsFromClient_Notification_Impression\"w\n5CProductImpressionsFromClient_Notification_Impression\x12\x16\n\x04type\x18\x01 \x01(\x05\x42\x08\x82\xb5\x18\x04\x65num\x12\r\n\x05\x61ppid\x18\x02 \x01(\r\x12\x17\n\x0fnum_impressions\x18\x03 \x01(\r\"\x10\n\x0eNotImplemented2\xe5\x0e\n\tCommunity\x12\x44\n\x07GetApps\x12\x1b.CCommunity_GetApps_Request\x1a\x1c.CCommunity_GetApps_Response\x12\x89\x01\n\x1eGetAppRichPresenceLocalization\x12\x32.CCommunity_GetAppRichPresenceLocalization_Request\x1a\x33.CCommunity_GetAppRichPresenceLocalization_Response\x12J\n\x10GetCommentThread\x12\x0f.NotImplemented\x1a%.CCommunity_GetCommentThread_Response\x12P\n\x13PostCommentToThread\x12\x0f.NotImplemented\x1a(.CCommunity_PostCommentToThread_Response\x12X\n\x17\x44\x65leteCommentFromThread\x12\x0f.NotImplemented\x1a,.CCommunity_DeleteCommentFromThread_Response\x12L\n\x11RateCommentThread\x12\x0f.NotImplemented\x1a&.CCommunity_RateCommentThread_Response\x12X\n\x17GetCommentThreadRatings\x12\x0f.NotImplemented\x1a,.CCommunity_GetCommentThreadRatings_Response\x12k\n\x14RateClanAnnouncement\x12(.CCommunity_RateClanAnnouncement_Request\x1a).CCommunity_RateClanAnnouncement_Response\x12\x89\x01\n\x1eGetClanAnnouncementVoteForUser\x12\x32.CCommunity_GetClanAnnouncementVoteForUser_Request\x1a\x33.CCommunity_GetClanAnnouncementVoteForUser_Response\x12J\n\x10GetAvatarHistory\x12\x0f.NotImplemented\x1a%.CCommunity_GetAvatarHistory_Response\x12X\n\x17GetUserPartnerEventNews\x12\x0f.NotImplemented\x1a,.CCommunity_GetUserPartnerEventNews_Response\x12R\n\x14GetBestEventsForUser\x12\x0f.NotImplemented\x1a).CCommunity_GetBestEventsForUser_Response\x12w\n\x18MarkPartnerEventsForUser\x12,.CCommunity_MarkPartnerEventsForUser_Request\x1a-.CCommunity_MarkPartnerEventsForUser_Response\x12\x64\n\x1dGetUserPartnerEventViewStatus\x12\x0f.NotImplemented\x1a\x32.CCommunity_GetUserPartnerEventViewStatus_Response\x12`\n\x1bPartnerEventsShowMoreForApp\x12\x0f.NotImplemented\x1a\x30.CCommunity_PartnerEventsShowMoreForApp_Response\x12`\n\x1bPartnerEventsShowLessForApp\x12\x0f.NotImplemented\x1a\x30.CCommunity_PartnerEventsShowLessForApp_Response\x12p\n#ClearUserPartnerEventsAppPriorities\x12\x0f.NotImplemented\x1a\x38.CCommunity_ClearUserPartnerEventsAppPriorities_Response\x12l\n!GetUserPartnerEventsAppPriorities\x12\x0f.NotImplemented\x1a\x36.CCommunity_GetUserPartnerEventsAppPriorities_Response\x12p\n#ClearSinglePartnerEventsAppPriority\x12\x0f.NotImplemented\x1a\x38.CCommunity_ClearSinglePartnerEventsAppPriority_Response2\xae\x02\n\x0cWebRTCClient\x12}\n\x18InitiateWebRTCConnection\x12/.CWebRTCClient_InitiateWebRTCConnection_Request\x1a\x30.CWebRTCClient_InitiateWebRTCConnection_Response\x12\x9e\x01\n#AcknowledgeUpdatedRemoteDescription\x12:.CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Request\x1a;.CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Response2\xdf\x01\n\x19WebRTCClientNotifications\x12Y\n\x1cNotifyWebRTCSessionConnected\x12,.CWebRTC_WebRTCSessionConnected_Notification\x1a\x0b.NoResponse\x12g\n#NotifyWebRTCUpdateRemoteDescription\x12\x33.CWebRTC_WebRTCUpdateRemoteDescription_Notification\x1a\x0b.NoResponse2\xae\x06\n\tVoiceChat\x12z\n\x19UpdateVoiceChatWebRTCData\x12-.CVoiceChat_UpdateVoiceChatWebRTCData_Request\x1a..CVoiceChat_UpdateVoiceChatWebRTCData_Response\x12N\n\x15NotifyUserVoiceStatus\x12(.CVoiceChat_UserVoiceStatus_Notification\x1a\x0b.NoResponse\x12z\n\x19UploadClientVoiceChatLogs\x12-.CVoiceChat_UploadClientVoiceChatLogs_Request\x1a..CVoiceChat_UploadClientVoiceChatLogs_Response\x12\x46\n\x0eLeaveVoiceChat\x12\x0f.NotImplemented\x1a#.CVoiceChat_LeaveVoiceChat_Response\x12h\n\x13RequestOneOnOneChat\x12\'.CVoiceChat_RequestOneOnOneChat_Request\x1a(.CVoiceChat_RequestOneOnOneChat_Response\x12\x65\n\x12\x41nswerOneOnOneChat\x12&.CVoiceChat_AnswerOneOnOneChat_Request\x1a\'.CVoiceChat_AnswerOneOnOneChat_Response\x12\\\n\x0f\x45ndOneOnOneChat\x12#.CVoiceChat_EndOneOnOneChat_Request\x1a$.CVoiceChat_EndOneOnOneChat_Response\x12\x62\n\x11LeaveOneOnOneChat\x12%.CVoiceChat_LeaveOneOnOneChat_Request\x1a&.CVoiceChat_LeaveOneOnOneChat_Response2\xed\x04\n\x0fVoiceChatClient\x12V\n\x19NotifyUserJoinedVoiceChat\x12,.CVoiceChat_UserJoinedVoiceChat_Notification\x1a\x0b.NoResponse\x12R\n\x17NotifyUserLeftVoiceChat\x12*.CVoiceChat_UserLeftVoiceChat_Notification\x1a\x0b.NoResponse\x12L\n\x14NotifyVoiceChatEnded\x12\'.CVoiceChat_VoiceChatEnded_Notification\x1a\x0b.NoResponse\x12N\n\x15NotifyUserVoiceStatus\x12(.CVoiceChat_UserVoiceStatus_Notification\x1a\x0b.NoResponse\x12S\n\x19NotifyAllUsersVoiceStatus\x12).CVoiceChat_AllMembersStatus_Notification\x1a\x0b.NoResponse\x12Z\n\x1bNotifyOneOnOneChatRequested\x12..CVoiceChat_OneOnOneChatRequested_Notification\x1a\x0b.NoResponse\x12_\n\x1aNotifyOneOnOneChatResponse\x12\x34.CVoiceChat_OneOnOneChatRequestResponse_Notification\x1a\x0b.NoResponse2\xa2\x14\n\x07SteamTV\x12T\n\x16\x43reateBroadcastChannel\x12\x0f.NotImplemented\x1a).CSteamTV_CreateBroadcastChannel_Response\x12R\n\x15GetBroadcastChannelID\x12\x0f.NotImplemented\x1a(.CSteamTV_GetBroadcastChannelID_Response\x12\\\n\x1aSetBroadcastChannelProfile\x12\x0f.NotImplemented\x1a-.CSteamTV_SetBroadcastChannelProfile_Response\x12\\\n\x1aGetBroadcastChannelProfile\x12\x0f.NotImplemented\x1a-.CSteamTV_GetBroadcastChannelProfile_Response\x12X\n\x18SetBroadcastChannelImage\x12\x0f.NotImplemented\x1a+.CSteamTV_SetBroadcastChannelImage_Response\x12Z\n\x19GetBroadcastChannelImages\x12\x0f.NotImplemented\x1a,.CSteamTV_GetBroadcastChannelImages_Response\x12\x64\n\x1eSetBroadcastChannelLinkRegions\x12\x0f.NotImplemented\x1a\x31.CSteamTV_SetBroadcastChannelLinkRegions_Response\x12X\n\x18GetBroadcastChannelLinks\x12\x0f.NotImplemented\x1a+.CSteamTV_GetBroadcastChannelLinks_Response\x12\x66\n\x1fGetBroadcastChannelBroadcasters\x12\x0f.NotImplemented\x1a\x32.CSteamTV_GetBroadcastChannelBroadcasters_Response\x12N\n\x13GetFollowedChannels\x12\x0f.NotImplemented\x1a&.CSteamTV_GetFollowedChannels_Response\x12R\n\x15GetSubscribedChannels\x12\x0f.NotImplemented\x1a(.CSteamTV_GetSubscribedChannels_Response\x12Z\n\x19GetBroadcastChannelStatus\x12\x0f.NotImplemented\x1a,.CSteamTV_GetBroadcastChannelStatus_Response\x12T\n\x16\x46ollowBroadcastChannel\x12\x0f.NotImplemented\x1a).CSteamTV_FollowBroadcastChannel_Response\x12Z\n\x19SubscribeBroadcastChannel\x12\x0f.NotImplemented\x1a,.CSteamTV_SubscribeBroadcastChannel_Response\x12X\n\x18GetBroadcastChannelClips\x12\x0f.NotImplemented\x1a+.CSteamTV_GetBroadcastChannelClips_Response\x12T\n\x16ReportBroadcastChannel\x12\x0f.NotImplemented\x1a).CSteamTV_ReportBroadcastChannel_Response\x12\x64\n\x1eGetBroadcastChannelInteraction\x12\x0f.NotImplemented\x1a\x31.CSteamTV_GetBroadcastChannelInteraction_Response\x12\x38\n\x08GetGames\x12\x0f.NotImplemented\x1a\x1b.CSteamTV_GetGames_Response\x12>\n\x0bGetChannels\x12\x0f.NotImplemented\x1a\x1e.CSteamTV_GetChannels_Response\x12I\n\nAddChatBan\x12\x1c.CSteamTV_AddChatBan_Request\x1a\x1d.CSteamTV_AddChatBan_Response\x12>\n\x0bGetChatBans\x12\x0f.NotImplemented\x1a\x1e.CSteamTV_GetChatBans_Response\x12[\n\x10\x41\x64\x64\x43hatModerator\x12\".CSteamTV_AddChatModerator_Request\x1a#.CSteamTV_AddChatModerator_Response\x12^\n\x11GetChatModerators\x12#.CSteamTV_GetChatModerators_Request\x1a$.CSteamTV_GetChatModerators_Response\x12<\n\nAddWordBan\x12\x0f.NotImplemented\x1a\x1d.CSteamTV_AddWordBan_Response\x12>\n\x0bGetWordBans\x12\x0f.NotImplemented\x1a\x1e.CSteamTV_GetWordBans_Response\x12\x43\n\x08JoinChat\x12\x1a.CSteamTV_JoinChat_Request\x1a\x1b.CSteamTV_JoinChat_Response\x12\x34\n\x06Search\x12\x0f.NotImplemented\x1a\x19.CSteamTV_Search_Response\x12T\n\x16GetSteamTVUserSettings\x12\x0f.NotImplemented\x1a).CSteamTV_GetSteamTVUserSettings_Response\x12T\n\x16SetSteamTVUserSettings\x12\x0f.NotImplemented\x1a).CSteamTV_SetSteamTVUserSettings_Response\x12T\n\x16GetMyBroadcastChannels\x12\x0f.NotImplemented\x1a).CSteamTV_GetMyBroadcastChannels_Response\x12N\n\x13GetHomePageContents\x12\x0f.NotImplemented\x1a&.CSteamTV_GetHomePageContents_Response2\xfa\x02\n\x0b\x46riendsList\x12Z\n\rGetCategories\x12#.CFriendsList_GetCategories_Request\x1a$.CFriendsList_GetCategories_Response\x12]\n\x0eGetFriendsList\x12$.CFriendsList_GetFriendsList_Request\x1a%.CFriendsList_GetFriendsList_Response\x12W\n\x0cGetFavorites\x12\".CFriendsList_GetFavorites_Request\x1a#.CFriendsList_GetFavorites_Response\x12W\n\x0cSetFavorites\x12\".CFriendsList_SetFavorites_Request\x1a#.CFriendsList_SetFavorites_Response2a\n\x11\x46riendsListClient\x12L\n\x10\x46\x61voritesChanged\x12+.CFriendsList_FavoritesChanged_Notification\x1a\x0b.NoResponse2f\n\x04\x43lan\x12^\n\x13RespondToClanInvite\x12\".CClan_RespondToClanInvite_Request\x1a#.CClan_RespondToClanInvite_Response2W\n\x11\x45xperimentService\x12\x42\n\"ReportProductImpressionsFromClient\x12\x0f.NotImplemented\x1a\x0b.NoResponseB\x03\x90\x01\x01')
+  serialized_pb=_b('\n!steammessages_webui_friends.proto\x1a steammessages_unified_base.proto\x1a\x18steammessages_base.proto\x1a(steammessages_clientserver_friends.proto\"\x82\x01\n1CHelpRequestLogs_UploadUserApplicationLog_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x10\n\x08log_type\x18\x02 \x01(\t\x12\x16\n\x0eversion_string\x18\x03 \x01(\t\x12\x14\n\x0clog_contents\x18\x04 \x01(\t\"@\n2CHelpRequestLogs_UploadUserApplicationLog_Response\x12\n\n\x02id\x18\x01 \x01(\x04\"n\n\x1e\x43MsgClientAppMinutesPlayedData\x12L\n\x0eminutes_played\x18\x01 \x03(\x0b\x32\x34.CMsgClientAppMinutesPlayedData_AppMinutesPlayedData\"n\n3CMsgClientAppMinutesPlayedData_AppMinutesPlayedData\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x0f\n\x07\x66orever\x18\x02 \x01(\x05\x12\x16\n\x0elast_two_weeks\x18\x03 \x01(\x05\">\n\x1a\x43\x43ommunity_GetApps_Request\x12\x0e\n\x06\x61ppids\x18\x01 \x03(\x05\x12\x10\n\x08language\x18\x02 \x01(\r\"B\n\x1b\x43\x43ommunity_GetApps_Response\x12#\n\x04\x61pps\x18\x01 \x03(\x0b\x32\x15.CCDDBAppDetailCommon\"T\n1CCommunity_GetAppRichPresenceLocalization_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\x05\x12\x10\n\x08language\x18\x02 \x01(\t\"\x97\x01\n2CCommunity_GetAppRichPresenceLocalization_Response\x12\r\n\x05\x61ppid\x18\x01 \x01(\x05\x12R\n\x0btoken_lists\x18\x02 \x03(\x0b\x32=.CCommunity_GetAppRichPresenceLocalization_Response_TokenList\"W\n8CCommunity_GetAppRichPresenceLocalization_Response_Token\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"\x9b\x01\n<CCommunity_GetAppRichPresenceLocalization_Response_TokenList\x12\x10\n\x08language\x18\x01 \x01(\t\x12I\n\x06tokens\x18\x02 \x03(\x0b\x32\x39.CCommunity_GetAppRichPresenceLocalization_Response_Token\"\x9d\x02\n#CCommunity_GetCommentThread_Request\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x1b\n\x13\x63omment_thread_type\x18\x02 \x01(\r\x12\x12\n\ngidfeature\x18\x03 \x01(\x06\x12\x13\n\x0bgidfeature2\x18\x04 \x01(\x06\x12\x17\n\x0f\x63ommentthreadid\x18\x05 \x01(\x06\x12\r\n\x05start\x18\x06 \x01(\x05\x12\r\n\x05\x63ount\x18\x07 \x01(\x05\x12\x10\n\x08upvoters\x18\x08 \x01(\x05\x12\x17\n\x0finclude_deleted\x18\t \x01(\x08\x12\x12\n\ngidcomment\x18\n \x01(\x06\x12\x13\n\x0btime_oldest\x18\x0b \x01(\r\x12\x14\n\x0coldest_first\x18\x0c \x01(\x08\"\xf6\x01\n\x12\x43\x43ommunity_Comment\x12\x12\n\ngidcomment\x18\x01 \x01(\x06\x12\x0f\n\x07steamid\x18\x02 \x01(\x06\x12\x11\n\ttimestamp\x18\x03 \x01(\r\x12\x0c\n\x04text\x18\x04 \x01(\t\x12\x0f\n\x07upvotes\x18\x05 \x01(\x05\x12\x0e\n\x06hidden\x18\x06 \x01(\x08\x12\x16\n\x0ehidden_by_user\x18\x07 \x01(\x08\x12\x0f\n\x07\x64\x65leted\x18\x08 \x01(\x08\x12!\n\tipaddress\x18\t \x01(\x0b\x32\x0e.CMsgIPAddress\x12\x14\n\x0ctotal_hidden\x18\n \x01(\x05\x12\x17\n\x0fupvoted_by_user\x18\x0b \x01(\x08\"\x88\x03\n$CCommunity_GetCommentThread_Response\x12%\n\x08\x63omments\x18\x01 \x03(\x0b\x32\x13.CCommunity_Comment\x12-\n\x10\x64\x65leted_comments\x18\x02 \x03(\x0b\x32\x13.CCommunity_Comment\x12\x0f\n\x07steamid\x18\x03 \x01(\x06\x12\x17\n\x0f\x63ommentthreadid\x18\x04 \x01(\x06\x12\r\n\x05start\x18\x05 \x01(\x05\x12\r\n\x05\x63ount\x18\x06 \x01(\x05\x12\x13\n\x0btotal_count\x18\x07 \x01(\x05\x12\x0f\n\x07upvotes\x18\x08 \x01(\x05\x12\x10\n\x08upvoters\x18\t \x03(\r\x12\x17\n\x0fuser_subscribed\x18\n \x01(\x08\x12\x14\n\x0cuser_upvoted\x18\x0b \x01(\x08\x12\x18\n\x10\x61nswer_commentid\x18\x0c \x01(\x06\x12\x14\n\x0c\x61nswer_actor\x18\r \x01(\r\x12\x19\n\x11\x61nswer_actor_rank\x18\x0e \x01(\x05\x12\x10\n\x08\x63\x61n_post\x18\x0f \x01(\x08\"\xc7\x01\n&CCommunity_PostCommentToThread_Request\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x1b\n\x13\x63omment_thread_type\x18\x02 \x01(\r\x12\x12\n\ngidfeature\x18\x03 \x01(\x06\x12\x13\n\x0bgidfeature2\x18\x04 \x01(\x06\x12\x0c\n\x04text\x18\x06 \x01(\t\x12\x18\n\x10gidparentcomment\x18\x07 \x01(\x06\x12\x1e\n\x16suppress_notifications\x18\x08 \x01(\x08\"v\n\'CCommunity_PostCommentToThread_Response\x12\x12\n\ngidcomment\x18\x01 \x01(\x06\x12\x17\n\x0f\x63ommentthreadid\x18\x02 \x01(\x06\x12\r\n\x05\x63ount\x18\x03 \x01(\x05\x12\x0f\n\x07upvotes\x18\x04 \x01(\x05\"\xa9\x01\n*CCommunity_DeleteCommentFromThread_Request\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x1b\n\x13\x63omment_thread_type\x18\x02 \x01(\r\x12\x12\n\ngidfeature\x18\x03 \x01(\x06\x12\x13\n\x0bgidfeature2\x18\x04 \x01(\x06\x12\x12\n\ngidcomment\x18\x05 \x01(\x06\x12\x10\n\x08undelete\x18\x06 \x01(\x08\"-\n+CCommunity_DeleteCommentFromThread_Response\"\xc0\x01\n$CCommunity_RateCommentThread_Request\x12\x19\n\x11\x63ommentthreadtype\x18\x01 \x01(\t\x12\x0f\n\x07steamid\x18\x02 \x01(\x04\x12\x12\n\ngidfeature\x18\x03 \x01(\x04\x12\x13\n\x0bgidfeature2\x18\x04 \x01(\x04\x12\x12\n\ngidcomment\x18\x05 \x01(\x04\x12\x0f\n\x07rate_up\x18\x06 \x01(\x08\x12\x1e\n\x16suppress_notifications\x18\x07 \x01(\x08\"\x89\x01\n%CCommunity_RateCommentThread_Response\x12\x12\n\ngidcomment\x18\x01 \x01(\x04\x12\x17\n\x0f\x63ommentthreadid\x18\x02 \x01(\x04\x12\r\n\x05\x63ount\x18\x03 \x01(\r\x12\x0f\n\x07upvotes\x18\x04 \x01(\r\x12\x13\n\x0bhas_upvoted\x18\x05 \x01(\x08\"\xaa\x01\n*CCommunity_GetCommentThreadRatings_Request\x12\x19\n\x11\x63ommentthreadtype\x18\x01 \x01(\t\x12\x0f\n\x07steamid\x18\x02 \x01(\x04\x12\x12\n\ngidfeature\x18\x03 \x01(\x04\x12\x13\n\x0bgidfeature2\x18\x04 \x01(\x04\x12\x12\n\ngidcomment\x18\x05 \x01(\x04\x12\x13\n\x0bmax_results\x18\x06 \x01(\r\"\x9c\x01\n+CCommunity_GetCommentThreadRatings_Response\x12\x17\n\x0f\x63ommentthreadid\x18\x01 \x01(\x04\x12\x12\n\ngidcomment\x18\x02 \x01(\x04\x12\x0f\n\x07upvotes\x18\x03 \x01(\r\x12\x13\n\x0bhas_upvoted\x18\x04 \x01(\x08\x12\x1a\n\x12upvoter_accountids\x18\x05 \x03(\r\"R\n\'CCommunity_RateClanAnnouncement_Request\x12\x16\n\x0e\x61nnouncementid\x18\x01 \x01(\x04\x12\x0f\n\x07vote_up\x18\x02 \x01(\x08\"*\n(CCommunity_RateClanAnnouncement_Response\"K\n1CCommunity_GetClanAnnouncementVoteForUser_Request\x12\x16\n\x0e\x61nnouncementid\x18\x01 \x01(\x04\"Z\n2CCommunity_GetClanAnnouncementVoteForUser_Response\x12\x10\n\x08voted_up\x18\x01 \x01(\x08\x12\x12\n\nvoted_down\x18\x02 \x01(\x08\"/\n\x0c\x43\x41ppPriority\x12\x10\n\x08priority\x18\x01 \x01(\r\x12\r\n\x05\x61ppid\x18\x02 \x03(\r\"\xd8\x02\n*CCommunity_GetUserPartnerEventNews_Request\x12\r\n\x05\x63ount\x18\x01 \x01(\r\x12\x0e\n\x06offset\x18\x02 \x01(\r\x12\x1a\n\x12rtime32_start_time\x18\x03 \x01(\r\x12\x18\n\x10rtime32_end_time\x18\x04 \x01(\r\x12\x1b\n\x13language_preference\x18\x05 \x03(\r\x12M\n\x11\x66ilter_event_type\x18\x06 \x03(\x05\x42\x32\x82\xb5\x18.enum; suggested type: ECommunityWordFilterType\x12\x17\n\x0f\x66ilter_to_appid\x18\x07 \x01(\x08\x12\x1f\n\x08\x61pp_list\x18\x08 \x03(\x0b\x32\r.CAppPriority\x12\x16\n\x0b\x63ount_after\x18\t \x01(\r:\x01\x30\x12\x17\n\x0c\x63ount_before\x18\n \x01(\r:\x01\x30\"W\n+CCommunity_GetUserPartnerEventNews_Response\x12(\n\x07results\x18\x01 \x03(\x0b\x32\x17.CClanMatchEventByRange\"k\n\'CCommunity_GetBestEventsForUser_Request\x12\x1a\n\x12include_steam_blog\x18\x01 \x01(\x08\x12$\n\x1c\x66ilter_to_played_within_days\x18\x02 \x01(\r\"\xc3\x01\n\x1d\x43\x43ommunity_PartnerEventResult\x12\x0e\n\x06\x63lanid\x18\x01 \x01(\r\x12\x11\n\tevent_gid\x18\x02 \x01(\x06\x12\x18\n\x10\x61nnouncement_gid\x18\x03 \x01(\x06\x12\r\n\x05\x61ppid\x18\x04 \x01(\r\x12\x19\n\x11possible_takeover\x18\x05 \x01(\x08\x12 \n\x15rtime32_last_modified\x18\x06 \x01(\r:\x01\x30\x12\x19\n\x11user_app_priority\x18\x07 \x01(\x05\"[\n(CCommunity_GetBestEventsForUser_Response\x12/\n\x07results\x18\x01 \x03(\x0b\x32\x1e.CCommunity_PartnerEventResult\"8\n6CCommunity_ClearUserPartnerEventsAppPriorities_Request\"9\n7CCommunity_ClearUserPartnerEventsAppPriorities_Response\"O\n#CCommunity_PartnerEventsAppPriority\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\x12\x19\n\x11user_app_priority\x18\x02 \x01(\x05\"6\n4CCommunity_GetUserPartnerEventsAppPriorities_Request\"q\n5CCommunity_GetUserPartnerEventsAppPriorities_Response\x12\x38\n\npriorities\x18\x01 \x03(\x0b\x32$.CCommunity_PartnerEventsAppPriority\"G\n6CCommunity_ClearSinglePartnerEventsAppPriority_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\"9\n7CCommunity_ClearSinglePartnerEventsAppPriority_Response\"?\n.CCommunity_PartnerEventsShowMoreForApp_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\"1\n/CCommunity_PartnerEventsShowMoreForApp_Response\"?\n.CCommunity_PartnerEventsShowLessForApp_Request\x12\r\n\x05\x61ppid\x18\x01 \x01(\r\"1\n/CCommunity_PartnerEventsShowLessForApp_Response\"\x81\x01\n+CCommunity_MarkPartnerEventsForUser_Request\x12R\n\x08markings\x18\x01 \x03(\x0b\x32@.CCommunity_MarkPartnerEventsForUser_Request_PartnerEventMarking\"\xdd\x01\n?CCommunity_MarkPartnerEventsForUser_Request_PartnerEventMarking\x12\x0e\n\x06\x63lanid\x18\x01 \x01(\r\x12\x11\n\tevent_gid\x18\x02 \x01(\x06\x12P\n\x10\x64isplay_location\x18\x03 \x01(\x05\x42\x36\x82\xb5\x18\x32\x65num; suggested type: EPartnerEventDisplayLocation\x12\x12\n\nmark_shown\x18\x04 \x01(\x08\x12\x11\n\tmark_read\x18\x05 \x01(\x08\".\n,CCommunity_MarkPartnerEventsForUser_Response\"y\n*CProductImpressionsFromClient_Notification\x12K\n\x0bimpressions\x18\x01 \x03(\x0b\x32\x36.CProductImpressionsFromClient_Notification_Impression\"\xa9\x01\n5CProductImpressionsFromClient_Notification_Impression\x12H\n\x04type\x18\x01 \x01(\x05\x42:\x82\xb5\x18\x36\x65num; suggested type: EProductImpressionFromClientType\x12\r\n\x05\x61ppid\x18\x02 \x01(\r\x12\x17\n\x0fnum_impressions\x18\x03 \x01(\r\"P\n\x14\x43\x46riendsListCategory\x12\x0f\n\x07groupid\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x19\n\x11\x61\x63\x63ountid_members\x18\x03 \x03(\r\"$\n\"CFriendsList_GetCategories_Request\"P\n#CFriendsList_GetCategories_Response\x12)\n\ncategories\x18\x01 \x03(\x0b\x32\x15.CFriendsListCategory\"U\n\x19\x43\x46riendsListFavoriteEntry\x12\x11\n\taccountid\x18\x01 \x01(\r\x12\x0e\n\x06\x63lanid\x18\x02 \x01(\r\x12\x15\n\rchat_group_id\x18\x03 \x01(\x04\"#\n!CFriendsList_GetFavorites_Request\"S\n\"CFriendsList_GetFavorites_Response\x12-\n\tfavorites\x18\x01 \x03(\x0b\x32\x1a.CFriendsListFavoriteEntry\"R\n!CFriendsList_SetFavorites_Request\x12-\n\tfavorites\x18\x01 \x03(\x0b\x32\x1a.CFriendsListFavoriteEntry\"$\n\"CFriendsList_SetFavorites_Response\"[\n*CFriendsList_FavoritesChanged_Notification\x12-\n\tfavorites\x18\x01 \x03(\x0b\x32\x1a.CFriendsListFavoriteEntry\"%\n#CFriendsList_GetFriendsList_Request\"S\n$CFriendsList_GetFriendsList_Response\x12+\n\x0b\x66riendslist\x18\x01 \x01(\x0b\x32\x16.CMsgClientFriendsList\"N\n!CMsgClientUCMPublishedFileDeleted\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\x12\x0e\n\x06\x61pp_id\x18\x02 \x01(\r\"\xb7\x01\n\x1e\x43MsgCREEnumeratePublishedFiles\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x12\n\nquery_type\x18\x02 \x01(\x05\x12\x13\n\x0bstart_index\x18\x03 \x01(\r\x12\x0c\n\x04\x64\x61ys\x18\x04 \x01(\r\x12\r\n\x05\x63ount\x18\x05 \x01(\r\x12\x0c\n\x04tags\x18\x06 \x03(\t\x12\x11\n\tuser_tags\x18\x07 \x03(\t\x12\x1e\n\x12matching_file_type\x18\x08 \x01(\r:\x02\x31\x33\"\xa5\x01\n&CMsgCREEnumeratePublishedFilesResponse\x12\x12\n\x07\x65result\x18\x01 \x01(\x05:\x01\x32\x12P\n\x0fpublished_files\x18\x02 \x03(\x0b\x32\x37.CMsgCREEnumeratePublishedFilesResponse_PublishedFileId\x12\x15\n\rtotal_results\x18\x03 \x01(\r\"\x9d\x01\n6CMsgCREEnumeratePublishedFilesResponse_PublishedFileId\x12\x19\n\x11published_file_id\x18\x01 \x01(\x06\x12\x11\n\tvotes_for\x18\x02 \x01(\x05\x12\x15\n\rvotes_against\x18\x03 \x01(\x05\x12\x0f\n\x07reports\x18\x04 \x01(\x05\x12\r\n\x05score\x18\x05 \x01(\x02\"D\n!CClan_RespondToClanInvite_Request\x12\x0f\n\x07steamid\x18\x01 \x01(\x06\x12\x0e\n\x06\x61\x63\x63\x65pt\x18\x02 \x01(\x08\"$\n\"CClan_RespondToClanInvite_Response\"A\n&CVoiceChat_RequestOneOnOneChat_Request\x12\x17\n\x0fsteamid_partner\x18\x01 \x01(\x06\"?\n\'CVoiceChat_RequestOneOnOneChat_Response\x12\x14\n\x0cvoice_chatid\x18\x01 \x01(\x06\"^\n-CVoiceChat_OneOnOneChatRequested_Notification\x12\x14\n\x0cvoice_chatid\x18\x01 \x01(\x06\x12\x17\n\x0fsteamid_partner\x18\x02 \x01(\x06\"p\n%CVoiceChat_AnswerOneOnOneChat_Request\x12\x14\n\x0cvoice_chatid\x18\x01 \x01(\x06\x12\x17\n\x0fsteamid_partner\x18\x02 \x01(\x06\x12\x18\n\x10\x61\x63\x63\x65pted_request\x18\x03 \x01(\x08\"(\n&CVoiceChat_AnswerOneOnOneChat_Response\"~\n3CVoiceChat_OneOnOneChatRequestResponse_Notification\x12\x14\n\x0cvoicechat_id\x18\x01 \x01(\x06\x12\x17\n\x0fsteamid_partner\x18\x02 \x01(\x06\x12\x18\n\x10\x61\x63\x63\x65pted_request\x18\x03 \x01(\x08\"=\n\"CVoiceChat_EndOneOnOneChat_Request\x12\x17\n\x0fsteamid_partner\x18\x01 \x01(\x06\"%\n#CVoiceChat_EndOneOnOneChat_Response\"U\n$CVoiceChat_LeaveOneOnOneChat_Request\x12\x17\n\x0fsteamid_partner\x18\x01 \x01(\x06\x12\x14\n\x0cvoice_chatid\x18\x02 \x01(\x06\"\'\n%CVoiceChat_LeaveOneOnOneChat_Response\"\xdd\x01\n+CVoiceChat_UserJoinedVoiceChat_Notification\x12\x14\n\x0cvoice_chatid\x18\x01 \x01(\x06\x12\x14\n\x0cuser_steamid\x18\x02 \x01(\x06\x12\x0e\n\x06\x63hatid\x18\x03 \x01(\x04\x12 \n\x18one_on_one_steamid_lower\x18\x04 \x01(\x06\x12!\n\x19one_on_one_steamid_higher\x18\x05 \x01(\x06\x12\x15\n\rchat_group_id\x18\x06 \x01(\x04\x12\x16\n\x0euser_sessionid\x18\x07 \x01(\r\"\xe0\x01\n\'CVoiceChat_UserVoiceStatus_Notification\x12\x14\n\x0cvoice_chatid\x18\x01 \x01(\x06\x12\x14\n\x0cuser_steamid\x18\x02 \x01(\x06\x12\x1e\n\x16user_muted_mic_locally\x18\x03 \x01(\x08\x12!\n\x19user_muted_output_locally\x18\x04 \x01(\x08\x12#\n\x1buser_has_no_mic_for_session\x18\x05 \x01(\x08\x12!\n\x19user_webaudio_sample_rate\x18\x06 \x01(\x05\"y\n(CVoiceChat_AllMembersStatus_Notification\x12\x14\n\x0cvoice_chatid\x18\x01 \x01(\x06\x12\x37\n\x05users\x18\x02 \x03(\x0b\x32(.CVoiceChat_UserVoiceStatus_Notification\"\x88\x02\n,CVoiceChat_UpdateVoiceChatWebRTCData_Request\x12\x14\n\x0cvoice_chatid\x18\x01 \x01(\x06\x12\x18\n\x10ip_webrtc_server\x18\x02 \x01(\r\x12\x1a\n\x12port_webrtc_server\x18\x03 \x01(\r\x12\x18\n\x10ip_webrtc_client\x18\x04 \x01(\r\x12\x1a\n\x12port_webrtc_client\x18\x05 \x01(\r\x12\x1e\n\x16ssrc_my_sending_stream\x18\x06 \x01(\r\x12\x12\n\nuser_agent\x18\x07 \x01(\t\x12\"\n\x1ahas_audio_worklets_support\x18\x08 \x01(\x08\"O\n-CVoiceChat_UpdateVoiceChatWebRTCData_Response\x12\x1e\n\x16send_client_voice_logs\x18\x01 \x01(\x08\"i\n,CVoiceChat_UploadClientVoiceChatLogs_Request\x12\x14\n\x0cvoice_chatid\x18\x01 \x01(\x06\x12#\n\x1b\x63lient_voice_logs_new_lines\x18\x02 \x01(\t\"/\n-CVoiceChat_UploadClientVoiceChatLogs_Response\"9\n!CVoiceChat_LeaveVoiceChat_Request\x12\x14\n\x0cvoice_chatid\x18\x01 \x01(\x06\"$\n\"CVoiceChat_LeaveVoiceChat_Response\"\xdb\x01\n)CVoiceChat_UserLeftVoiceChat_Notification\x12\x14\n\x0cvoice_chatid\x18\x01 \x01(\x06\x12\x14\n\x0cuser_steamid\x18\x02 \x01(\x06\x12\x0e\n\x06\x63hatid\x18\x03 \x01(\x04\x12 \n\x18one_on_one_steamid_lower\x18\x04 \x01(\x06\x12!\n\x19one_on_one_steamid_higher\x18\x05 \x01(\x06\x12\x15\n\rchat_group_id\x18\x06 \x01(\x04\x12\x16\n\x0euser_sessionid\x18\x07 \x01(\r\"\xaa\x01\n&CVoiceChat_VoiceChatEnded_Notification\x12\x14\n\x0cvoice_chatid\x18\x01 \x01(\x06\x12 \n\x18one_on_one_steamid_lower\x18\x02 \x01(\x06\x12!\n\x19one_on_one_steamid_higher\x18\x03 \x01(\x06\x12\x0e\n\x06\x63hatid\x18\x04 \x01(\x04\x12\x15\n\rchat_group_id\x18\x05 \x01(\x04\"=\n.CWebRTCClient_InitiateWebRTCConnection_Request\x12\x0b\n\x03sdp\x18\x01 \x01(\t\"M\n/CWebRTCClient_InitiateWebRTCConnection_Response\x12\x1a\n\x12remote_description\x18\x01 \x01(\t\"\x8b\x01\n+CWebRTC_WebRTCSessionConnected_Notification\x12\x0c\n\x04ssrc\x18\x01 \x01(\r\x12\x11\n\tclient_ip\x18\x02 \x01(\r\x12\x13\n\x0b\x63lient_port\x18\x03 \x01(\r\x12\x11\n\tserver_ip\x18\x04 \x01(\r\x12\x13\n\x0bserver_port\x18\x05 \x01(\r\"\xde\x01\n2CWebRTC_WebRTCUpdateRemoteDescription_Notification\x12\x1a\n\x12remote_description\x18\x01 \x01(\t\x12\"\n\x1aremote_description_version\x18\x02 \x01(\x04\x12h\n\x13ssrcs_to_accountids\x18\x03 \x03(\x0b\x32K.CWebRTC_WebRTCUpdateRemoteDescription_Notification_CSSRCToAccountIDMapping\"m\nJCWebRTC_WebRTCUpdateRemoteDescription_Notification_CSSRCToAccountIDMapping\x12\x0c\n\x04ssrc\x18\x01 \x01(\r\x12\x11\n\taccountid\x18\x02 \x01(\r\"\xdb\x01\n9CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Request\x12\x18\n\x10ip_webrtc_server\x18\x01 \x01(\r\x12\x1a\n\x12port_webrtc_server\x18\x02 \x01(\r\x12 \n\x18ip_webrtc_session_client\x18\x03 \x01(\r\x12\"\n\x1aport_webrtc_session_client\x18\x04 \x01(\r\x12\"\n\x1aremote_description_version\x18\x05 \x01(\x04\"<\n:CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Response\"\'\n%CMobilePerAccount_GetSettings_Request\"\xec\x01\n&CMobilePerAccount_GetSettings_Response\x12\x14\n\x0chas_settings\x18\x04 \x01(\x08\x12\x17\n\x0f\x61llow_sale_push\x18\x02 \x01(\x08\x12\x1b\n\x13\x61llow_wishlist_push\x18\x03 \x01(\x08\x12\x1f\n\x17\x63hat_notification_level\x18\x05 \x01(\r\x12\x1a\n\x12notify_direct_chat\x18\x06 \x01(\x08\x12\x19\n\x11notify_group_chat\x18\x07 \x01(\x08\x12\x1e\n\x10\x61llow_event_push\x18\x08 \x01(\x08:\x04true\"\xd5\x01\n%CMobilePerAccount_SetSettings_Request\x12\x17\n\x0f\x61llow_sale_push\x18\x02 \x01(\x08\x12\x1b\n\x13\x61llow_wishlist_push\x18\x03 \x01(\x08\x12\x1f\n\x17\x63hat_notification_level\x18\x04 \x01(\r\x12\x1a\n\x12notify_direct_chat\x18\x05 \x01(\x08\x12\x19\n\x11notify_group_chat\x18\x06 \x01(\x08\x12\x1e\n\x10\x61llow_event_push\x18\x07 \x01(\x08:\x04true\"(\n&CMobilePerAccount_SetSettings_Response\"\x84\x02\n*CMobileDevice_RegisterMobileDevice_Request\x12\x10\n\x08\x64\x65viceid\x18\x01 \x01(\t\x12\x10\n\x08language\x18\x02 \x01(\t\x12\x14\n\x0cpush_enabled\x18\x03 \x01(\x08\x12\x13\n\x0b\x61pp_version\x18\x04 \x01(\t\x12\x12\n\nos_version\x18\x05 \x01(\t\x12\x14\n\x0c\x64\x65vice_model\x18\x06 \x01(\t\x12#\n\x1btwofactor_device_identifier\x18\x07 \x01(\t\x12\x38\n\nmobile_app\x18\x08 \x01(\x05\x42$\x82\xb5\x18 enum; suggested type: EMobileApp\"F\n+CMobileDevice_RegisterMobileDevice_Response\x12\x17\n\x0funique_deviceid\x18\x02 \x01(\r\"E\n1CMobileDevice_DeregisterMobileDevice_Notification\x12\x10\n\x08\x64\x65viceid\x18\x01 \x01(\t\"\x0e\n\x0cUnknownProto2\x97\x01\n\x0fHelpRequestLogs\x12\x83\x01\n\x18UploadUserApplicationLog\x12\x32.CHelpRequestLogs_UploadUserApplicationLog_Request\x1a\x33.CHelpRequestLogs_UploadUserApplicationLog_Response2\x9e\x10\n\tCommunity\x12\x44\n\x07GetApps\x12\x1b.CCommunity_GetApps_Request\x1a\x1c.CCommunity_GetApps_Response\x12\x89\x01\n\x1eGetAppRichPresenceLocalization\x12\x32.CCommunity_GetAppRichPresenceLocalization_Request\x1a\x33.CCommunity_GetAppRichPresenceLocalization_Response\x12_\n\x10GetCommentThread\x12$.CCommunity_GetCommentThread_Request\x1a%.CCommunity_GetCommentThread_Response\x12h\n\x13PostCommentToThread\x12\'.CCommunity_PostCommentToThread_Request\x1a(.CCommunity_PostCommentToThread_Response\x12t\n\x17\x44\x65leteCommentFromThread\x12+.CCommunity_DeleteCommentFromThread_Request\x1a,.CCommunity_DeleteCommentFromThread_Response\x12\x62\n\x11RateCommentThread\x12%.CCommunity_RateCommentThread_Request\x1a&.CCommunity_RateCommentThread_Response\x12t\n\x17GetCommentThreadRatings\x12+.CCommunity_GetCommentThreadRatings_Request\x1a,.CCommunity_GetCommentThreadRatings_Response\x12k\n\x14RateClanAnnouncement\x12(.CCommunity_RateClanAnnouncement_Request\x1a).CCommunity_RateClanAnnouncement_Response\x12\x89\x01\n\x1eGetClanAnnouncementVoteForUser\x12\x32.CCommunity_GetClanAnnouncementVoteForUser_Request\x1a\x33.CCommunity_GetClanAnnouncementVoteForUser_Response\x12t\n\x17GetUserPartnerEventNews\x12+.CCommunity_GetUserPartnerEventNews_Request\x1a,.CCommunity_GetUserPartnerEventNews_Response\x12k\n\x14GetBestEventsForUser\x12(.CCommunity_GetBestEventsForUser_Request\x1a).CCommunity_GetBestEventsForUser_Response\x12w\n\x18MarkPartnerEventsForUser\x12,.CCommunity_MarkPartnerEventsForUser_Request\x1a-.CCommunity_MarkPartnerEventsForUser_Response\x12\x80\x01\n\x1bPartnerEventsShowMoreForApp\x12/.CCommunity_PartnerEventsShowMoreForApp_Request\x1a\x30.CCommunity_PartnerEventsShowMoreForApp_Response\x12\x80\x01\n\x1bPartnerEventsShowLessForApp\x12/.CCommunity_PartnerEventsShowLessForApp_Request\x1a\x30.CCommunity_PartnerEventsShowLessForApp_Response\x12\x98\x01\n#ClearUserPartnerEventsAppPriorities\x12\x37.CCommunity_ClearUserPartnerEventsAppPriorities_Request\x1a\x38.CCommunity_ClearUserPartnerEventsAppPriorities_Response\x12\x92\x01\n!GetUserPartnerEventsAppPriorities\x12\x35.CCommunity_GetUserPartnerEventsAppPriorities_Request\x1a\x36.CCommunity_GetUserPartnerEventsAppPriorities_Response\x12\x98\x01\n#ClearSinglePartnerEventsAppPriority\x12\x37.CCommunity_ClearSinglePartnerEventsAppPriority_Request\x1a\x38.CCommunity_ClearSinglePartnerEventsAppPriority_Response2U\n\x11\x45xperimentService\x12@\n\"ReportProductImpressionsFromClient\x12\r.UnknownProto\x1a\x0b.NoResponse2\xfa\x02\n\x0b\x46riendsList\x12Z\n\rGetCategories\x12#.CFriendsList_GetCategories_Request\x1a$.CFriendsList_GetCategories_Response\x12]\n\x0eGetFriendsList\x12$.CFriendsList_GetFriendsList_Request\x1a%.CFriendsList_GetFriendsList_Response\x12W\n\x0cGetFavorites\x12\".CFriendsList_GetFavorites_Request\x1a#.CFriendsList_GetFavorites_Response\x12W\n\x0cSetFavorites\x12\".CFriendsList_SetFavorites_Request\x1a#.CFriendsList_SetFavorites_Response2a\n\x11\x46riendsListClient\x12L\n\x10\x46\x61voritesChanged\x12+.CFriendsList_FavoritesChanged_Notification\x1a\x0b.NoResponse2f\n\x04\x43lan\x12^\n\x13RespondToClanInvite\x12\".CClan_RespondToClanInvite_Request\x1a#.CClan_RespondToClanInvite_Response2\xc1\x06\n\tVoiceChat\x12z\n\x19UpdateVoiceChatWebRTCData\x12-.CVoiceChat_UpdateVoiceChatWebRTCData_Request\x1a..CVoiceChat_UpdateVoiceChatWebRTCData_Response\x12N\n\x15NotifyUserVoiceStatus\x12(.CVoiceChat_UserVoiceStatus_Notification\x1a\x0b.NoResponse\x12z\n\x19UploadClientVoiceChatLogs\x12-.CVoiceChat_UploadClientVoiceChatLogs_Request\x1a..CVoiceChat_UploadClientVoiceChatLogs_Response\x12Y\n\x0eLeaveVoiceChat\x12\".CVoiceChat_LeaveVoiceChat_Request\x1a#.CVoiceChat_LeaveVoiceChat_Response\x12h\n\x13RequestOneOnOneChat\x12\'.CVoiceChat_RequestOneOnOneChat_Request\x1a(.CVoiceChat_RequestOneOnOneChat_Response\x12\x65\n\x12\x41nswerOneOnOneChat\x12&.CVoiceChat_AnswerOneOnOneChat_Request\x1a\'.CVoiceChat_AnswerOneOnOneChat_Response\x12\\\n\x0f\x45ndOneOnOneChat\x12#.CVoiceChat_EndOneOnOneChat_Request\x1a$.CVoiceChat_EndOneOnOneChat_Response\x12\x62\n\x11LeaveOneOnOneChat\x12%.CVoiceChat_LeaveOneOnOneChat_Request\x1a&.CVoiceChat_LeaveOneOnOneChat_Response2\xed\x04\n\x0fVoiceChatClient\x12V\n\x19NotifyUserJoinedVoiceChat\x12,.CVoiceChat_UserJoinedVoiceChat_Notification\x1a\x0b.NoResponse\x12R\n\x17NotifyUserLeftVoiceChat\x12*.CVoiceChat_UserLeftVoiceChat_Notification\x1a\x0b.NoResponse\x12L\n\x14NotifyVoiceChatEnded\x12\'.CVoiceChat_VoiceChatEnded_Notification\x1a\x0b.NoResponse\x12N\n\x15NotifyUserVoiceStatus\x12(.CVoiceChat_UserVoiceStatus_Notification\x1a\x0b.NoResponse\x12S\n\x19NotifyAllUsersVoiceStatus\x12).CVoiceChat_AllMembersStatus_Notification\x1a\x0b.NoResponse\x12Z\n\x1bNotifyOneOnOneChatRequested\x12..CVoiceChat_OneOnOneChatRequested_Notification\x1a\x0b.NoResponse\x12_\n\x1aNotifyOneOnOneChatResponse\x12\x34.CVoiceChat_OneOnOneChatRequestResponse_Notification\x1a\x0b.NoResponse2\xae\x02\n\x0cWebRTCClient\x12}\n\x18InitiateWebRTCConnection\x12/.CWebRTCClient_InitiateWebRTCConnection_Request\x1a\x30.CWebRTCClient_InitiateWebRTCConnection_Response\x12\x9e\x01\n#AcknowledgeUpdatedRemoteDescription\x12:.CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Request\x1a;.CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Response2\xdf\x01\n\x19WebRTCClientNotifications\x12Y\n\x1cNotifyWebRTCSessionConnected\x12,.CWebRTC_WebRTCSessionConnected_Notification\x1a\x0b.NoResponse\x12g\n#NotifyWebRTCUpdateRemoteDescription\x12\x33.CWebRTC_WebRTCUpdateRemoteDescription_Notification\x1a\x0b.NoResponse2\xd2\x01\n\x10MobilePerAccount\x12^\n\x0bGetSettings\x12&.CMobilePerAccount_GetSettings_Request\x1a\'.CMobilePerAccount_GetSettings_Response\x12^\n\x0bSetSettings\x12&.CMobilePerAccount_SetSettings_Request\x1a\'.CMobilePerAccount_SetSettings_Response2\xdc\x01\n\x0cMobileDevice\x12q\n\x14RegisterMobileDevice\x12+.CMobileDevice_RegisterMobileDevice_Request\x1a,.CMobileDevice_RegisterMobileDevice_Response\x12Y\n\x16\x44\x65registerMobileDevice\x12\x32.CMobileDevice_DeregisterMobileDevice_Notification\x1a\x0b.NoResponseB\x03\x90\x01\x01')
   ,
   dependencies=[steammessages__unified__base__pb2.DESCRIPTOR,steammessages__base__pb2.DESCRIPTOR,steammessages__clientserver__friends__pb2.DESCRIPTOR,])
 
 
 
 
+_CHELPREQUESTLOGS_UPLOADUSERAPPLICATIONLOG_REQUEST = _descriptor.Descriptor(
+  name='CHelpRequestLogs_UploadUserApplicationLog_Request',
+  full_name='CHelpRequestLogs_UploadUserApplicationLog_Request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='appid', full_name='CHelpRequestLogs_UploadUserApplicationLog_Request.appid', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='log_type', full_name='CHelpRequestLogs_UploadUserApplicationLog_Request.log_type', index=1,
+      number=2, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='version_string', full_name='CHelpRequestLogs_UploadUserApplicationLog_Request.version_string', index=2,
+      number=3, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='log_contents', full_name='CHelpRequestLogs_UploadUserApplicationLog_Request.log_contents', index=3,
+      number=4, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=140,
+  serialized_end=270,
+)
+
+
+_CHELPREQUESTLOGS_UPLOADUSERAPPLICATIONLOG_RESPONSE = _descriptor.Descriptor(
+  name='CHelpRequestLogs_UploadUserApplicationLog_Response',
+  full_name='CHelpRequestLogs_UploadUserApplicationLog_Response',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='id', full_name='CHelpRequestLogs_UploadUserApplicationLog_Response.id', index=0,
+      number=1, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=272,
+  serialized_end=336,
+)
+
+
+_CMSGCLIENTAPPMINUTESPLAYEDDATA = _descriptor.Descriptor(
+  name='CMsgClientAppMinutesPlayedData',
+  full_name='CMsgClientAppMinutesPlayedData',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='minutes_played', full_name='CMsgClientAppMinutesPlayedData.minutes_played', index=0,
+      number=1, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=338,
+  serialized_end=448,
+)
+
+
+_CMSGCLIENTAPPMINUTESPLAYEDDATA_APPMINUTESPLAYEDDATA = _descriptor.Descriptor(
+  name='CMsgClientAppMinutesPlayedData_AppMinutesPlayedData',
+  full_name='CMsgClientAppMinutesPlayedData_AppMinutesPlayedData',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='app_id', full_name='CMsgClientAppMinutesPlayedData_AppMinutesPlayedData.app_id', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='forever', full_name='CMsgClientAppMinutesPlayedData_AppMinutesPlayedData.forever', index=1,
+      number=2, type=5, cpp_type=1, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='last_two_weeks', full_name='CMsgClientAppMinutesPlayedData_AppMinutesPlayedData.last_two_weeks', index=2,
+      number=3, type=5, cpp_type=1, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=450,
+  serialized_end=560,
+)
+
+
 _CCOMMUNITY_GETAPPS_REQUEST = _descriptor.Descriptor(
   name='CCommunity_GetApps_Request',
   full_name='CCommunity_GetApps_Request',
@@ -65,8 +224,8 @@ _CCOMMUNITY_GETAPPS_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=139,
-  serialized_end=201,
+  serialized_start=562,
+  serialized_end=624,
 )
 
 
@@ -96,8 +255,8 @@ _CCOMMUNITY_GETAPPS_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=203,
-  serialized_end=269,
+  serialized_start=626,
+  serialized_end=692,
 )
 
 
@@ -134,8 +293,8 @@ _CCOMMUNITY_GETAPPRICHPRESENCELOCALIZATION_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=271,
-  serialized_end=355,
+  serialized_start=694,
+  serialized_end=778,
 )
 
 
@@ -172,8 +331,8 @@ _CCOMMUNITY_GETAPPRICHPRESENCELOCALIZATION_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=358,
-  serialized_end=509,
+  serialized_start=781,
+  serialized_end=932,
 )
 
 
@@ -210,8 +369,8 @@ _CCOMMUNITY_GETAPPRICHPRESENCELOCALIZATION_RESPONSE_TOKEN = _descriptor.Descript
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=511,
-  serialized_end=598,
+  serialized_start=934,
+  serialized_end=1021,
 )
 
 
@@ -248,8 +407,116 @@ _CCOMMUNITY_GETAPPRICHPRESENCELOCALIZATION_RESPONSE_TOKENLIST = _descriptor.Desc
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=601,
-  serialized_end=756,
+  serialized_start=1024,
+  serialized_end=1179,
+)
+
+
+_CCOMMUNITY_GETCOMMENTTHREAD_REQUEST = _descriptor.Descriptor(
+  name='CCommunity_GetCommentThread_Request',
+  full_name='CCommunity_GetCommentThread_Request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='steamid', full_name='CCommunity_GetCommentThread_Request.steamid', index=0,
+      number=1, type=6, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='comment_thread_type', full_name='CCommunity_GetCommentThread_Request.comment_thread_type', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='gidfeature', full_name='CCommunity_GetCommentThread_Request.gidfeature', index=2,
+      number=3, type=6, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='gidfeature2', full_name='CCommunity_GetCommentThread_Request.gidfeature2', index=3,
+      number=4, type=6, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='commentthreadid', full_name='CCommunity_GetCommentThread_Request.commentthreadid', index=4,
+      number=5, type=6, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='start', full_name='CCommunity_GetCommentThread_Request.start', index=5,
+      number=6, type=5, cpp_type=1, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='count', full_name='CCommunity_GetCommentThread_Request.count', index=6,
+      number=7, type=5, cpp_type=1, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='upvoters', full_name='CCommunity_GetCommentThread_Request.upvoters', index=7,
+      number=8, type=5, cpp_type=1, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='include_deleted', full_name='CCommunity_GetCommentThread_Request.include_deleted', index=8,
+      number=9, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='gidcomment', full_name='CCommunity_GetCommentThread_Request.gidcomment', index=9,
+      number=10, type=6, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='time_oldest', full_name='CCommunity_GetCommentThread_Request.time_oldest', index=10,
+      number=11, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='oldest_first', full_name='CCommunity_GetCommentThread_Request.oldest_first', index=11,
+      number=12, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=1182,
+  serialized_end=1467,
 )
 
 
@@ -349,8 +616,8 @@ _CCOMMUNITY_COMMENT = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=759,
-  serialized_end=1005,
+  serialized_start=1470,
+  serialized_end=1716,
 )
 
 
@@ -478,46 +745,67 @@ _CCOMMUNITY_GETCOMMENTTHREAD_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1008,
-  serialized_end=1400,
+  serialized_start=1719,
+  serialized_end=2111,
 )
 
 
-_CCOMMUNITY_POSTCOMMENTTOTHREAD_RESPONSE = _descriptor.Descriptor(
-  name='CCommunity_PostCommentToThread_Response',
-  full_name='CCommunity_PostCommentToThread_Response',
+_CCOMMUNITY_POSTCOMMENTTOTHREAD_REQUEST = _descriptor.Descriptor(
+  name='CCommunity_PostCommentToThread_Request',
+  full_name='CCommunity_PostCommentToThread_Request',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='gidcomment', full_name='CCommunity_PostCommentToThread_Response.gidcomment', index=0,
+      name='steamid', full_name='CCommunity_PostCommentToThread_Request.steamid', index=0,
       number=1, type=6, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='commentthreadid', full_name='CCommunity_PostCommentToThread_Response.commentthreadid', index=1,
-      number=2, type=6, cpp_type=4, label=1,
+      name='comment_thread_type', full_name='CCommunity_PostCommentToThread_Request.comment_thread_type', index=1,
+      number=2, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='count', full_name='CCommunity_PostCommentToThread_Response.count', index=2,
-      number=3, type=5, cpp_type=1, label=1,
+      name='gidfeature', full_name='CCommunity_PostCommentToThread_Request.gidfeature', index=2,
+      number=3, type=6, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='upvotes', full_name='CCommunity_PostCommentToThread_Response.upvotes', index=3,
-      number=4, type=5, cpp_type=1, label=1,
+      name='gidfeature2', full_name='CCommunity_PostCommentToThread_Request.gidfeature2', index=3,
+      number=4, type=6, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='text', full_name='CCommunity_PostCommentToThread_Request.text', index=4,
+      number=6, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='gidparentcomment', full_name='CCommunity_PostCommentToThread_Request.gidparentcomment', index=5,
+      number=7, type=6, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='suppress_notifications', full_name='CCommunity_PostCommentToThread_Request.suppress_notifications', index=6,
+      number=8, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -530,21 +818,212 @@ _CCOMMUNITY_POSTCOMMENTTOTHREAD_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1402,
-  serialized_end=1520,
+  serialized_start=2114,
+  serialized_end=2313,
 )
 
 
-_CCOMMUNITY_DELETECOMMENTFROMTHREAD_RESPONSE = _descriptor.Descriptor(
-  name='CCommunity_DeleteCommentFromThread_Response',
-  full_name='CCommunity_DeleteCommentFromThread_Response',
+_CCOMMUNITY_POSTCOMMENTTOTHREAD_RESPONSE = _descriptor.Descriptor(
+  name='CCommunity_PostCommentToThread_Response',
+  full_name='CCommunity_PostCommentToThread_Response',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
-  ],
-  extensions=[
-  ],
+    _descriptor.FieldDescriptor(
+      name='gidcomment', full_name='CCommunity_PostCommentToThread_Response.gidcomment', index=0,
+      number=1, type=6, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='commentthreadid', full_name='CCommunity_PostCommentToThread_Response.commentthreadid', index=1,
+      number=2, type=6, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='count', full_name='CCommunity_PostCommentToThread_Response.count', index=2,
+      number=3, type=5, cpp_type=1, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='upvotes', full_name='CCommunity_PostCommentToThread_Response.upvotes', index=3,
+      number=4, type=5, cpp_type=1, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=2315,
+  serialized_end=2433,
+)
+
+
+_CCOMMUNITY_DELETECOMMENTFROMTHREAD_REQUEST = _descriptor.Descriptor(
+  name='CCommunity_DeleteCommentFromThread_Request',
+  full_name='CCommunity_DeleteCommentFromThread_Request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='steamid', full_name='CCommunity_DeleteCommentFromThread_Request.steamid', index=0,
+      number=1, type=6, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='comment_thread_type', full_name='CCommunity_DeleteCommentFromThread_Request.comment_thread_type', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='gidfeature', full_name='CCommunity_DeleteCommentFromThread_Request.gidfeature', index=2,
+      number=3, type=6, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='gidfeature2', full_name='CCommunity_DeleteCommentFromThread_Request.gidfeature2', index=3,
+      number=4, type=6, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='gidcomment', full_name='CCommunity_DeleteCommentFromThread_Request.gidcomment', index=4,
+      number=5, type=6, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='undelete', full_name='CCommunity_DeleteCommentFromThread_Request.undelete', index=5,
+      number=6, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=2436,
+  serialized_end=2605,
+)
+
+
+_CCOMMUNITY_DELETECOMMENTFROMTHREAD_RESPONSE = _descriptor.Descriptor(
+  name='CCommunity_DeleteCommentFromThread_Response',
+  full_name='CCommunity_DeleteCommentFromThread_Response',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=2607,
+  serialized_end=2652,
+)
+
+
+_CCOMMUNITY_RATECOMMENTTHREAD_REQUEST = _descriptor.Descriptor(
+  name='CCommunity_RateCommentThread_Request',
+  full_name='CCommunity_RateCommentThread_Request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='commentthreadtype', full_name='CCommunity_RateCommentThread_Request.commentthreadtype', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='steamid', full_name='CCommunity_RateCommentThread_Request.steamid', index=1,
+      number=2, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='gidfeature', full_name='CCommunity_RateCommentThread_Request.gidfeature', index=2,
+      number=3, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='gidfeature2', full_name='CCommunity_RateCommentThread_Request.gidfeature2', index=3,
+      number=4, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='gidcomment', full_name='CCommunity_RateCommentThread_Request.gidcomment', index=4,
+      number=5, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='rate_up', full_name='CCommunity_RateCommentThread_Request.rate_up', index=5,
+      number=6, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='suppress_notifications', full_name='CCommunity_RateCommentThread_Request.suppress_notifications', index=6,
+      number=7, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
   nested_types=[],
   enum_types=[
   ],
@@ -554,8 +1033,8 @@ _CCOMMUNITY_DELETECOMMENTFROMTHREAD_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1522,
-  serialized_end=1567,
+  serialized_start=2655,
+  serialized_end=2847,
 )
 
 
@@ -613,8 +1092,74 @@ _CCOMMUNITY_RATECOMMENTTHREAD_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1570,
-  serialized_end=1707,
+  serialized_start=2850,
+  serialized_end=2987,
+)
+
+
+_CCOMMUNITY_GETCOMMENTTHREADRATINGS_REQUEST = _descriptor.Descriptor(
+  name='CCommunity_GetCommentThreadRatings_Request',
+  full_name='CCommunity_GetCommentThreadRatings_Request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='commentthreadtype', full_name='CCommunity_GetCommentThreadRatings_Request.commentthreadtype', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='steamid', full_name='CCommunity_GetCommentThreadRatings_Request.steamid', index=1,
+      number=2, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='gidfeature', full_name='CCommunity_GetCommentThreadRatings_Request.gidfeature', index=2,
+      number=3, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='gidfeature2', full_name='CCommunity_GetCommentThreadRatings_Request.gidfeature2', index=3,
+      number=4, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='gidcomment', full_name='CCommunity_GetCommentThreadRatings_Request.gidcomment', index=4,
+      number=5, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='max_results', full_name='CCommunity_GetCommentThreadRatings_Request.max_results', index=5,
+      number=6, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=2990,
+  serialized_end=3160,
 )
 
 
@@ -672,8 +1217,8 @@ _CCOMMUNITY_GETCOMMENTTHREADRATINGS_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1710,
-  serialized_end=1866,
+  serialized_start=3163,
+  serialized_end=3319,
 )
 
 
@@ -698,13 +1243,6 @@ _CCOMMUNITY_RATECLANANNOUNCEMENT_REQUEST = _descriptor.Descriptor(
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='clan_accountid', full_name='CCommunity_RateClanAnnouncement_Request.clan_accountid', index=2,
-      number=3, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -717,8 +1255,8 @@ _CCOMMUNITY_RATECLANANNOUNCEMENT_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1868,
-  serialized_end=1974,
+  serialized_start=3321,
+  serialized_end=3403,
 )
 
 
@@ -741,8 +1279,8 @@ _CCOMMUNITY_RATECLANANNOUNCEMENT_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1976,
-  serialized_end=2018,
+  serialized_start=3405,
+  serialized_end=3447,
 )
 
 
@@ -772,8 +1310,8 @@ _CCOMMUNITY_GETCLANANNOUNCEMENTVOTEFORUSER_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2020,
-  serialized_end=2095,
+  serialized_start=3449,
+  serialized_end=3524,
 )
 
 
@@ -810,21 +1348,28 @@ _CCOMMUNITY_GETCLANANNOUNCEMENTVOTEFORUSER_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2097,
-  serialized_end=2187,
+  serialized_start=3526,
+  serialized_end=3616,
 )
 
 
-_CCOMMUNITY_GETAVATARHISTORY_RESPONSE = _descriptor.Descriptor(
-  name='CCommunity_GetAvatarHistory_Response',
-  full_name='CCommunity_GetAvatarHistory_Response',
+_CAPPPRIORITY = _descriptor.Descriptor(
+  name='CAppPriority',
+  full_name='CAppPriority',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='avatars', full_name='CCommunity_GetAvatarHistory_Response.avatars', index=0,
-      number=1, type=11, cpp_type=10, label=3,
+      name='priority', full_name='CAppPriority.priority', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='appid', full_name='CAppPriority.appid', index=1,
+      number=2, type=13, cpp_type=3, label=3,
       has_default_value=False, default_value=[],
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
@@ -841,44 +1386,93 @@ _CCOMMUNITY_GETAVATARHISTORY_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2189,
-  serialized_end=2294,
+  serialized_start=3618,
+  serialized_end=3665,
 )
 
 
-_CCOMMUNITY_GETAVATARHISTORY_RESPONSE_AVATARDATA = _descriptor.Descriptor(
-  name='CCommunity_GetAvatarHistory_Response_AvatarData',
-  full_name='CCommunity_GetAvatarHistory_Response_AvatarData',
+_CCOMMUNITY_GETUSERPARTNEREVENTNEWS_REQUEST = _descriptor.Descriptor(
+  name='CCommunity_GetUserPartnerEventNews_Request',
+  full_name='CCommunity_GetUserPartnerEventNews_Request',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='avatar_sha1', full_name='CCommunity_GetAvatarHistory_Response_AvatarData.avatar_sha1', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
+      name='count', full_name='CCommunity_GetUserPartnerEventNews_Request.count', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='user_uploaded', full_name='CCommunity_GetAvatarHistory_Response_AvatarData.user_uploaded', index=1,
-      number=2, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
+      name='offset', full_name='CCommunity_GetUserPartnerEventNews_Request.offset', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='timestamp', full_name='CCommunity_GetAvatarHistory_Response_AvatarData.timestamp', index=2,
+      name='rtime32_start_time', full_name='CCommunity_GetUserPartnerEventNews_Request.rtime32_start_time', index=2,
       number=3, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
+    _descriptor.FieldDescriptor(
+      name='rtime32_end_time', full_name='CCommunity_GetUserPartnerEventNews_Request.rtime32_end_time', index=3,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='language_preference', full_name='CCommunity_GetUserPartnerEventNews_Request.language_preference', index=4,
+      number=5, type=13, cpp_type=3, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='filter_event_type', full_name='CCommunity_GetUserPartnerEventNews_Request.filter_event_type', index=5,
+      number=6, type=5, cpp_type=1, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=_b('\202\265\030.enum; suggested type: ECommunityWordFilterType'), file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='filter_to_appid', full_name='CCommunity_GetUserPartnerEventNews_Request.filter_to_appid', index=6,
+      number=7, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='app_list', full_name='CCommunity_GetUserPartnerEventNews_Request.app_list', index=7,
+      number=8, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='count_after', full_name='CCommunity_GetUserPartnerEventNews_Request.count_after', index=8,
+      number=9, type=13, cpp_type=3, label=1,
+      has_default_value=True, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='count_before', full_name='CCommunity_GetUserPartnerEventNews_Request.count_before', index=9,
+      number=10, type=13, cpp_type=3, label=1,
+      has_default_value=True, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
   ],
   serialized_options=None,
   is_extendable=False,
@@ -886,28 +1480,21 @@ _CCOMMUNITY_GETAVATARHISTORY_RESPONSE_AVATARDATA = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2296,
-  serialized_end=2408,
+  serialized_start=3668,
+  serialized_end=4012,
 )
 
 
-_CAPPPRIORITY = _descriptor.Descriptor(
-  name='CAppPriority',
-  full_name='CAppPriority',
+_CCOMMUNITY_GETUSERPARTNEREVENTNEWS_RESPONSE = _descriptor.Descriptor(
+  name='CCommunity_GetUserPartnerEventNews_Response',
+  full_name='CCommunity_GetUserPartnerEventNews_Response',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='priority', full_name='CAppPriority.priority', index=0,
-      number=1, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='appid', full_name='CAppPriority.appid', index=1,
-      number=2, type=13, cpp_type=3, label=3,
+      name='results', full_name='CCommunity_GetUserPartnerEventNews_Response.results', index=0,
+      number=1, type=11, cpp_type=10, label=3,
       has_default_value=False, default_value=[],
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
@@ -924,22 +1511,29 @@ _CAPPPRIORITY = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2410,
-  serialized_end=2457,
+  serialized_start=4014,
+  serialized_end=4101,
 )
 
 
-_CCOMMUNITY_GETUSERPARTNEREVENTNEWS_RESPONSE = _descriptor.Descriptor(
-  name='CCommunity_GetUserPartnerEventNews_Response',
-  full_name='CCommunity_GetUserPartnerEventNews_Response',
+_CCOMMUNITY_GETBESTEVENTSFORUSER_REQUEST = _descriptor.Descriptor(
+  name='CCommunity_GetBestEventsForUser_Request',
+  full_name='CCommunity_GetBestEventsForUser_Request',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='results', full_name='CCommunity_GetUserPartnerEventNews_Response.results', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
+      name='include_steam_blog', full_name='CCommunity_GetBestEventsForUser_Request.include_steam_blog', index=0,
+      number=1, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='filter_to_played_within_days', full_name='CCommunity_GetBestEventsForUser_Request.filter_to_played_within_days', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
@@ -955,8 +1549,8 @@ _CCOMMUNITY_GETUSERPARTNEREVENTNEWS_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2459,
-  serialized_end=2546,
+  serialized_start=4103,
+  serialized_end=4210,
 )
 
 
@@ -1028,8 +1622,8 @@ _CCOMMUNITY_PARTNEREVENTRESULT = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2549,
-  serialized_end=2744,
+  serialized_start=4213,
+  serialized_end=4408,
 )
 
 
@@ -1059,8 +1653,32 @@ _CCOMMUNITY_GETBESTEVENTSFORUSER_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2746,
-  serialized_end=2837,
+  serialized_start=4410,
+  serialized_end=4501,
+)
+
+
+_CCOMMUNITY_CLEARUSERPARTNEREVENTSAPPPRIORITIES_REQUEST = _descriptor.Descriptor(
+  name='CCommunity_ClearUserPartnerEventsAppPriorities_Request',
+  full_name='CCommunity_ClearUserPartnerEventsAppPriorities_Request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=4503,
+  serialized_end=4559,
 )
 
 
@@ -1083,8 +1701,8 @@ _CCOMMUNITY_CLEARUSERPARTNEREVENTSAPPPRIORITIES_RESPONSE = _descriptor.Descripto
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2839,
-  serialized_end=2896,
+  serialized_start=4561,
+  serialized_end=4618,
 )
 
 
@@ -1121,8 +1739,32 @@ _CCOMMUNITY_PARTNEREVENTSAPPPRIORITY = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2898,
-  serialized_end=2977,
+  serialized_start=4620,
+  serialized_end=4699,
+)
+
+
+_CCOMMUNITY_GETUSERPARTNEREVENTSAPPPRIORITIES_REQUEST = _descriptor.Descriptor(
+  name='CCommunity_GetUserPartnerEventsAppPriorities_Request',
+  full_name='CCommunity_GetUserPartnerEventsAppPriorities_Request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=4701,
+  serialized_end=4755,
 )
 
 
@@ -1152,8 +1794,39 @@ _CCOMMUNITY_GETUSERPARTNEREVENTSAPPPRIORITIES_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=2979,
-  serialized_end=3092,
+  serialized_start=4757,
+  serialized_end=4870,
+)
+
+
+_CCOMMUNITY_CLEARSINGLEPARTNEREVENTSAPPPRIORITY_REQUEST = _descriptor.Descriptor(
+  name='CCommunity_ClearSinglePartnerEventsAppPriority_Request',
+  full_name='CCommunity_ClearSinglePartnerEventsAppPriority_Request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='appid', full_name='CCommunity_ClearSinglePartnerEventsAppPriority_Request.appid', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=4872,
+  serialized_end=4943,
 )
 
 
@@ -1176,8 +1849,39 @@ _CCOMMUNITY_CLEARSINGLEPARTNEREVENTSAPPPRIORITY_RESPONSE = _descriptor.Descripto
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3094,
-  serialized_end=3151,
+  serialized_start=4945,
+  serialized_end=5002,
+)
+
+
+_CCOMMUNITY_PARTNEREVENTSSHOWMOREFORAPP_REQUEST = _descriptor.Descriptor(
+  name='CCommunity_PartnerEventsShowMoreForApp_Request',
+  full_name='CCommunity_PartnerEventsShowMoreForApp_Request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='appid', full_name='CCommunity_PartnerEventsShowMoreForApp_Request.appid', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=5004,
+  serialized_end=5067,
 )
 
 
@@ -1200,8 +1904,39 @@ _CCOMMUNITY_PARTNEREVENTSSHOWMOREFORAPP_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3153,
-  serialized_end=3202,
+  serialized_start=5069,
+  serialized_end=5118,
+)
+
+
+_CCOMMUNITY_PARTNEREVENTSSHOWLESSFORAPP_REQUEST = _descriptor.Descriptor(
+  name='CCommunity_PartnerEventsShowLessForApp_Request',
+  full_name='CCommunity_PartnerEventsShowLessForApp_Request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='appid', full_name='CCommunity_PartnerEventsShowLessForApp_Request.appid', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=5120,
+  serialized_end=5183,
 )
 
 
@@ -1224,8 +1959,8 @@ _CCOMMUNITY_PARTNEREVENTSSHOWLESSFORAPP_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3204,
-  serialized_end=3253,
+  serialized_start=5185,
+  serialized_end=5234,
 )
 
 
@@ -1255,8 +1990,8 @@ _CCOMMUNITY_MARKPARTNEREVENTSFORUSER_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3256,
-  serialized_end=3385,
+  serialized_start=5237,
+  serialized_end=5366,
 )
 
 
@@ -1287,7 +2022,7 @@ _CCOMMUNITY_MARKPARTNEREVENTSFORUSER_REQUEST_PARTNEREVENTMARKING = _descriptor.D
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
-      serialized_options=_b('\202\265\030\004enum'), file=DESCRIPTOR),
+      serialized_options=_b('\202\265\0302enum; suggested type: EPartnerEventDisplayLocation'), file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
       name='mark_shown', full_name='CCommunity_MarkPartnerEventsForUser_Request_PartnerEventMarking.mark_shown', index=3,
       number=4, type=8, cpp_type=7, label=1,
@@ -1314,8 +2049,8 @@ _CCOMMUNITY_MARKPARTNEREVENTSFORUSER_REQUEST_PARTNEREVENTMARKING = _descriptor.D
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3388,
-  serialized_end=3563,
+  serialized_start=5369,
+  serialized_end=5590,
 )
 
 
@@ -1338,20 +2073,20 @@ _CCOMMUNITY_MARKPARTNEREVENTSFORUSER_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3565,
-  serialized_end=3611,
+  serialized_start=5592,
+  serialized_end=5638,
 )
 
 
-_CCOMMUNITY_GETUSERPARTNEREVENTVIEWSTATUS_RESPONSE = _descriptor.Descriptor(
-  name='CCommunity_GetUserPartnerEventViewStatus_Response',
-  full_name='CCommunity_GetUserPartnerEventViewStatus_Response',
+_CPRODUCTIMPRESSIONSFROMCLIENT_NOTIFICATION = _descriptor.Descriptor(
+  name='CProductImpressionsFromClient_Notification',
+  full_name='CProductImpressionsFromClient_Notification',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='events', full_name='CCommunity_GetUserPartnerEventViewStatus_Response.events', index=0,
+      name='impressions', full_name='CProductImpressionsFromClient_Notification.impressions', index=0,
       number=1, type=11, cpp_type=10, label=3,
       has_default_value=False, default_value=[],
       message_type=None, enum_type=None, containing_type=None,
@@ -1369,46 +2104,39 @@ _CCOMMUNITY_GETUSERPARTNEREVENTVIEWSTATUS_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3614,
-  serialized_end=3746,
+  serialized_start=5640,
+  serialized_end=5761,
 )
 
 
-_CCOMMUNITY_GETUSERPARTNEREVENTVIEWSTATUS_RESPONSE_PARTNEREVENT = _descriptor.Descriptor(
-  name='CCommunity_GetUserPartnerEventViewStatus_Response_PartnerEvent',
-  full_name='CCommunity_GetUserPartnerEventViewStatus_Response_PartnerEvent',
+_CPRODUCTIMPRESSIONSFROMCLIENT_NOTIFICATION_IMPRESSION = _descriptor.Descriptor(
+  name='CProductImpressionsFromClient_Notification_Impression',
+  full_name='CProductImpressionsFromClient_Notification_Impression',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='event_gid', full_name='CCommunity_GetUserPartnerEventViewStatus_Response_PartnerEvent.event_gid', index=0,
-      number=1, type=6, cpp_type=4, label=1,
+      name='type', full_name='CProductImpressionsFromClient_Notification_Impression.type', index=0,
+      number=1, type=5, cpp_type=1, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
+      serialized_options=_b('\202\265\0306enum; suggested type: EProductImpressionFromClientType'), file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='last_shown_time', full_name='CCommunity_GetUserPartnerEventViewStatus_Response_PartnerEvent.last_shown_time', index=1,
+      name='appid', full_name='CProductImpressionsFromClient_Notification_Impression.appid', index=1,
       number=2, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='last_read_time', full_name='CCommunity_GetUserPartnerEventViewStatus_Response_PartnerEvent.last_read_time', index=2,
+      name='num_impressions', full_name='CProductImpressionsFromClient_Notification_Impression.num_impressions', index=2,
       number=3, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='clan_account_id', full_name='CCommunity_GetUserPartnerEventViewStatus_Response_PartnerEvent.clan_account_id', index=3,
-      number=4, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -1421,25 +2149,39 @@ _CCOMMUNITY_GETUSERPARTNEREVENTVIEWSTATUS_RESPONSE_PARTNEREVENT = _descriptor.De
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3749,
-  serialized_end=3906,
+  serialized_start=5764,
+  serialized_end=5933,
 )
 
 
-_CWEBRTCCLIENT_INITIATEWEBRTCCONNECTION_REQUEST = _descriptor.Descriptor(
-  name='CWebRTCClient_InitiateWebRTCConnection_Request',
-  full_name='CWebRTCClient_InitiateWebRTCConnection_Request',
+_CFRIENDSLISTCATEGORY = _descriptor.Descriptor(
+  name='CFriendsListCategory',
+  full_name='CFriendsListCategory',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='sdp', full_name='CWebRTCClient_InitiateWebRTCConnection_Request.sdp', index=0,
-      number=1, type=9, cpp_type=9, label=1,
+      name='groupid', full_name='CFriendsListCategory.groupid', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='name', full_name='CFriendsListCategory.name', index=1,
+      number=2, type=9, cpp_type=9, label=1,
       has_default_value=False, default_value=_b("").decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='accountid_members', full_name='CFriendsListCategory.accountid_members', index=2,
+      number=3, type=13, cpp_type=3, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -1452,25 +2194,18 @@ _CWEBRTCCLIENT_INITIATEWEBRTCCONNECTION_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3908,
-  serialized_end=3969,
+  serialized_start=5935,
+  serialized_end=6015,
 )
 
 
-_CWEBRTCCLIENT_INITIATEWEBRTCCONNECTION_RESPONSE = _descriptor.Descriptor(
-  name='CWebRTCClient_InitiateWebRTCConnection_Response',
-  full_name='CWebRTCClient_InitiateWebRTCConnection_Response',
+_CFRIENDSLIST_GETCATEGORIES_REQUEST = _descriptor.Descriptor(
+  name='CFriendsList_GetCategories_Request',
+  full_name='CFriendsList_GetCategories_Request',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
-    _descriptor.FieldDescriptor(
-      name='remote_description', full_name='CWebRTCClient_InitiateWebRTCConnection_Response.remote_description', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -1483,49 +2218,66 @@ _CWEBRTCCLIENT_INITIATEWEBRTCCONNECTION_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3971,
-  serialized_end=4048,
+  serialized_start=6017,
+  serialized_end=6053,
 )
 
 
-_CWEBRTC_WEBRTCSESSIONCONNECTED_NOTIFICATION = _descriptor.Descriptor(
-  name='CWebRTC_WebRTCSessionConnected_Notification',
-  full_name='CWebRTC_WebRTCSessionConnected_Notification',
+_CFRIENDSLIST_GETCATEGORIES_RESPONSE = _descriptor.Descriptor(
+  name='CFriendsList_GetCategories_Response',
+  full_name='CFriendsList_GetCategories_Response',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='ssrc', full_name='CWebRTC_WebRTCSessionConnected_Notification.ssrc', index=0,
-      number=1, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='client_ip', full_name='CWebRTC_WebRTCSessionConnected_Notification.client_ip', index=1,
-      number=2, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
+      name='categories', full_name='CFriendsList_GetCategories_Response.categories', index=0,
+      number=1, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=6055,
+  serialized_end=6135,
+)
+
+
+_CFRIENDSLISTFAVORITEENTRY = _descriptor.Descriptor(
+  name='CFriendsListFavoriteEntry',
+  full_name='CFriendsListFavoriteEntry',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
     _descriptor.FieldDescriptor(
-      name='client_port', full_name='CWebRTC_WebRTCSessionConnected_Notification.client_port', index=2,
-      number=3, type=13, cpp_type=3, label=1,
+      name='accountid', full_name='CFriendsListFavoriteEntry.accountid', index=0,
+      number=1, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='server_ip', full_name='CWebRTC_WebRTCSessionConnected_Notification.server_ip', index=3,
-      number=4, type=13, cpp_type=3, label=1,
+      name='clanid', full_name='CFriendsListFavoriteEntry.clanid', index=1,
+      number=2, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='server_port', full_name='CWebRTC_WebRTCSessionConnected_Notification.server_port', index=4,
-      number=5, type=13, cpp_type=3, label=1,
+      name='chat_group_id', full_name='CFriendsListFavoriteEntry.chat_group_id', index=2,
+      number=3, type=4, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
@@ -1542,39 +2294,18 @@ _CWEBRTC_WEBRTCSESSIONCONNECTED_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4051,
-  serialized_end=4190,
+  serialized_start=6137,
+  serialized_end=6222,
 )
 
 
-_CWEBRTC_WEBRTCUPDATEREMOTEDESCRIPTION_NOTIFICATION = _descriptor.Descriptor(
-  name='CWebRTC_WebRTCUpdateRemoteDescription_Notification',
-  full_name='CWebRTC_WebRTCUpdateRemoteDescription_Notification',
+_CFRIENDSLIST_GETFAVORITES_REQUEST = _descriptor.Descriptor(
+  name='CFriendsList_GetFavorites_Request',
+  full_name='CFriendsList_GetFavorites_Request',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
-    _descriptor.FieldDescriptor(
-      name='remote_description', full_name='CWebRTC_WebRTCUpdateRemoteDescription_Notification.remote_description', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='remote_description_version', full_name='CWebRTC_WebRTCUpdateRemoteDescription_Notification.remote_description_version', index=1,
-      number=2, type=4, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='ssrcs_to_accountids', full_name='CWebRTC_WebRTCUpdateRemoteDescription_Notification.ssrcs_to_accountids', index=2,
-      number=3, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -1587,29 +2318,22 @@ _CWEBRTC_WEBRTCUPDATEREMOTEDESCRIPTION_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4193,
-  serialized_end=4415,
+  serialized_start=6224,
+  serialized_end=6259,
 )
 
 
-_CWEBRTC_WEBRTCUPDATEREMOTEDESCRIPTION_NOTIFICATION_CSSRCTOACCOUNTIDMAPPING = _descriptor.Descriptor(
-  name='CWebRTC_WebRTCUpdateRemoteDescription_Notification_CSSRCToAccountIDMapping',
-  full_name='CWebRTC_WebRTCUpdateRemoteDescription_Notification_CSSRCToAccountIDMapping',
+_CFRIENDSLIST_GETFAVORITES_RESPONSE = _descriptor.Descriptor(
+  name='CFriendsList_GetFavorites_Response',
+  full_name='CFriendsList_GetFavorites_Response',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='ssrc', full_name='CWebRTC_WebRTCUpdateRemoteDescription_Notification_CSSRCToAccountIDMapping.ssrc', index=0,
-      number=1, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='accountid', full_name='CWebRTC_WebRTCUpdateRemoteDescription_Notification_CSSRCToAccountIDMapping.accountid', index=1,
-      number=2, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
+      name='favorites', full_name='CFriendsList_GetFavorites_Response.favorites', index=0,
+      number=1, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
@@ -1625,50 +2349,22 @@ _CWEBRTC_WEBRTCUPDATEREMOTEDESCRIPTION_NOTIFICATION_CSSRCTOACCOUNTIDMAPPING = _d
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4417,
-  serialized_end=4526,
+  serialized_start=6261,
+  serialized_end=6344,
 )
 
 
-_CWEBRTCCLIENT_ACKNOWLEDGEUPDATEDREMOTEDESCRIPTION_REQUEST = _descriptor.Descriptor(
-  name='CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Request',
-  full_name='CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Request',
+_CFRIENDSLIST_SETFAVORITES_REQUEST = _descriptor.Descriptor(
+  name='CFriendsList_SetFavorites_Request',
+  full_name='CFriendsList_SetFavorites_Request',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='ip_webrtc_server', full_name='CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Request.ip_webrtc_server', index=0,
-      number=1, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='port_webrtc_server', full_name='CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Request.port_webrtc_server', index=1,
-      number=2, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='ip_webrtc_session_client', full_name='CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Request.ip_webrtc_session_client', index=2,
-      number=3, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='port_webrtc_session_client', full_name='CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Request.port_webrtc_session_client', index=3,
-      number=4, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='remote_description_version', full_name='CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Request.remote_description_version', index=4,
-      number=5, type=4, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
+      name='favorites', full_name='CFriendsList_SetFavorites_Request.favorites', index=0,
+      number=1, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
@@ -1684,14 +2380,14 @@ _CWEBRTCCLIENT_ACKNOWLEDGEUPDATEDREMOTEDESCRIPTION_REQUEST = _descriptor.Descrip
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4529,
-  serialized_end=4748,
+  serialized_start=6346,
+  serialized_end=6428,
 )
 
 
-_CWEBRTCCLIENT_ACKNOWLEDGEUPDATEDREMOTEDESCRIPTION_RESPONSE = _descriptor.Descriptor(
-  name='CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Response',
-  full_name='CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Response',
+_CFRIENDSLIST_SETFAVORITES_RESPONSE = _descriptor.Descriptor(
+  name='CFriendsList_SetFavorites_Response',
+  full_name='CFriendsList_SetFavorites_Response',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
@@ -1708,22 +2404,22 @@ _CWEBRTCCLIENT_ACKNOWLEDGEUPDATEDREMOTEDESCRIPTION_RESPONSE = _descriptor.Descri
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4750,
-  serialized_end=4810,
+  serialized_start=6430,
+  serialized_end=6466,
 )
 
 
-_CVOICECHAT_REQUESTONEONONECHAT_REQUEST = _descriptor.Descriptor(
-  name='CVoiceChat_RequestOneOnOneChat_Request',
-  full_name='CVoiceChat_RequestOneOnOneChat_Request',
+_CFRIENDSLIST_FAVORITESCHANGED_NOTIFICATION = _descriptor.Descriptor(
+  name='CFriendsList_FavoritesChanged_Notification',
+  full_name='CFriendsList_FavoritesChanged_Notification',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='steamid_partner', full_name='CVoiceChat_RequestOneOnOneChat_Request.steamid_partner', index=0,
-      number=1, type=6, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
+      name='favorites', full_name='CFriendsList_FavoritesChanged_Notification.favorites', index=0,
+      number=1, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
@@ -1739,25 +2435,18 @@ _CVOICECHAT_REQUESTONEONONECHAT_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4812,
-  serialized_end=4877,
+  serialized_start=6468,
+  serialized_end=6559,
 )
 
 
-_CVOICECHAT_REQUESTONEONONECHAT_RESPONSE = _descriptor.Descriptor(
-  name='CVoiceChat_RequestOneOnOneChat_Response',
-  full_name='CVoiceChat_RequestOneOnOneChat_Response',
+_CFRIENDSLIST_GETFRIENDSLIST_REQUEST = _descriptor.Descriptor(
+  name='CFriendsList_GetFriendsList_Request',
+  full_name='CFriendsList_GetFriendsList_Request',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
-    _descriptor.FieldDescriptor(
-      name='voice_chatid', full_name='CVoiceChat_RequestOneOnOneChat_Response.voice_chatid', index=0,
-      number=1, type=6, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -1770,29 +2459,22 @@ _CVOICECHAT_REQUESTONEONONECHAT_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4879,
-  serialized_end=4942,
+  serialized_start=6561,
+  serialized_end=6598,
 )
 
 
-_CVOICECHAT_ONEONONECHATREQUESTED_NOTIFICATION = _descriptor.Descriptor(
-  name='CVoiceChat_OneOnOneChatRequested_Notification',
-  full_name='CVoiceChat_OneOnOneChatRequested_Notification',
+_CFRIENDSLIST_GETFRIENDSLIST_RESPONSE = _descriptor.Descriptor(
+  name='CFriendsList_GetFriendsList_Response',
+  full_name='CFriendsList_GetFriendsList_Response',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='voice_chatid', full_name='CVoiceChat_OneOnOneChatRequested_Notification.voice_chatid', index=0,
-      number=1, type=6, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='steamid_partner', full_name='CVoiceChat_OneOnOneChatRequested_Notification.steamid_partner', index=1,
-      number=2, type=6, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
+      name='friendslist', full_name='CFriendsList_GetFriendsList_Response.friendslist', index=0,
+      number=1, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
@@ -1808,39 +2490,32 @@ _CVOICECHAT_ONEONONECHATREQUESTED_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=4944,
-  serialized_end=5038,
+  serialized_start=6600,
+  serialized_end=6683,
 )
 
 
-_CVOICECHAT_ANSWERONEONONECHAT_REQUEST = _descriptor.Descriptor(
-  name='CVoiceChat_AnswerOneOnOneChat_Request',
-  full_name='CVoiceChat_AnswerOneOnOneChat_Request',
+_CMSGCLIENTUCMPUBLISHEDFILEDELETED = _descriptor.Descriptor(
+  name='CMsgClientUCMPublishedFileDeleted',
+  full_name='CMsgClientUCMPublishedFileDeleted',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='voice_chatid', full_name='CVoiceChat_AnswerOneOnOneChat_Request.voice_chatid', index=0,
+      name='published_file_id', full_name='CMsgClientUCMPublishedFileDeleted.published_file_id', index=0,
       number=1, type=6, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='steamid_partner', full_name='CVoiceChat_AnswerOneOnOneChat_Request.steamid_partner', index=1,
-      number=2, type=6, cpp_type=4, label=1,
+      name='app_id', full_name='CMsgClientUCMPublishedFileDeleted.app_id', index=1,
+      number=2, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='accepted_request', full_name='CVoiceChat_AnswerOneOnOneChat_Request.accepted_request', index=2,
-      number=3, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -1853,18 +2528,74 @@ _CVOICECHAT_ANSWERONEONONECHAT_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5040,
-  serialized_end=5152,
+  serialized_start=6685,
+  serialized_end=6763,
 )
 
 
-_CVOICECHAT_ANSWERONEONONECHAT_RESPONSE = _descriptor.Descriptor(
-  name='CVoiceChat_AnswerOneOnOneChat_Response',
-  full_name='CVoiceChat_AnswerOneOnOneChat_Response',
+_CMSGCREENUMERATEPUBLISHEDFILES = _descriptor.Descriptor(
+  name='CMsgCREEnumeratePublishedFiles',
+  full_name='CMsgCREEnumeratePublishedFiles',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
+    _descriptor.FieldDescriptor(
+      name='app_id', full_name='CMsgCREEnumeratePublishedFiles.app_id', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='query_type', full_name='CMsgCREEnumeratePublishedFiles.query_type', index=1,
+      number=2, type=5, cpp_type=1, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='start_index', full_name='CMsgCREEnumeratePublishedFiles.start_index', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='days', full_name='CMsgCREEnumeratePublishedFiles.days', index=3,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='count', full_name='CMsgCREEnumeratePublishedFiles.count', index=4,
+      number=5, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='tags', full_name='CMsgCREEnumeratePublishedFiles.tags', index=5,
+      number=6, type=9, cpp_type=9, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='user_tags', full_name='CMsgCREEnumeratePublishedFiles.user_tags', index=6,
+      number=7, type=9, cpp_type=9, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='matching_file_type', full_name='CMsgCREEnumeratePublishedFiles.matching_file_type', index=7,
+      number=8, type=13, cpp_type=3, label=1,
+      has_default_value=True, default_value=13,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -1877,36 +2608,36 @@ _CVOICECHAT_ANSWERONEONONECHAT_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5154,
-  serialized_end=5194,
+  serialized_start=6766,
+  serialized_end=6949,
 )
 
 
-_CVOICECHAT_ONEONONECHATREQUESTRESPONSE_NOTIFICATION = _descriptor.Descriptor(
-  name='CVoiceChat_OneOnOneChatRequestResponse_Notification',
-  full_name='CVoiceChat_OneOnOneChatRequestResponse_Notification',
+_CMSGCREENUMERATEPUBLISHEDFILESRESPONSE = _descriptor.Descriptor(
+  name='CMsgCREEnumeratePublishedFilesResponse',
+  full_name='CMsgCREEnumeratePublishedFilesResponse',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='voicechat_id', full_name='CVoiceChat_OneOnOneChatRequestResponse_Notification.voicechat_id', index=0,
-      number=1, type=6, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
+      name='eresult', full_name='CMsgCREEnumeratePublishedFilesResponse.eresult', index=0,
+      number=1, type=5, cpp_type=1, label=1,
+      has_default_value=True, default_value=2,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='steamid_partner', full_name='CVoiceChat_OneOnOneChatRequestResponse_Notification.steamid_partner', index=1,
-      number=2, type=6, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
+      name='published_files', full_name='CMsgCREEnumeratePublishedFilesResponse.published_files', index=1,
+      number=2, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='accepted_request', full_name='CVoiceChat_OneOnOneChatRequestResponse_Notification.accepted_request', index=2,
-      number=3, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
+      name='total_results', full_name='CMsgCREEnumeratePublishedFilesResponse.total_results', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
@@ -1922,25 +2653,53 @@ _CVOICECHAT_ONEONONECHATREQUESTRESPONSE_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5196,
-  serialized_end=5322,
+  serialized_start=6952,
+  serialized_end=7117,
 )
 
 
-_CVOICECHAT_ENDONEONONECHAT_REQUEST = _descriptor.Descriptor(
-  name='CVoiceChat_EndOneOnOneChat_Request',
-  full_name='CVoiceChat_EndOneOnOneChat_Request',
+_CMSGCREENUMERATEPUBLISHEDFILESRESPONSE_PUBLISHEDFILEID = _descriptor.Descriptor(
+  name='CMsgCREEnumeratePublishedFilesResponse_PublishedFileId',
+  full_name='CMsgCREEnumeratePublishedFilesResponse_PublishedFileId',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='steamid_partner', full_name='CVoiceChat_EndOneOnOneChat_Request.steamid_partner', index=0,
+      name='published_file_id', full_name='CMsgCREEnumeratePublishedFilesResponse_PublishedFileId.published_file_id', index=0,
       number=1, type=6, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='votes_for', full_name='CMsgCREEnumeratePublishedFilesResponse_PublishedFileId.votes_for', index=1,
+      number=2, type=5, cpp_type=1, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='votes_against', full_name='CMsgCREEnumeratePublishedFilesResponse_PublishedFileId.votes_against', index=2,
+      number=3, type=5, cpp_type=1, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='reports', full_name='CMsgCREEnumeratePublishedFilesResponse_PublishedFileId.reports', index=3,
+      number=4, type=5, cpp_type=1, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='score', full_name='CMsgCREEnumeratePublishedFilesResponse_PublishedFileId.score', index=4,
+      number=5, type=2, cpp_type=6, label=1,
+      has_default_value=False, default_value=float(0),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -1953,18 +2712,32 @@ _CVOICECHAT_ENDONEONONECHAT_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5324,
-  serialized_end=5385,
+  serialized_start=7120,
+  serialized_end=7277,
 )
 
 
-_CVOICECHAT_ENDONEONONECHAT_RESPONSE = _descriptor.Descriptor(
-  name='CVoiceChat_EndOneOnOneChat_Response',
-  full_name='CVoiceChat_EndOneOnOneChat_Response',
+_CCLAN_RESPONDTOCLANINVITE_REQUEST = _descriptor.Descriptor(
+  name='CClan_RespondToClanInvite_Request',
+  full_name='CClan_RespondToClanInvite_Request',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
+    _descriptor.FieldDescriptor(
+      name='steamid', full_name='CClan_RespondToClanInvite_Request.steamid', index=0,
+      number=1, type=6, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='accept', full_name='CClan_RespondToClanInvite_Request.accept', index=1,
+      number=2, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -1977,32 +2750,49 @@ _CVOICECHAT_ENDONEONONECHAT_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5387,
-  serialized_end=5424,
+  serialized_start=7279,
+  serialized_end=7347,
 )
 
 
-_CVOICECHAT_LEAVEONEONONECHAT_REQUEST = _descriptor.Descriptor(
-  name='CVoiceChat_LeaveOneOnOneChat_Request',
-  full_name='CVoiceChat_LeaveOneOnOneChat_Request',
+_CCLAN_RESPONDTOCLANINVITE_RESPONSE = _descriptor.Descriptor(
+  name='CClan_RespondToClanInvite_Response',
+  full_name='CClan_RespondToClanInvite_Response',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=7349,
+  serialized_end=7385,
+)
+
+
+_CVOICECHAT_REQUESTONEONONECHAT_REQUEST = _descriptor.Descriptor(
+  name='CVoiceChat_RequestOneOnOneChat_Request',
+  full_name='CVoiceChat_RequestOneOnOneChat_Request',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='steamid_partner', full_name='CVoiceChat_LeaveOneOnOneChat_Request.steamid_partner', index=0,
+      name='steamid_partner', full_name='CVoiceChat_RequestOneOnOneChat_Request.steamid_partner', index=0,
       number=1, type=6, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='voice_chatid', full_name='CVoiceChat_LeaveOneOnOneChat_Request.voice_chatid', index=1,
-      number=2, type=6, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -2015,18 +2805,25 @@ _CVOICECHAT_LEAVEONEONONECHAT_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5426,
-  serialized_end=5511,
+  serialized_start=7387,
+  serialized_end=7452,
 )
 
 
-_CVOICECHAT_LEAVEONEONONECHAT_RESPONSE = _descriptor.Descriptor(
-  name='CVoiceChat_LeaveOneOnOneChat_Response',
-  full_name='CVoiceChat_LeaveOneOnOneChat_Response',
+_CVOICECHAT_REQUESTONEONONECHAT_RESPONSE = _descriptor.Descriptor(
+  name='CVoiceChat_RequestOneOnOneChat_Response',
+  full_name='CVoiceChat_RequestOneOnOneChat_Response',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
+    _descriptor.FieldDescriptor(
+      name='voice_chatid', full_name='CVoiceChat_RequestOneOnOneChat_Response.voice_chatid', index=0,
+      number=1, type=6, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -2039,67 +2836,32 @@ _CVOICECHAT_LEAVEONEONONECHAT_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5513,
-  serialized_end=5552,
+  serialized_start=7454,
+  serialized_end=7517,
 )
 
 
-_CVOICECHAT_USERJOINEDVOICECHAT_NOTIFICATION = _descriptor.Descriptor(
-  name='CVoiceChat_UserJoinedVoiceChat_Notification',
-  full_name='CVoiceChat_UserJoinedVoiceChat_Notification',
+_CVOICECHAT_ONEONONECHATREQUESTED_NOTIFICATION = _descriptor.Descriptor(
+  name='CVoiceChat_OneOnOneChatRequested_Notification',
+  full_name='CVoiceChat_OneOnOneChatRequested_Notification',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='voice_chatid', full_name='CVoiceChat_UserJoinedVoiceChat_Notification.voice_chatid', index=0,
+      name='voice_chatid', full_name='CVoiceChat_OneOnOneChatRequested_Notification.voice_chatid', index=0,
       number=1, type=6, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='user_steamid', full_name='CVoiceChat_UserJoinedVoiceChat_Notification.user_steamid', index=1,
+      name='steamid_partner', full_name='CVoiceChat_OneOnOneChatRequested_Notification.steamid_partner', index=1,
       number=2, type=6, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='chatid', full_name='CVoiceChat_UserJoinedVoiceChat_Notification.chatid', index=2,
-      number=3, type=4, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='one_on_one_steamid_lower', full_name='CVoiceChat_UserJoinedVoiceChat_Notification.one_on_one_steamid_lower', index=3,
-      number=4, type=6, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='one_on_one_steamid_higher', full_name='CVoiceChat_UserJoinedVoiceChat_Notification.one_on_one_steamid_higher', index=4,
-      number=5, type=6, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='chat_group_id', full_name='CVoiceChat_UserJoinedVoiceChat_Notification.chat_group_id', index=5,
-      number=6, type=4, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='user_sessionid', full_name='CVoiceChat_UserJoinedVoiceChat_Notification.user_sessionid', index=6,
-      number=7, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -2112,60 +2874,39 @@ _CVOICECHAT_USERJOINEDVOICECHAT_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5555,
-  serialized_end=5776,
+  serialized_start=7519,
+  serialized_end=7613,
 )
 
 
-_CVOICECHAT_USERVOICESTATUS_NOTIFICATION = _descriptor.Descriptor(
-  name='CVoiceChat_UserVoiceStatus_Notification',
-  full_name='CVoiceChat_UserVoiceStatus_Notification',
+_CVOICECHAT_ANSWERONEONONECHAT_REQUEST = _descriptor.Descriptor(
+  name='CVoiceChat_AnswerOneOnOneChat_Request',
+  full_name='CVoiceChat_AnswerOneOnOneChat_Request',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='voice_chatid', full_name='CVoiceChat_UserVoiceStatus_Notification.voice_chatid', index=0,
+      name='voice_chatid', full_name='CVoiceChat_AnswerOneOnOneChat_Request.voice_chatid', index=0,
       number=1, type=6, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='user_steamid', full_name='CVoiceChat_UserVoiceStatus_Notification.user_steamid', index=1,
+      name='steamid_partner', full_name='CVoiceChat_AnswerOneOnOneChat_Request.steamid_partner', index=1,
       number=2, type=6, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='user_muted_mic_locally', full_name='CVoiceChat_UserVoiceStatus_Notification.user_muted_mic_locally', index=2,
+      name='accepted_request', full_name='CVoiceChat_AnswerOneOnOneChat_Request.accepted_request', index=2,
       number=3, type=8, cpp_type=7, label=1,
       has_default_value=False, default_value=False,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='user_muted_output_locally', full_name='CVoiceChat_UserVoiceStatus_Notification.user_muted_output_locally', index=3,
-      number=4, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='user_has_no_mic_for_session', full_name='CVoiceChat_UserVoiceStatus_Notification.user_has_no_mic_for_session', index=4,
-      number=5, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='user_webaudio_sample_rate', full_name='CVoiceChat_UserVoiceStatus_Notification.user_webaudio_sample_rate', index=5,
-      number=6, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -2178,32 +2919,18 @@ _CVOICECHAT_USERVOICESTATUS_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5779,
-  serialized_end=6003,
+  serialized_start=7615,
+  serialized_end=7727,
 )
 
 
-_CVOICECHAT_ALLMEMBERSSTATUS_NOTIFICATION = _descriptor.Descriptor(
-  name='CVoiceChat_AllMembersStatus_Notification',
-  full_name='CVoiceChat_AllMembersStatus_Notification',
+_CVOICECHAT_ANSWERONEONONECHAT_RESPONSE = _descriptor.Descriptor(
+  name='CVoiceChat_AnswerOneOnOneChat_Response',
+  full_name='CVoiceChat_AnswerOneOnOneChat_Response',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
-    _descriptor.FieldDescriptor(
-      name='voice_chatid', full_name='CVoiceChat_AllMembersStatus_Notification.voice_chatid', index=0,
-      number=1, type=6, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='users', full_name='CVoiceChat_AllMembersStatus_Notification.users', index=1,
-      number=2, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -2216,70 +2943,35 @@ _CVOICECHAT_ALLMEMBERSSTATUS_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6005,
-  serialized_end=6126,
+  serialized_start=7729,
+  serialized_end=7769,
 )
 
 
-_CVOICECHAT_UPDATEVOICECHATWEBRTCDATA_REQUEST = _descriptor.Descriptor(
-  name='CVoiceChat_UpdateVoiceChatWebRTCData_Request',
-  full_name='CVoiceChat_UpdateVoiceChatWebRTCData_Request',
+_CVOICECHAT_ONEONONECHATREQUESTRESPONSE_NOTIFICATION = _descriptor.Descriptor(
+  name='CVoiceChat_OneOnOneChatRequestResponse_Notification',
+  full_name='CVoiceChat_OneOnOneChatRequestResponse_Notification',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='voice_chatid', full_name='CVoiceChat_UpdateVoiceChatWebRTCData_Request.voice_chatid', index=0,
+      name='voicechat_id', full_name='CVoiceChat_OneOnOneChatRequestResponse_Notification.voicechat_id', index=0,
       number=1, type=6, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='ip_webrtc_server', full_name='CVoiceChat_UpdateVoiceChatWebRTCData_Request.ip_webrtc_server', index=1,
-      number=2, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='port_webrtc_server', full_name='CVoiceChat_UpdateVoiceChatWebRTCData_Request.port_webrtc_server', index=2,
-      number=3, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='ip_webrtc_client', full_name='CVoiceChat_UpdateVoiceChatWebRTCData_Request.ip_webrtc_client', index=3,
-      number=4, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='port_webrtc_client', full_name='CVoiceChat_UpdateVoiceChatWebRTCData_Request.port_webrtc_client', index=4,
-      number=5, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='ssrc_my_sending_stream', full_name='CVoiceChat_UpdateVoiceChatWebRTCData_Request.ssrc_my_sending_stream', index=5,
-      number=6, type=13, cpp_type=3, label=1,
+      name='steamid_partner', full_name='CVoiceChat_OneOnOneChatRequestResponse_Notification.steamid_partner', index=1,
+      number=2, type=6, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='user_agent', full_name='CVoiceChat_UpdateVoiceChatWebRTCData_Request.user_agent', index=6,
-      number=7, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='has_audio_worklets_support', full_name='CVoiceChat_UpdateVoiceChatWebRTCData_Request.has_audio_worklets_support', index=7,
-      number=8, type=8, cpp_type=7, label=1,
+      name='accepted_request', full_name='CVoiceChat_OneOnOneChatRequestResponse_Notification.accepted_request', index=2,
+      number=3, type=8, cpp_type=7, label=1,
       has_default_value=False, default_value=False,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
@@ -2296,22 +2988,22 @@ _CVOICECHAT_UPDATEVOICECHATWEBRTCDATA_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6129,
-  serialized_end=6393,
+  serialized_start=7771,
+  serialized_end=7897,
 )
 
 
-_CVOICECHAT_UPDATEVOICECHATWEBRTCDATA_RESPONSE = _descriptor.Descriptor(
-  name='CVoiceChat_UpdateVoiceChatWebRTCData_Response',
-  full_name='CVoiceChat_UpdateVoiceChatWebRTCData_Response',
+_CVOICECHAT_ENDONEONONECHAT_REQUEST = _descriptor.Descriptor(
+  name='CVoiceChat_EndOneOnOneChat_Request',
+  full_name='CVoiceChat_EndOneOnOneChat_Request',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='send_client_voice_logs', full_name='CVoiceChat_UpdateVoiceChatWebRTCData_Response.send_client_voice_logs', index=0,
-      number=1, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
+      name='steamid_partner', full_name='CVoiceChat_EndOneOnOneChat_Request.steamid_partner', index=0,
+      number=1, type=6, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
@@ -2327,32 +3019,18 @@ _CVOICECHAT_UPDATEVOICECHATWEBRTCDATA_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6395,
-  serialized_end=6474,
+  serialized_start=7899,
+  serialized_end=7960,
 )
 
 
-_CVOICECHAT_UPLOADCLIENTVOICECHATLOGS_REQUEST = _descriptor.Descriptor(
-  name='CVoiceChat_UploadClientVoiceChatLogs_Request',
-  full_name='CVoiceChat_UploadClientVoiceChatLogs_Request',
+_CVOICECHAT_ENDONEONONECHAT_RESPONSE = _descriptor.Descriptor(
+  name='CVoiceChat_EndOneOnOneChat_Response',
+  full_name='CVoiceChat_EndOneOnOneChat_Response',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
-    _descriptor.FieldDescriptor(
-      name='voice_chatid', full_name='CVoiceChat_UploadClientVoiceChatLogs_Request.voice_chatid', index=0,
-      number=1, type=6, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='client_voice_logs_new_lines', full_name='CVoiceChat_UploadClientVoiceChatLogs_Request.client_voice_logs_new_lines', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -2365,18 +3043,32 @@ _CVOICECHAT_UPLOADCLIENTVOICECHATLOGS_REQUEST = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6476,
-  serialized_end=6581,
+  serialized_start=7962,
+  serialized_end=7999,
 )
 
 
-_CVOICECHAT_UPLOADCLIENTVOICECHATLOGS_RESPONSE = _descriptor.Descriptor(
-  name='CVoiceChat_UploadClientVoiceChatLogs_Response',
-  full_name='CVoiceChat_UploadClientVoiceChatLogs_Response',
+_CVOICECHAT_LEAVEONEONONECHAT_REQUEST = _descriptor.Descriptor(
+  name='CVoiceChat_LeaveOneOnOneChat_Request',
+  full_name='CVoiceChat_LeaveOneOnOneChat_Request',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
+    _descriptor.FieldDescriptor(
+      name='steamid_partner', full_name='CVoiceChat_LeaveOneOnOneChat_Request.steamid_partner', index=0,
+      number=1, type=6, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='voice_chatid', full_name='CVoiceChat_LeaveOneOnOneChat_Request.voice_chatid', index=1,
+      number=2, type=6, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -2389,14 +3081,14 @@ _CVOICECHAT_UPLOADCLIENTVOICECHATLOGS_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6583,
-  serialized_end=6630,
+  serialized_start=8001,
+  serialized_end=8086,
 )
 
 
-_CVOICECHAT_LEAVEVOICECHAT_RESPONSE = _descriptor.Descriptor(
-  name='CVoiceChat_LeaveVoiceChat_Response',
-  full_name='CVoiceChat_LeaveVoiceChat_Response',
+_CVOICECHAT_LEAVEONEONONECHAT_RESPONSE = _descriptor.Descriptor(
+  name='CVoiceChat_LeaveOneOnOneChat_Response',
+  full_name='CVoiceChat_LeaveOneOnOneChat_Response',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
@@ -2413,62 +3105,62 @@ _CVOICECHAT_LEAVEVOICECHAT_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6632,
-  serialized_end=6668,
+  serialized_start=8088,
+  serialized_end=8127,
 )
 
 
-_CVOICECHAT_USERLEFTVOICECHAT_NOTIFICATION = _descriptor.Descriptor(
-  name='CVoiceChat_UserLeftVoiceChat_Notification',
-  full_name='CVoiceChat_UserLeftVoiceChat_Notification',
+_CVOICECHAT_USERJOINEDVOICECHAT_NOTIFICATION = _descriptor.Descriptor(
+  name='CVoiceChat_UserJoinedVoiceChat_Notification',
+  full_name='CVoiceChat_UserJoinedVoiceChat_Notification',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='voice_chatid', full_name='CVoiceChat_UserLeftVoiceChat_Notification.voice_chatid', index=0,
+      name='voice_chatid', full_name='CVoiceChat_UserJoinedVoiceChat_Notification.voice_chatid', index=0,
       number=1, type=6, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='user_steamid', full_name='CVoiceChat_UserLeftVoiceChat_Notification.user_steamid', index=1,
+      name='user_steamid', full_name='CVoiceChat_UserJoinedVoiceChat_Notification.user_steamid', index=1,
       number=2, type=6, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='chatid', full_name='CVoiceChat_UserLeftVoiceChat_Notification.chatid', index=2,
+      name='chatid', full_name='CVoiceChat_UserJoinedVoiceChat_Notification.chatid', index=2,
       number=3, type=4, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='one_on_one_steamid_lower', full_name='CVoiceChat_UserLeftVoiceChat_Notification.one_on_one_steamid_lower', index=3,
+      name='one_on_one_steamid_lower', full_name='CVoiceChat_UserJoinedVoiceChat_Notification.one_on_one_steamid_lower', index=3,
       number=4, type=6, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='one_on_one_steamid_higher', full_name='CVoiceChat_UserLeftVoiceChat_Notification.one_on_one_steamid_higher', index=4,
+      name='one_on_one_steamid_higher', full_name='CVoiceChat_UserJoinedVoiceChat_Notification.one_on_one_steamid_higher', index=4,
       number=5, type=6, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='chat_group_id', full_name='CVoiceChat_UserLeftVoiceChat_Notification.chat_group_id', index=5,
+      name='chat_group_id', full_name='CVoiceChat_UserJoinedVoiceChat_Notification.chat_group_id', index=5,
       number=6, type=4, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='user_sessionid', full_name='CVoiceChat_UserLeftVoiceChat_Notification.user_sessionid', index=6,
+      name='user_sessionid', full_name='CVoiceChat_UserJoinedVoiceChat_Notification.user_sessionid', index=6,
       number=7, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
@@ -2486,80 +3178,56 @@ _CVOICECHAT_USERLEFTVOICECHAT_NOTIFICATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6671,
-  serialized_end=6890,
+  serialized_start=8130,
+  serialized_end=8351,
 )
 
 
-_CVOICECHAT_VOICECHATENDED_NOTIFICATION = _descriptor.Descriptor(
-  name='CVoiceChat_VoiceChatEnded_Notification',
-  full_name='CVoiceChat_VoiceChatEnded_Notification',
+_CVOICECHAT_USERVOICESTATUS_NOTIFICATION = _descriptor.Descriptor(
+  name='CVoiceChat_UserVoiceStatus_Notification',
+  full_name='CVoiceChat_UserVoiceStatus_Notification',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='voice_chatid', full_name='CVoiceChat_VoiceChatEnded_Notification.voice_chatid', index=0,
+      name='voice_chatid', full_name='CVoiceChat_UserVoiceStatus_Notification.voice_chatid', index=0,
       number=1, type=6, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='one_on_one_steamid_lower', full_name='CVoiceChat_VoiceChatEnded_Notification.one_on_one_steamid_lower', index=1,
+      name='user_steamid', full_name='CVoiceChat_UserVoiceStatus_Notification.user_steamid', index=1,
       number=2, type=6, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='one_on_one_steamid_higher', full_name='CVoiceChat_VoiceChatEnded_Notification.one_on_one_steamid_higher', index=2,
-      number=3, type=6, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
+      name='user_muted_mic_locally', full_name='CVoiceChat_UserVoiceStatus_Notification.user_muted_mic_locally', index=2,
+      number=3, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='chatid', full_name='CVoiceChat_VoiceChatEnded_Notification.chatid', index=3,
-      number=4, type=4, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
+      name='user_muted_output_locally', full_name='CVoiceChat_UserVoiceStatus_Notification.user_muted_output_locally', index=3,
+      number=4, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='chat_group_id', full_name='CVoiceChat_VoiceChatEnded_Notification.chat_group_id', index=4,
-      number=5, type=4, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
+      name='user_has_no_mic_for_session', full_name='CVoiceChat_UserVoiceStatus_Notification.user_has_no_mic_for_session', index=4,
+      number=5, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=6893,
-  serialized_end=7063,
-)
-
-
-_CSTEAMTV_CREATEBROADCASTCHANNEL_RESPONSE = _descriptor.Descriptor(
-  name='CSteamTV_CreateBroadcastChannel_Response',
-  full_name='CSteamTV_CreateBroadcastChannel_Response',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
     _descriptor.FieldDescriptor(
-      name='broadcast_channel_id', full_name='CSteamTV_CreateBroadcastChannel_Response.broadcast_channel_id', index=0,
-      number=1, type=6, cpp_type=4, label=1,
+      name='user_webaudio_sample_rate', full_name='CVoiceChat_UserVoiceStatus_Notification.user_webaudio_sample_rate', index=5,
+      number=6, type=5, cpp_type=1, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
@@ -2576,36 +3244,29 @@ _CSTEAMTV_CREATEBROADCASTCHANNEL_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=7065,
-  serialized_end=7137,
+  serialized_start=8354,
+  serialized_end=8578,
 )
 
 
-_CSTEAMTV_GETBROADCASTCHANNELID_RESPONSE = _descriptor.Descriptor(
-  name='CSteamTV_GetBroadcastChannelID_Response',
-  full_name='CSteamTV_GetBroadcastChannelID_Response',
+_CVOICECHAT_ALLMEMBERSSTATUS_NOTIFICATION = _descriptor.Descriptor(
+  name='CVoiceChat_AllMembersStatus_Notification',
+  full_name='CVoiceChat_AllMembersStatus_Notification',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='broadcast_channel_id', full_name='CSteamTV_GetBroadcastChannelID_Response.broadcast_channel_id', index=0,
+      name='voice_chatid', full_name='CVoiceChat_AllMembersStatus_Notification.voice_chatid', index=0,
       number=1, type=6, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='unique_name', full_name='CSteamTV_GetBroadcastChannelID_Response.unique_name', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='steamid', full_name='CSteamTV_GetBroadcastChannelID_Response.steamid', index=2,
-      number=3, type=6, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
+      name='users', full_name='CVoiceChat_AllMembersStatus_Notification.users', index=1,
+      number=2, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
@@ -2621,108 +3282,70 @@ _CSTEAMTV_GETBROADCASTCHANNELID_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=7139,
-  serialized_end=7248,
-)
-
-
-_CSTEAMTV_SETBROADCASTCHANNELPROFILE_RESPONSE = _descriptor.Descriptor(
-  name='CSteamTV_SetBroadcastChannelProfile_Response',
-  full_name='CSteamTV_SetBroadcastChannelProfile_Response',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=7250,
-  serialized_end=7296,
+  serialized_start=8580,
+  serialized_end=8701,
 )
 
 
-_CSTEAMTV_GETBROADCASTCHANNELPROFILE_RESPONSE = _descriptor.Descriptor(
-  name='CSteamTV_GetBroadcastChannelProfile_Response',
-  full_name='CSteamTV_GetBroadcastChannelProfile_Response',
+_CVOICECHAT_UPDATEVOICECHATWEBRTCDATA_REQUEST = _descriptor.Descriptor(
+  name='CVoiceChat_UpdateVoiceChatWebRTCData_Request',
+  full_name='CVoiceChat_UpdateVoiceChatWebRTCData_Request',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='unique_name', full_name='CSteamTV_GetBroadcastChannelProfile_Response.unique_name', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
+      name='voice_chatid', full_name='CVoiceChat_UpdateVoiceChatWebRTCData_Request.voice_chatid', index=0,
+      number=1, type=6, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='owner_steamid', full_name='CSteamTV_GetBroadcastChannelProfile_Response.owner_steamid', index=1,
-      number=2, type=6, cpp_type=4, label=1,
+      name='ip_webrtc_server', full_name='CVoiceChat_UpdateVoiceChatWebRTCData_Request.ip_webrtc_server', index=1,
+      number=2, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='name', full_name='CSteamTV_GetBroadcastChannelProfile_Response.name', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
+      name='port_webrtc_server', full_name='CVoiceChat_UpdateVoiceChatWebRTCData_Request.port_webrtc_server', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='language', full_name='CSteamTV_GetBroadcastChannelProfile_Response.language', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
+      name='ip_webrtc_client', full_name='CVoiceChat_UpdateVoiceChatWebRTCData_Request.ip_webrtc_client', index=3,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='headline', full_name='CSteamTV_GetBroadcastChannelProfile_Response.headline', index=4,
-      number=5, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
+      name='port_webrtc_client', full_name='CVoiceChat_UpdateVoiceChatWebRTCData_Request.port_webrtc_client', index=4,
+      number=5, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='summary', full_name='CSteamTV_GetBroadcastChannelProfile_Response.summary', index=5,
-      number=6, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
+      name='ssrc_my_sending_stream', full_name='CVoiceChat_UpdateVoiceChatWebRTCData_Request.ssrc_my_sending_stream', index=5,
+      number=6, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='schedule', full_name='CSteamTV_GetBroadcastChannelProfile_Response.schedule', index=6,
+      name='user_agent', full_name='CVoiceChat_UpdateVoiceChatWebRTCData_Request.user_agent', index=6,
       number=7, type=9, cpp_type=9, label=1,
       has_default_value=False, default_value=_b("").decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='rules', full_name='CSteamTV_GetBroadcastChannelProfile_Response.rules', index=7,
-      number=8, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='panels', full_name='CSteamTV_GetBroadcastChannelProfile_Response.panels', index=8,
-      number=9, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='is_partnered', full_name='CSteamTV_GetBroadcastChannelProfile_Response.is_partnered', index=9,
-      number=10, type=8, cpp_type=7, label=1,
+      name='has_audio_worklets_support', full_name='CVoiceChat_UpdateVoiceChatWebRTCData_Request.has_audio_worklets_support', index=7,
+      number=8, type=8, cpp_type=7, label=1,
       has_default_value=False, default_value=False,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
@@ -2739,22 +3362,22 @@ _CSTEAMTV_GETBROADCASTCHANNELPROFILE_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=7299,
-  serialized_end=7527,
+  serialized_start=8704,
+  serialized_end=8968,
 )
 
 
-_CSTEAMTV_SETBROADCASTCHANNELIMAGE_RESPONSE = _descriptor.Descriptor(
-  name='CSteamTV_SetBroadcastChannelImage_Response',
-  full_name='CSteamTV_SetBroadcastChannelImage_Response',
+_CVOICECHAT_UPDATEVOICECHATWEBRTCDATA_RESPONSE = _descriptor.Descriptor(
+  name='CVoiceChat_UpdateVoiceChatWebRTCData_Response',
+  full_name='CVoiceChat_UpdateVoiceChatWebRTCData_Response',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='replace_image_hash', full_name='CSteamTV_SetBroadcastChannelImage_Response.replace_image_hash', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
+      name='send_client_voice_logs', full_name='CVoiceChat_UpdateVoiceChatWebRTCData_Response.send_client_voice_logs', index=0,
+      number=1, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
@@ -2770,22 +3393,29 @@ _CSTEAMTV_SETBROADCASTCHANNELIMAGE_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=7529,
-  serialized_end=7601,
+  serialized_start=8970,
+  serialized_end=9049,
 )
 
 
-_CSTEAMTV_GETBROADCASTCHANNELIMAGES_RESPONSE = _descriptor.Descriptor(
-  name='CSteamTV_GetBroadcastChannelImages_Response',
-  full_name='CSteamTV_GetBroadcastChannelImages_Response',
+_CVOICECHAT_UPLOADCLIENTVOICECHATLOGS_REQUEST = _descriptor.Descriptor(
+  name='CVoiceChat_UploadClientVoiceChatLogs_Request',
+  full_name='CVoiceChat_UploadClientVoiceChatLogs_Request',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='images', full_name='CSteamTV_GetBroadcastChannelImages_Response.images', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
+      name='voice_chatid', full_name='CVoiceChat_UploadClientVoiceChatLogs_Request.voice_chatid', index=0,
+      number=1, type=6, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='client_voice_logs_new_lines', full_name='CVoiceChat_UploadClientVoiceChatLogs_Request.client_voice_logs_new_lines', index=1,
+      number=2, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
@@ -2801,39 +3431,18 @@ _CSTEAMTV_GETBROADCASTCHANNELIMAGES_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=7603,
-  serialized_end=7717,
+  serialized_start=9051,
+  serialized_end=9156,
 )
 
 
-_CSTEAMTV_GETBROADCASTCHANNELIMAGES_RESPONSE_IMAGES = _descriptor.Descriptor(
-  name='CSteamTV_GetBroadcastChannelImages_Response_Images',
-  full_name='CSteamTV_GetBroadcastChannelImages_Response_Images',
+_CVOICECHAT_UPLOADCLIENTVOICECHATLOGS_RESPONSE = _descriptor.Descriptor(
+  name='CVoiceChat_UploadClientVoiceChatLogs_Response',
+  full_name='CVoiceChat_UploadClientVoiceChatLogs_Response',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
-    _descriptor.FieldDescriptor(
-      name='image_type', full_name='CSteamTV_GetBroadcastChannelImages_Response_Images.image_type', index=0,
-      number=1, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=_b('\202\265\030\004enum'), file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='image_path', full_name='CSteamTV_GetBroadcastChannelImages_Response_Images.image_path', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='image_index', full_name='CSteamTV_GetBroadcastChannelImages_Response_Images.image_index', index=2,
-      number=3, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -2846,22 +3455,22 @@ _CSTEAMTV_GETBROADCASTCHANNELIMAGES_RESPONSE_IMAGES = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=7719,
-  serialized_end=7842,
+  serialized_start=9158,
+  serialized_end=9205,
 )
 
 
-_CSTEAMTV_GETBROADCASTCHANNELLINKS_RESPONSE = _descriptor.Descriptor(
-  name='CSteamTV_GetBroadcastChannelLinks_Response',
-  full_name='CSteamTV_GetBroadcastChannelLinks_Response',
+_CVOICECHAT_LEAVEVOICECHAT_REQUEST = _descriptor.Descriptor(
+  name='CVoiceChat_LeaveVoiceChat_Request',
+  full_name='CVoiceChat_LeaveVoiceChat_Request',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='links', full_name='CSteamTV_GetBroadcastChannelLinks_Response.links', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
+      name='voice_chatid', full_name='CVoiceChat_LeaveVoiceChat_Request.voice_chatid', index=0,
+      number=1, type=6, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
@@ -2877,62 +3486,86 @@ _CSTEAMTV_GETBROADCASTCHANNELLINKS_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=7844,
-  serialized_end=7954,
+  serialized_start=9207,
+  serialized_end=9264,
 )
 
 
-_CSTEAMTV_GETBROADCASTCHANNELLINKS_RESPONSE_LINKS = _descriptor.Descriptor(
-  name='CSteamTV_GetBroadcastChannelLinks_Response_Links',
-  full_name='CSteamTV_GetBroadcastChannelLinks_Response_Links',
+_CVOICECHAT_LEAVEVOICECHAT_RESPONSE = _descriptor.Descriptor(
+  name='CVoiceChat_LeaveVoiceChat_Response',
+  full_name='CVoiceChat_LeaveVoiceChat_Response',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
-    _descriptor.FieldDescriptor(
-      name='link_index', full_name='CSteamTV_GetBroadcastChannelLinks_Response_Links.link_index', index=0,
-      number=1, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='url', full_name='CSteamTV_GetBroadcastChannelLinks_Response_Links.url', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=9266,
+  serialized_end=9302,
+)
+
+
+_CVOICECHAT_USERLEFTVOICECHAT_NOTIFICATION = _descriptor.Descriptor(
+  name='CVoiceChat_UserLeftVoiceChat_Notification',
+  full_name='CVoiceChat_UserLeftVoiceChat_Notification',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='voice_chatid', full_name='CVoiceChat_UserLeftVoiceChat_Notification.voice_chatid', index=0,
+      number=1, type=6, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='link_description', full_name='CSteamTV_GetBroadcastChannelLinks_Response_Links.link_description', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
+      name='user_steamid', full_name='CVoiceChat_UserLeftVoiceChat_Notification.user_steamid', index=1,
+      number=2, type=6, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='left', full_name='CSteamTV_GetBroadcastChannelLinks_Response_Links.left', index=3,
-      number=4, type=13, cpp_type=3, label=1,
+      name='chatid', full_name='CVoiceChat_UserLeftVoiceChat_Notification.chatid', index=2,
+      number=3, type=4, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='top', full_name='CSteamTV_GetBroadcastChannelLinks_Response_Links.top', index=4,
-      number=5, type=13, cpp_type=3, label=1,
+      name='one_on_one_steamid_lower', full_name='CVoiceChat_UserLeftVoiceChat_Notification.one_on_one_steamid_lower', index=3,
+      number=4, type=6, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='width', full_name='CSteamTV_GetBroadcastChannelLinks_Response_Links.width', index=5,
-      number=6, type=13, cpp_type=3, label=1,
+      name='one_on_one_steamid_higher', full_name='CVoiceChat_UserLeftVoiceChat_Notification.one_on_one_steamid_higher', index=4,
+      number=5, type=6, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='chat_group_id', full_name='CVoiceChat_UserLeftVoiceChat_Notification.chat_group_id', index=5,
+      number=6, type=4, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='height', full_name='CSteamTV_GetBroadcastChannelLinks_Response_Links.height', index=6,
+      name='user_sessionid', full_name='CVoiceChat_UserLeftVoiceChat_Notification.user_sessionid', index=6,
       number=7, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
@@ -2950,63 +3583,49 @@ _CSTEAMTV_GETBROADCASTCHANNELLINKS_RESPONSE_LINKS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=7957,
-  serialized_end=8124,
+  serialized_start=9305,
+  serialized_end=9524,
 )
 
 
-_CSTEAMTV_SETBROADCASTCHANNELLINKREGIONS_REQUEST_LINKS = _descriptor.Descriptor(
-  name='CSteamTV_SetBroadcastChannelLinkRegions_Request_Links',
-  full_name='CSteamTV_SetBroadcastChannelLinkRegions_Request_Links',
+_CVOICECHAT_VOICECHATENDED_NOTIFICATION = _descriptor.Descriptor(
+  name='CVoiceChat_VoiceChatEnded_Notification',
+  full_name='CVoiceChat_VoiceChatEnded_Notification',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='link_index', full_name='CSteamTV_SetBroadcastChannelLinkRegions_Request_Links.link_index', index=0,
-      number=1, type=13, cpp_type=3, label=1,
+      name='voice_chatid', full_name='CVoiceChat_VoiceChatEnded_Notification.voice_chatid', index=0,
+      number=1, type=6, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='url', full_name='CSteamTV_SetBroadcastChannelLinkRegions_Request_Links.url', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='link_description', full_name='CSteamTV_SetBroadcastChannelLinkRegions_Request_Links.link_description', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='left', full_name='CSteamTV_SetBroadcastChannelLinkRegions_Request_Links.left', index=3,
-      number=4, type=13, cpp_type=3, label=1,
+      name='one_on_one_steamid_lower', full_name='CVoiceChat_VoiceChatEnded_Notification.one_on_one_steamid_lower', index=1,
+      number=2, type=6, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='top', full_name='CSteamTV_SetBroadcastChannelLinkRegions_Request_Links.top', index=4,
-      number=5, type=13, cpp_type=3, label=1,
+      name='one_on_one_steamid_higher', full_name='CVoiceChat_VoiceChatEnded_Notification.one_on_one_steamid_higher', index=2,
+      number=3, type=6, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='width', full_name='CSteamTV_SetBroadcastChannelLinkRegions_Request_Links.width', index=5,
-      number=6, type=13, cpp_type=3, label=1,
+      name='chatid', full_name='CVoiceChat_VoiceChatEnded_Notification.chatid', index=3,
+      number=4, type=4, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='height', full_name='CSteamTV_SetBroadcastChannelLinkRegions_Request_Links.height', index=6,
-      number=7, type=13, cpp_type=3, label=1,
+      name='chat_group_id', full_name='CVoiceChat_VoiceChatEnded_Notification.chat_group_id', index=4,
+      number=5, type=4, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
@@ -3023,18 +3642,25 @@ _CSTEAMTV_SETBROADCASTCHANNELLINKREGIONS_REQUEST_LINKS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8127,
-  serialized_end=8299,
+  serialized_start=9527,
+  serialized_end=9697,
 )
 
 
-_CSTEAMTV_SETBROADCASTCHANNELLINKREGIONS_RESPONSE = _descriptor.Descriptor(
-  name='CSteamTV_SetBroadcastChannelLinkRegions_Response',
-  full_name='CSteamTV_SetBroadcastChannelLinkRegions_Response',
+_CWEBRTCCLIENT_INITIATEWEBRTCCONNECTION_REQUEST = _descriptor.Descriptor(
+  name='CWebRTCClient_InitiateWebRTCConnection_Request',
+  full_name='CWebRTCClient_InitiateWebRTCConnection_Request',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
+    _descriptor.FieldDescriptor(
+      name='sdp', full_name='CWebRTCClient_InitiateWebRTCConnection_Request.sdp', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -3047,92 +3673,126 @@ _CSTEAMTV_SETBROADCASTCHANNELLINKREGIONS_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8301,
-  serialized_end=8351,
+  serialized_start=9699,
+  serialized_end=9760,
 )
 
 
-_CSTEAMTV_GETBROADCASTCHANNELSTATUS_RESPONSE = _descriptor.Descriptor(
-  name='CSteamTV_GetBroadcastChannelStatus_Response',
-  full_name='CSteamTV_GetBroadcastChannelStatus_Response',
+_CWEBRTCCLIENT_INITIATEWEBRTCCONNECTION_RESPONSE = _descriptor.Descriptor(
+  name='CWebRTCClient_InitiateWebRTCConnection_Response',
+  full_name='CWebRTCClient_InitiateWebRTCConnection_Response',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='is_live', full_name='CSteamTV_GetBroadcastChannelStatus_Response.is_live', index=0,
-      number=1, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
+      name='remote_description', full_name='CWebRTCClient_InitiateWebRTCConnection_Response.remote_description', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=9762,
+  serialized_end=9839,
+)
+
+
+_CWEBRTC_WEBRTCSESSIONCONNECTED_NOTIFICATION = _descriptor.Descriptor(
+  name='CWebRTC_WebRTCSessionConnected_Notification',
+  full_name='CWebRTC_WebRTCSessionConnected_Notification',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
     _descriptor.FieldDescriptor(
-      name='is_disabled', full_name='CSteamTV_GetBroadcastChannelStatus_Response.is_disabled', index=1,
-      number=2, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
+      name='ssrc', full_name='CWebRTC_WebRTCSessionConnected_Notification.ssrc', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='appid', full_name='CSteamTV_GetBroadcastChannelStatus_Response.appid', index=2,
-      number=3, type=13, cpp_type=3, label=1,
+      name='client_ip', full_name='CWebRTC_WebRTCSessionConnected_Notification.client_ip', index=1,
+      number=2, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='viewers', full_name='CSteamTV_GetBroadcastChannelStatus_Response.viewers', index=3,
-      number=4, type=4, cpp_type=4, label=1,
+      name='client_port', full_name='CWebRTC_WebRTCSessionConnected_Notification.client_port', index=2,
+      number=3, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='views', full_name='CSteamTV_GetBroadcastChannelStatus_Response.views', index=4,
-      number=5, type=4, cpp_type=4, label=1,
+      name='server_ip', full_name='CWebRTC_WebRTCSessionConnected_Notification.server_ip', index=3,
+      number=4, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='broadcaster_steamid', full_name='CSteamTV_GetBroadcastChannelStatus_Response.broadcaster_steamid', index=5,
-      number=6, type=6, cpp_type=4, label=1,
+      name='server_port', full_name='CWebRTC_WebRTCSessionConnected_Notification.server_port', index=4,
+      number=5, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=9842,
+  serialized_end=9981,
+)
+
+
+_CWEBRTC_WEBRTCUPDATEREMOTEDESCRIPTION_NOTIFICATION = _descriptor.Descriptor(
+  name='CWebRTC_WebRTCUpdateRemoteDescription_Notification',
+  full_name='CWebRTC_WebRTCUpdateRemoteDescription_Notification',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
     _descriptor.FieldDescriptor(
-      name='thumbnail_url', full_name='CSteamTV_GetBroadcastChannelStatus_Response.thumbnail_url', index=6,
-      number=7, type=9, cpp_type=9, label=1,
+      name='remote_description', full_name='CWebRTC_WebRTCUpdateRemoteDescription_Notification.remote_description', index=0,
+      number=1, type=9, cpp_type=9, label=1,
       has_default_value=False, default_value=_b("").decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='followers', full_name='CSteamTV_GetBroadcastChannelStatus_Response.followers', index=7,
-      number=8, type=4, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='subscribers', full_name='CSteamTV_GetBroadcastChannelStatus_Response.subscribers', index=8,
-      number=9, type=4, cpp_type=4, label=1,
+      name='remote_description_version', full_name='CWebRTC_WebRTCUpdateRemoteDescription_Notification.remote_description_version', index=1,
+      number=2, type=4, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='unique_name', full_name='CSteamTV_GetBroadcastChannelStatus_Response.unique_name', index=9,
-      number=10, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='broadcast_session_id', full_name='CSteamTV_GetBroadcastChannelStatus_Response.broadcast_session_id', index=10,
-      number=11, type=4, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
+      name='ssrcs_to_accountids', full_name='CWebRTC_WebRTCUpdateRemoteDescription_Notification.ssrcs_to_accountids', index=2,
+      number=3, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
@@ -3148,151 +3808,91 @@ _CSTEAMTV_GETBROADCASTCHANNELSTATUS_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8354,
-  serialized_end=8627,
+  serialized_start=9984,
+  serialized_end=10206,
 )
 
 
-_GETBROADCASTCHANNELENTRY = _descriptor.Descriptor(
-  name='GetBroadcastChannelEntry',
-  full_name='GetBroadcastChannelEntry',
+_CWEBRTC_WEBRTCUPDATEREMOTEDESCRIPTION_NOTIFICATION_CSSRCTOACCOUNTIDMAPPING = _descriptor.Descriptor(
+  name='CWebRTC_WebRTCUpdateRemoteDescription_Notification_CSSRCToAccountIDMapping',
+  full_name='CWebRTC_WebRTCUpdateRemoteDescription_Notification_CSSRCToAccountIDMapping',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='broadcast_channel_id', full_name='GetBroadcastChannelEntry.broadcast_channel_id', index=0,
-      number=1, type=6, cpp_type=4, label=1,
+      name='ssrc', full_name='CWebRTC_WebRTCUpdateRemoteDescription_Notification_CSSRCToAccountIDMapping.ssrc', index=0,
+      number=1, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='unique_name', full_name='GetBroadcastChannelEntry.unique_name', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='name', full_name='GetBroadcastChannelEntry.name', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='appid', full_name='GetBroadcastChannelEntry.appid', index=3,
-      number=4, type=13, cpp_type=3, label=1,
+      name='accountid', full_name='CWebRTC_WebRTCUpdateRemoteDescription_Notification_CSSRCToAccountIDMapping.accountid', index=1,
+      number=2, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto2',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=10208,
+  serialized_end=10317,
+)
+
+
+_CWEBRTCCLIENT_ACKNOWLEDGEUPDATEDREMOTEDESCRIPTION_REQUEST = _descriptor.Descriptor(
+  name='CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Request',
+  full_name='CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Request',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
     _descriptor.FieldDescriptor(
-      name='viewers', full_name='GetBroadcastChannelEntry.viewers', index=4,
-      number=5, type=4, cpp_type=4, label=1,
+      name='ip_webrtc_server', full_name='CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Request.ip_webrtc_server', index=0,
+      number=1, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='views', full_name='GetBroadcastChannelEntry.views', index=5,
-      number=6, type=4, cpp_type=4, label=1,
+      name='port_webrtc_server', full_name='CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Request.port_webrtc_server', index=1,
+      number=2, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='thumbnail_url', full_name='GetBroadcastChannelEntry.thumbnail_url', index=6,
-      number=7, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='followers', full_name='GetBroadcastChannelEntry.followers', index=7,
-      number=8, type=4, cpp_type=4, label=1,
+      name='ip_webrtc_session_client', full_name='CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Request.ip_webrtc_session_client', index=2,
+      number=3, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='headline', full_name='GetBroadcastChannelEntry.headline', index=8,
-      number=9, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='avatar_url', full_name='GetBroadcastChannelEntry.avatar_url', index=9,
-      number=10, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='broadcaster_steamid', full_name='GetBroadcastChannelEntry.broadcaster_steamid', index=10,
-      number=11, type=6, cpp_type=4, label=1,
+      name='port_webrtc_session_client', full_name='CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Request.port_webrtc_session_client', index=3,
+      number=4, type=13, cpp_type=3, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='subscribers', full_name='GetBroadcastChannelEntry.subscribers', index=11,
-      number=12, type=4, cpp_type=4, label=1,
+      name='remote_description_version', full_name='CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Request.remote_description_version', index=4,
+      number=5, type=4, cpp_type=4, label=1,
       has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='background_url', full_name='GetBroadcastChannelEntry.background_url', index=12,
-      number=13, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='is_featured', full_name='GetBroadcastChannelEntry.is_featured', index=13,
-      number=14, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='is_disabled', full_name='GetBroadcastChannelEntry.is_disabled', index=14,
-      number=15, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='is_live', full_name='GetBroadcastChannelEntry.is_live', index=15,
-      number=16, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='language', full_name='GetBroadcastChannelEntry.language', index=16,
-      number=17, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='reports', full_name='GetBroadcastChannelEntry.reports', index=17,
-      number=18, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='is_partnered', full_name='GetBroadcastChannelEntry.is_partnered', index=18,
-      number=19, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -3305,25 +3905,18 @@ _GETBROADCASTCHANNELENTRY = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8630,
-  serialized_end=9038,
+  serialized_start=10320,
+  serialized_end=10539,
 )
 
 
-_CSTEAMTV_GETFOLLOWEDCHANNELS_RESPONSE = _descriptor.Descriptor(
-  name='CSteamTV_GetFollowedChannels_Response',
-  full_name='CSteamTV_GetFollowedChannels_Response',
+_CWEBRTCCLIENT_ACKNOWLEDGEUPDATEDREMOTEDESCRIPTION_RESPONSE = _descriptor.Descriptor(
+  name='CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Response',
+  full_name='CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Response',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
-    _descriptor.FieldDescriptor(
-      name='results', full_name='CSteamTV_GetFollowedChannels_Response.results', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -3336,25 +3929,18 @@ _CSTEAMTV_GETFOLLOWEDCHANNELS_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9040,
-  serialized_end=9123,
+  serialized_start=10541,
+  serialized_end=10601,
 )
 
 
-_CSTEAMTV_GETSUBSCRIBEDCHANNELS_RESPONSE = _descriptor.Descriptor(
-  name='CSteamTV_GetSubscribedChannels_Response',
-  full_name='CSteamTV_GetSubscribedChannels_Response',
+_CMOBILEPERACCOUNT_GETSETTINGS_REQUEST = _descriptor.Descriptor(
+  name='CMobilePerAccount_GetSettings_Request',
+  full_name='CMobilePerAccount_GetSettings_Request',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
-    _descriptor.FieldDescriptor(
-      name='results', full_name='CSteamTV_GetSubscribedChannels_Response.results', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -3367,56 +3953,67 @@ _CSTEAMTV_GETSUBSCRIBEDCHANNELS_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9125,
-  serialized_end=9210,
+  serialized_start=10603,
+  serialized_end=10642,
 )
 
 
-_CSTEAMTV_FOLLOWBROADCASTCHANNEL_RESPONSE = _descriptor.Descriptor(
-  name='CSteamTV_FollowBroadcastChannel_Response',
-  full_name='CSteamTV_FollowBroadcastChannel_Response',
+_CMOBILEPERACCOUNT_GETSETTINGS_RESPONSE = _descriptor.Descriptor(
+  name='CMobilePerAccount_GetSettings_Response',
+  full_name='CMobilePerAccount_GetSettings_Response',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='is_followed', full_name='CSteamTV_FollowBroadcastChannel_Response.is_followed', index=0,
-      number=1, type=8, cpp_type=7, label=1,
+      name='has_settings', full_name='CMobilePerAccount_GetSettings_Response.has_settings', index=0,
+      number=4, type=8, cpp_type=7, label=1,
       has_default_value=False, default_value=False,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=9212,
-  serialized_end=9275,
-)
-
-
-_CSTEAMTV_SUBSCRIBEBROADCASTCHANNEL_RESPONSE = _descriptor.Descriptor(
-  name='CSteamTV_SubscribeBroadcastChannel_Response',
-  full_name='CSteamTV_SubscribeBroadcastChannel_Response',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
     _descriptor.FieldDescriptor(
-      name='is_subscribed', full_name='CSteamTV_SubscribeBroadcastChannel_Response.is_subscribed', index=0,
-      number=1, type=8, cpp_type=7, label=1,
+      name='allow_sale_push', full_name='CMobilePerAccount_GetSettings_Response.allow_sale_push', index=1,
+      number=2, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='allow_wishlist_push', full_name='CMobilePerAccount_GetSettings_Response.allow_wishlist_push', index=2,
+      number=3, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='chat_notification_level', full_name='CMobilePerAccount_GetSettings_Response.chat_notification_level', index=3,
+      number=5, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='notify_direct_chat', full_name='CMobilePerAccount_GetSettings_Response.notify_direct_chat', index=4,
+      number=6, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='notify_group_chat', full_name='CMobilePerAccount_GetSettings_Response.notify_group_chat', index=5,
+      number=7, type=8, cpp_type=7, label=1,
       has_default_value=False, default_value=False,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='allow_event_push', full_name='CMobilePerAccount_GetSettings_Response.allow_event_push', index=6,
+      number=8, type=8, cpp_type=7, label=1,
+      has_default_value=True, default_value=True,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -3429,18 +4026,60 @@ _CSTEAMTV_SUBSCRIBEBROADCASTCHANNEL_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9277,
-  serialized_end=9345,
+  serialized_start=10645,
+  serialized_end=10881,
 )
 
 
-_CSTEAMTV_REPORTBROADCASTCHANNEL_RESPONSE = _descriptor.Descriptor(
-  name='CSteamTV_ReportBroadcastChannel_Response',
-  full_name='CSteamTV_ReportBroadcastChannel_Response',
+_CMOBILEPERACCOUNT_SETSETTINGS_REQUEST = _descriptor.Descriptor(
+  name='CMobilePerAccount_SetSettings_Request',
+  full_name='CMobilePerAccount_SetSettings_Request',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
+    _descriptor.FieldDescriptor(
+      name='allow_sale_push', full_name='CMobilePerAccount_SetSettings_Request.allow_sale_push', index=0,
+      number=2, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='allow_wishlist_push', full_name='CMobilePerAccount_SetSettings_Request.allow_wishlist_push', index=1,
+      number=3, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='chat_notification_level', full_name='CMobilePerAccount_SetSettings_Request.chat_notification_level', index=2,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='notify_direct_chat', full_name='CMobilePerAccount_SetSettings_Request.notify_direct_chat', index=3,
+      number=5, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='notify_group_chat', full_name='CMobilePerAccount_SetSettings_Request.notify_group_chat', index=4,
+      number=6, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='allow_event_push', full_name='CMobilePerAccount_SetSettings_Request.allow_event_push', index=5,
+      number=7, type=8, cpp_type=7, label=1,
+      has_default_value=True, default_value=True,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -3453,32 +4092,18 @@ _CSTEAMTV_REPORTBROADCASTCHANNEL_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9347,
-  serialized_end=9389,
+  serialized_start=10884,
+  serialized_end=11097,
 )
 
 
-_CSTEAMTV_GETBROADCASTCHANNELINTERACTION_RESPONSE = _descriptor.Descriptor(
-  name='CSteamTV_GetBroadcastChannelInteraction_Response',
-  full_name='CSteamTV_GetBroadcastChannelInteraction_Response',
+_CMOBILEPERACCOUNT_SETSETTINGS_RESPONSE = _descriptor.Descriptor(
+  name='CMobilePerAccount_SetSettings_Response',
+  full_name='CMobilePerAccount_SetSettings_Response',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
-    _descriptor.FieldDescriptor(
-      name='is_followed', full_name='CSteamTV_GetBroadcastChannelInteraction_Response.is_followed', index=0,
-      number=1, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='is_subscribed', full_name='CSteamTV_GetBroadcastChannelInteraction_Response.is_subscribed', index=1,
-      number=2, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -3491,105 +4116,74 @@ _CSTEAMTV_GETBROADCASTCHANNELINTERACTION_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9391,
-  serialized_end=9485,
+  serialized_start=11099,
+  serialized_end=11139,
 )
 
 
-_CSTEAMTV_GAME = _descriptor.Descriptor(
-  name='CSteamTV_Game',
-  full_name='CSteamTV_Game',
+_CMOBILEDEVICE_REGISTERMOBILEDEVICE_REQUEST = _descriptor.Descriptor(
+  name='CMobileDevice_RegisterMobileDevice_Request',
+  full_name='CMobileDevice_RegisterMobileDevice_Request',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='appid', full_name='CSteamTV_Game.appid', index=0,
-      number=1, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
+      name='deviceid', full_name='CMobileDevice_RegisterMobileDevice_Request.deviceid', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='name', full_name='CSteamTV_Game.name', index=1,
+      name='language', full_name='CMobileDevice_RegisterMobileDevice_Request.language', index=1,
       number=2, type=9, cpp_type=9, label=1,
       has_default_value=False, default_value=_b("").decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='image', full_name='CSteamTV_Game.image', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
+      name='push_enabled', full_name='CMobileDevice_RegisterMobileDevice_Request.push_enabled', index=2,
+      number=3, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='viewers', full_name='CSteamTV_Game.viewers', index=3,
-      number=4, type=4, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
+      name='app_version', full_name='CMobileDevice_RegisterMobileDevice_Request.app_version', index=3,
+      number=4, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='channels', full_name='CSteamTV_Game.channels', index=4,
-      number=5, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
+      name='os_version', full_name='CMobileDevice_RegisterMobileDevice_Request.os_version', index=4,
+      number=5, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='release_date', full_name='CSteamTV_Game.release_date', index=5,
+      name='device_model', full_name='CMobileDevice_RegisterMobileDevice_Request.device_model', index=5,
       number=6, type=9, cpp_type=9, label=1,
       has_default_value=False, default_value=_b("").decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='developer', full_name='CSteamTV_Game.developer', index=6,
+      name='twofactor_device_identifier', full_name='CMobileDevice_RegisterMobileDevice_Request.twofactor_device_identifier', index=6,
       number=7, type=9, cpp_type=9, label=1,
       has_default_value=False, default_value=_b("").decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='publisher', full_name='CSteamTV_Game.publisher', index=7,
-      number=8, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=9488,
-  serialized_end=9669,
-)
-
-
-_CSTEAMTV_GETGAMES_RESPONSE = _descriptor.Descriptor(
-  name='CSteamTV_GetGames_Response',
-  full_name='CSteamTV_GetGames_Response',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='results', full_name='CSteamTV_GetGames_Response.results', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
+      name='mobile_app', full_name='CMobileDevice_RegisterMobileDevice_Request.mobile_app', index=7,
+      number=8, type=5, cpp_type=1, label=1,
+      has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
+      serialized_options=_b('\202\265\030 enum; suggested type: EMobileApp'), file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -3602,22 +4196,22 @@ _CSTEAMTV_GETGAMES_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9671,
-  serialized_end=9732,
+  serialized_start=11142,
+  serialized_end=11402,
 )
 
 
-_CSTEAMTV_GETCHANNELS_RESPONSE = _descriptor.Descriptor(
-  name='CSteamTV_GetChannels_Response',
-  full_name='CSteamTV_GetChannels_Response',
+_CMOBILEDEVICE_REGISTERMOBILEDEVICE_RESPONSE = _descriptor.Descriptor(
+  name='CMobileDevice_RegisterMobileDevice_Response',
+  full_name='CMobileDevice_RegisterMobileDevice_Response',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='results', full_name='CSteamTV_GetChannels_Response.results', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
+      name='unique_deviceid', full_name='CMobileDevice_RegisterMobileDevice_Response.unique_deviceid', index=0,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
@@ -3633,22 +4227,22 @@ _CSTEAMTV_GETCHANNELS_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9734,
-  serialized_end=9809,
+  serialized_start=11404,
+  serialized_end=11474,
 )
 
 
-_CSTEAMTV_GETBROADCASTCHANNELBROADCASTERS_RESPONSE = _descriptor.Descriptor(
-  name='CSteamTV_GetBroadcastChannelBroadcasters_Response',
-  full_name='CSteamTV_GetBroadcastChannelBroadcasters_Response',
+_CMOBILEDEVICE_DEREGISTERMOBILEDEVICE_NOTIFICATION = _descriptor.Descriptor(
+  name='CMobileDevice_DeregisterMobileDevice_Notification',
+  full_name='CMobileDevice_DeregisterMobileDevice_Notification',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
     _descriptor.FieldDescriptor(
-      name='broadcasters', full_name='CSteamTV_GetBroadcastChannelBroadcasters_Response.broadcasters', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
+      name='deviceid', full_name='CMobileDevice_DeregisterMobileDevice_Notification.deviceid', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR),
@@ -3664,39 +4258,18 @@ _CSTEAMTV_GETBROADCASTCHANNELBROADCASTERS_RESPONSE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9812,
-  serialized_end=9949,
+  serialized_start=11476,
+  serialized_end=11545,
 )
 
 
-_CSTEAMTV_GETBROADCASTCHANNELBROADCASTERS_RESPONSE_BROADCASTER = _descriptor.Descriptor(
-  name='CSteamTV_GetBroadcastChannelBroadcasters_Response_Broadcaster',
-  full_name='CSteamTV_GetBroadcastChannelBroadcasters_Response_Broadcaster',
+_UNKNOWNPROTO = _descriptor.Descriptor(
+  name='UnknownProto',
+  full_name='UnknownProto',
   filename=None,
   file=DESCRIPTOR,
   containing_type=None,
   fields=[
-    _descriptor.FieldDescriptor(
-      name='steamid', full_name='CSteamTV_GetBroadcastChannelBroadcasters_Response_Broadcaster.steamid', index=0,
-      number=1, type=6, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='name', full_name='CSteamTV_GetBroadcastChannelBroadcasters_Response_Broadcaster.name', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='rtmp_token', full_name='CSteamTV_GetBroadcastChannelBroadcasters_Response_Broadcaster.rtmp_token', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
@@ -3709,3633 +4282,1461 @@ _CSTEAMTV_GETBROADCASTCHANNELBROADCASTERS_RESPONSE_BROADCASTER = _descriptor.Des
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=9951,
-  serialized_end=10065,
+  serialized_start=11547,
+  serialized_end=11561,
 )
 
+_CMSGCLIENTAPPMINUTESPLAYEDDATA.fields_by_name['minutes_played'].message_type = _CMSGCLIENTAPPMINUTESPLAYEDDATA_APPMINUTESPLAYEDDATA
+_CCOMMUNITY_GETAPPS_RESPONSE.fields_by_name['apps'].message_type = steammessages__base__pb2._CCDDBAPPDETAILCOMMON
+_CCOMMUNITY_GETAPPRICHPRESENCELOCALIZATION_RESPONSE.fields_by_name['token_lists'].message_type = _CCOMMUNITY_GETAPPRICHPRESENCELOCALIZATION_RESPONSE_TOKENLIST
+_CCOMMUNITY_GETAPPRICHPRESENCELOCALIZATION_RESPONSE_TOKENLIST.fields_by_name['tokens'].message_type = _CCOMMUNITY_GETAPPRICHPRESENCELOCALIZATION_RESPONSE_TOKEN
+_CCOMMUNITY_COMMENT.fields_by_name['ipaddress'].message_type = steammessages__base__pb2._CMSGIPADDRESS
+_CCOMMUNITY_GETCOMMENTTHREAD_RESPONSE.fields_by_name['comments'].message_type = _CCOMMUNITY_COMMENT
+_CCOMMUNITY_GETCOMMENTTHREAD_RESPONSE.fields_by_name['deleted_comments'].message_type = _CCOMMUNITY_COMMENT
+_CCOMMUNITY_GETUSERPARTNEREVENTNEWS_REQUEST.fields_by_name['app_list'].message_type = _CAPPPRIORITY
+_CCOMMUNITY_GETUSERPARTNEREVENTNEWS_RESPONSE.fields_by_name['results'].message_type = steammessages__base__pb2._CCLANMATCHEVENTBYRANGE
+_CCOMMUNITY_GETBESTEVENTSFORUSER_RESPONSE.fields_by_name['results'].message_type = _CCOMMUNITY_PARTNEREVENTRESULT
+_CCOMMUNITY_GETUSERPARTNEREVENTSAPPPRIORITIES_RESPONSE.fields_by_name['priorities'].message_type = _CCOMMUNITY_PARTNEREVENTSAPPPRIORITY
+_CCOMMUNITY_MARKPARTNEREVENTSFORUSER_REQUEST.fields_by_name['markings'].message_type = _CCOMMUNITY_MARKPARTNEREVENTSFORUSER_REQUEST_PARTNEREVENTMARKING
+_CPRODUCTIMPRESSIONSFROMCLIENT_NOTIFICATION.fields_by_name['impressions'].message_type = _CPRODUCTIMPRESSIONSFROMCLIENT_NOTIFICATION_IMPRESSION
+_CFRIENDSLIST_GETCATEGORIES_RESPONSE.fields_by_name['categories'].message_type = _CFRIENDSLISTCATEGORY
+_CFRIENDSLIST_GETFAVORITES_RESPONSE.fields_by_name['favorites'].message_type = _CFRIENDSLISTFAVORITEENTRY
+_CFRIENDSLIST_SETFAVORITES_REQUEST.fields_by_name['favorites'].message_type = _CFRIENDSLISTFAVORITEENTRY
+_CFRIENDSLIST_FAVORITESCHANGED_NOTIFICATION.fields_by_name['favorites'].message_type = _CFRIENDSLISTFAVORITEENTRY
+_CFRIENDSLIST_GETFRIENDSLIST_RESPONSE.fields_by_name['friendslist'].message_type = steammessages__clientserver__friends__pb2._CMSGCLIENTFRIENDSLIST
+_CMSGCREENUMERATEPUBLISHEDFILESRESPONSE.fields_by_name['published_files'].message_type = _CMSGCREENUMERATEPUBLISHEDFILESRESPONSE_PUBLISHEDFILEID
+_CVOICECHAT_ALLMEMBERSSTATUS_NOTIFICATION.fields_by_name['users'].message_type = _CVOICECHAT_USERVOICESTATUS_NOTIFICATION
+_CWEBRTC_WEBRTCUPDATEREMOTEDESCRIPTION_NOTIFICATION.fields_by_name['ssrcs_to_accountids'].message_type = _CWEBRTC_WEBRTCUPDATEREMOTEDESCRIPTION_NOTIFICATION_CSSRCTOACCOUNTIDMAPPING
+DESCRIPTOR.message_types_by_name['CHelpRequestLogs_UploadUserApplicationLog_Request'] = _CHELPREQUESTLOGS_UPLOADUSERAPPLICATIONLOG_REQUEST
+DESCRIPTOR.message_types_by_name['CHelpRequestLogs_UploadUserApplicationLog_Response'] = _CHELPREQUESTLOGS_UPLOADUSERAPPLICATIONLOG_RESPONSE
+DESCRIPTOR.message_types_by_name['CMsgClientAppMinutesPlayedData'] = _CMSGCLIENTAPPMINUTESPLAYEDDATA
+DESCRIPTOR.message_types_by_name['CMsgClientAppMinutesPlayedData_AppMinutesPlayedData'] = _CMSGCLIENTAPPMINUTESPLAYEDDATA_APPMINUTESPLAYEDDATA
+DESCRIPTOR.message_types_by_name['CCommunity_GetApps_Request'] = _CCOMMUNITY_GETAPPS_REQUEST
+DESCRIPTOR.message_types_by_name['CCommunity_GetApps_Response'] = _CCOMMUNITY_GETAPPS_RESPONSE
+DESCRIPTOR.message_types_by_name['CCommunity_GetAppRichPresenceLocalization_Request'] = _CCOMMUNITY_GETAPPRICHPRESENCELOCALIZATION_REQUEST
+DESCRIPTOR.message_types_by_name['CCommunity_GetAppRichPresenceLocalization_Response'] = _CCOMMUNITY_GETAPPRICHPRESENCELOCALIZATION_RESPONSE
+DESCRIPTOR.message_types_by_name['CCommunity_GetAppRichPresenceLocalization_Response_Token'] = _CCOMMUNITY_GETAPPRICHPRESENCELOCALIZATION_RESPONSE_TOKEN
+DESCRIPTOR.message_types_by_name['CCommunity_GetAppRichPresenceLocalization_Response_TokenList'] = _CCOMMUNITY_GETAPPRICHPRESENCELOCALIZATION_RESPONSE_TOKENLIST
+DESCRIPTOR.message_types_by_name['CCommunity_GetCommentThread_Request'] = _CCOMMUNITY_GETCOMMENTTHREAD_REQUEST
+DESCRIPTOR.message_types_by_name['CCommunity_Comment'] = _CCOMMUNITY_COMMENT
+DESCRIPTOR.message_types_by_name['CCommunity_GetCommentThread_Response'] = _CCOMMUNITY_GETCOMMENTTHREAD_RESPONSE
+DESCRIPTOR.message_types_by_name['CCommunity_PostCommentToThread_Request'] = _CCOMMUNITY_POSTCOMMENTTOTHREAD_REQUEST
+DESCRIPTOR.message_types_by_name['CCommunity_PostCommentToThread_Response'] = _CCOMMUNITY_POSTCOMMENTTOTHREAD_RESPONSE
+DESCRIPTOR.message_types_by_name['CCommunity_DeleteCommentFromThread_Request'] = _CCOMMUNITY_DELETECOMMENTFROMTHREAD_REQUEST
+DESCRIPTOR.message_types_by_name['CCommunity_DeleteCommentFromThread_Response'] = _CCOMMUNITY_DELETECOMMENTFROMTHREAD_RESPONSE
+DESCRIPTOR.message_types_by_name['CCommunity_RateCommentThread_Request'] = _CCOMMUNITY_RATECOMMENTTHREAD_REQUEST
+DESCRIPTOR.message_types_by_name['CCommunity_RateCommentThread_Response'] = _CCOMMUNITY_RATECOMMENTTHREAD_RESPONSE
+DESCRIPTOR.message_types_by_name['CCommunity_GetCommentThreadRatings_Request'] = _CCOMMUNITY_GETCOMMENTTHREADRATINGS_REQUEST
+DESCRIPTOR.message_types_by_name['CCommunity_GetCommentThreadRatings_Response'] = _CCOMMUNITY_GETCOMMENTTHREADRATINGS_RESPONSE
+DESCRIPTOR.message_types_by_name['CCommunity_RateClanAnnouncement_Request'] = _CCOMMUNITY_RATECLANANNOUNCEMENT_REQUEST
+DESCRIPTOR.message_types_by_name['CCommunity_RateClanAnnouncement_Response'] = _CCOMMUNITY_RATECLANANNOUNCEMENT_RESPONSE
+DESCRIPTOR.message_types_by_name['CCommunity_GetClanAnnouncementVoteForUser_Request'] = _CCOMMUNITY_GETCLANANNOUNCEMENTVOTEFORUSER_REQUEST
+DESCRIPTOR.message_types_by_name['CCommunity_GetClanAnnouncementVoteForUser_Response'] = _CCOMMUNITY_GETCLANANNOUNCEMENTVOTEFORUSER_RESPONSE
+DESCRIPTOR.message_types_by_name['CAppPriority'] = _CAPPPRIORITY
+DESCRIPTOR.message_types_by_name['CCommunity_GetUserPartnerEventNews_Request'] = _CCOMMUNITY_GETUSERPARTNEREVENTNEWS_REQUEST
+DESCRIPTOR.message_types_by_name['CCommunity_GetUserPartnerEventNews_Response'] = _CCOMMUNITY_GETUSERPARTNEREVENTNEWS_RESPONSE
+DESCRIPTOR.message_types_by_name['CCommunity_GetBestEventsForUser_Request'] = _CCOMMUNITY_GETBESTEVENTSFORUSER_REQUEST
+DESCRIPTOR.message_types_by_name['CCommunity_PartnerEventResult'] = _CCOMMUNITY_PARTNEREVENTRESULT
+DESCRIPTOR.message_types_by_name['CCommunity_GetBestEventsForUser_Response'] = _CCOMMUNITY_GETBESTEVENTSFORUSER_RESPONSE
+DESCRIPTOR.message_types_by_name['CCommunity_ClearUserPartnerEventsAppPriorities_Request'] = _CCOMMUNITY_CLEARUSERPARTNEREVENTSAPPPRIORITIES_REQUEST
+DESCRIPTOR.message_types_by_name['CCommunity_ClearUserPartnerEventsAppPriorities_Response'] = _CCOMMUNITY_CLEARUSERPARTNEREVENTSAPPPRIORITIES_RESPONSE
+DESCRIPTOR.message_types_by_name['CCommunity_PartnerEventsAppPriority'] = _CCOMMUNITY_PARTNEREVENTSAPPPRIORITY
+DESCRIPTOR.message_types_by_name['CCommunity_GetUserPartnerEventsAppPriorities_Request'] = _CCOMMUNITY_GETUSERPARTNEREVENTSAPPPRIORITIES_REQUEST
+DESCRIPTOR.message_types_by_name['CCommunity_GetUserPartnerEventsAppPriorities_Response'] = _CCOMMUNITY_GETUSERPARTNEREVENTSAPPPRIORITIES_RESPONSE
+DESCRIPTOR.message_types_by_name['CCommunity_ClearSinglePartnerEventsAppPriority_Request'] = _CCOMMUNITY_CLEARSINGLEPARTNEREVENTSAPPPRIORITY_REQUEST
+DESCRIPTOR.message_types_by_name['CCommunity_ClearSinglePartnerEventsAppPriority_Response'] = _CCOMMUNITY_CLEARSINGLEPARTNEREVENTSAPPPRIORITY_RESPONSE
+DESCRIPTOR.message_types_by_name['CCommunity_PartnerEventsShowMoreForApp_Request'] = _CCOMMUNITY_PARTNEREVENTSSHOWMOREFORAPP_REQUEST
+DESCRIPTOR.message_types_by_name['CCommunity_PartnerEventsShowMoreForApp_Response'] = _CCOMMUNITY_PARTNEREVENTSSHOWMOREFORAPP_RESPONSE
+DESCRIPTOR.message_types_by_name['CCommunity_PartnerEventsShowLessForApp_Request'] = _CCOMMUNITY_PARTNEREVENTSSHOWLESSFORAPP_REQUEST
+DESCRIPTOR.message_types_by_name['CCommunity_PartnerEventsShowLessForApp_Response'] = _CCOMMUNITY_PARTNEREVENTSSHOWLESSFORAPP_RESPONSE
+DESCRIPTOR.message_types_by_name['CCommunity_MarkPartnerEventsForUser_Request'] = _CCOMMUNITY_MARKPARTNEREVENTSFORUSER_REQUEST
+DESCRIPTOR.message_types_by_name['CCommunity_MarkPartnerEventsForUser_Request_PartnerEventMarking'] = _CCOMMUNITY_MARKPARTNEREVENTSFORUSER_REQUEST_PARTNEREVENTMARKING
+DESCRIPTOR.message_types_by_name['CCommunity_MarkPartnerEventsForUser_Response'] = _CCOMMUNITY_MARKPARTNEREVENTSFORUSER_RESPONSE
+DESCRIPTOR.message_types_by_name['CProductImpressionsFromClient_Notification'] = _CPRODUCTIMPRESSIONSFROMCLIENT_NOTIFICATION
+DESCRIPTOR.message_types_by_name['CProductImpressionsFromClient_Notification_Impression'] = _CPRODUCTIMPRESSIONSFROMCLIENT_NOTIFICATION_IMPRESSION
+DESCRIPTOR.message_types_by_name['CFriendsListCategory'] = _CFRIENDSLISTCATEGORY
+DESCRIPTOR.message_types_by_name['CFriendsList_GetCategories_Request'] = _CFRIENDSLIST_GETCATEGORIES_REQUEST
+DESCRIPTOR.message_types_by_name['CFriendsList_GetCategories_Response'] = _CFRIENDSLIST_GETCATEGORIES_RESPONSE
+DESCRIPTOR.message_types_by_name['CFriendsListFavoriteEntry'] = _CFRIENDSLISTFAVORITEENTRY
+DESCRIPTOR.message_types_by_name['CFriendsList_GetFavorites_Request'] = _CFRIENDSLIST_GETFAVORITES_REQUEST
+DESCRIPTOR.message_types_by_name['CFriendsList_GetFavorites_Response'] = _CFRIENDSLIST_GETFAVORITES_RESPONSE
+DESCRIPTOR.message_types_by_name['CFriendsList_SetFavorites_Request'] = _CFRIENDSLIST_SETFAVORITES_REQUEST
+DESCRIPTOR.message_types_by_name['CFriendsList_SetFavorites_Response'] = _CFRIENDSLIST_SETFAVORITES_RESPONSE
+DESCRIPTOR.message_types_by_name['CFriendsList_FavoritesChanged_Notification'] = _CFRIENDSLIST_FAVORITESCHANGED_NOTIFICATION
+DESCRIPTOR.message_types_by_name['CFriendsList_GetFriendsList_Request'] = _CFRIENDSLIST_GETFRIENDSLIST_REQUEST
+DESCRIPTOR.message_types_by_name['CFriendsList_GetFriendsList_Response'] = _CFRIENDSLIST_GETFRIENDSLIST_RESPONSE
+DESCRIPTOR.message_types_by_name['CMsgClientUCMPublishedFileDeleted'] = _CMSGCLIENTUCMPUBLISHEDFILEDELETED
+DESCRIPTOR.message_types_by_name['CMsgCREEnumeratePublishedFiles'] = _CMSGCREENUMERATEPUBLISHEDFILES
+DESCRIPTOR.message_types_by_name['CMsgCREEnumeratePublishedFilesResponse'] = _CMSGCREENUMERATEPUBLISHEDFILESRESPONSE
+DESCRIPTOR.message_types_by_name['CMsgCREEnumeratePublishedFilesResponse_PublishedFileId'] = _CMSGCREENUMERATEPUBLISHEDFILESRESPONSE_PUBLISHEDFILEID
+DESCRIPTOR.message_types_by_name['CClan_RespondToClanInvite_Request'] = _CCLAN_RESPONDTOCLANINVITE_REQUEST
+DESCRIPTOR.message_types_by_name['CClan_RespondToClanInvite_Response'] = _CCLAN_RESPONDTOCLANINVITE_RESPONSE
+DESCRIPTOR.message_types_by_name['CVoiceChat_RequestOneOnOneChat_Request'] = _CVOICECHAT_REQUESTONEONONECHAT_REQUEST
+DESCRIPTOR.message_types_by_name['CVoiceChat_RequestOneOnOneChat_Response'] = _CVOICECHAT_REQUESTONEONONECHAT_RESPONSE
+DESCRIPTOR.message_types_by_name['CVoiceChat_OneOnOneChatRequested_Notification'] = _CVOICECHAT_ONEONONECHATREQUESTED_NOTIFICATION
+DESCRIPTOR.message_types_by_name['CVoiceChat_AnswerOneOnOneChat_Request'] = _CVOICECHAT_ANSWERONEONONECHAT_REQUEST
+DESCRIPTOR.message_types_by_name['CVoiceChat_AnswerOneOnOneChat_Response'] = _CVOICECHAT_ANSWERONEONONECHAT_RESPONSE
+DESCRIPTOR.message_types_by_name['CVoiceChat_OneOnOneChatRequestResponse_Notification'] = _CVOICECHAT_ONEONONECHATREQUESTRESPONSE_NOTIFICATION
+DESCRIPTOR.message_types_by_name['CVoiceChat_EndOneOnOneChat_Request'] = _CVOICECHAT_ENDONEONONECHAT_REQUEST
+DESCRIPTOR.message_types_by_name['CVoiceChat_EndOneOnOneChat_Response'] = _CVOICECHAT_ENDONEONONECHAT_RESPONSE
+DESCRIPTOR.message_types_by_name['CVoiceChat_LeaveOneOnOneChat_Request'] = _CVOICECHAT_LEAVEONEONONECHAT_REQUEST
+DESCRIPTOR.message_types_by_name['CVoiceChat_LeaveOneOnOneChat_Response'] = _CVOICECHAT_LEAVEONEONONECHAT_RESPONSE
+DESCRIPTOR.message_types_by_name['CVoiceChat_UserJoinedVoiceChat_Notification'] = _CVOICECHAT_USERJOINEDVOICECHAT_NOTIFICATION
+DESCRIPTOR.message_types_by_name['CVoiceChat_UserVoiceStatus_Notification'] = _CVOICECHAT_USERVOICESTATUS_NOTIFICATION
+DESCRIPTOR.message_types_by_name['CVoiceChat_AllMembersStatus_Notification'] = _CVOICECHAT_ALLMEMBERSSTATUS_NOTIFICATION
+DESCRIPTOR.message_types_by_name['CVoiceChat_UpdateVoiceChatWebRTCData_Request'] = _CVOICECHAT_UPDATEVOICECHATWEBRTCDATA_REQUEST
+DESCRIPTOR.message_types_by_name['CVoiceChat_UpdateVoiceChatWebRTCData_Response'] = _CVOICECHAT_UPDATEVOICECHATWEBRTCDATA_RESPONSE
+DESCRIPTOR.message_types_by_name['CVoiceChat_UploadClientVoiceChatLogs_Request'] = _CVOICECHAT_UPLOADCLIENTVOICECHATLOGS_REQUEST
+DESCRIPTOR.message_types_by_name['CVoiceChat_UploadClientVoiceChatLogs_Response'] = _CVOICECHAT_UPLOADCLIENTVOICECHATLOGS_RESPONSE
+DESCRIPTOR.message_types_by_name['CVoiceChat_LeaveVoiceChat_Request'] = _CVOICECHAT_LEAVEVOICECHAT_REQUEST
+DESCRIPTOR.message_types_by_name['CVoiceChat_LeaveVoiceChat_Response'] = _CVOICECHAT_LEAVEVOICECHAT_RESPONSE
+DESCRIPTOR.message_types_by_name['CVoiceChat_UserLeftVoiceChat_Notification'] = _CVOICECHAT_USERLEFTVOICECHAT_NOTIFICATION
+DESCRIPTOR.message_types_by_name['CVoiceChat_VoiceChatEnded_Notification'] = _CVOICECHAT_VOICECHATENDED_NOTIFICATION
+DESCRIPTOR.message_types_by_name['CWebRTCClient_InitiateWebRTCConnection_Request'] = _CWEBRTCCLIENT_INITIATEWEBRTCCONNECTION_REQUEST
+DESCRIPTOR.message_types_by_name['CWebRTCClient_InitiateWebRTCConnection_Response'] = _CWEBRTCCLIENT_INITIATEWEBRTCCONNECTION_RESPONSE
+DESCRIPTOR.message_types_by_name['CWebRTC_WebRTCSessionConnected_Notification'] = _CWEBRTC_WEBRTCSESSIONCONNECTED_NOTIFICATION
+DESCRIPTOR.message_types_by_name['CWebRTC_WebRTCUpdateRemoteDescription_Notification'] = _CWEBRTC_WEBRTCUPDATEREMOTEDESCRIPTION_NOTIFICATION
+DESCRIPTOR.message_types_by_name['CWebRTC_WebRTCUpdateRemoteDescription_Notification_CSSRCToAccountIDMapping'] = _CWEBRTC_WEBRTCUPDATEREMOTEDESCRIPTION_NOTIFICATION_CSSRCTOACCOUNTIDMAPPING
+DESCRIPTOR.message_types_by_name['CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Request'] = _CWEBRTCCLIENT_ACKNOWLEDGEUPDATEDREMOTEDESCRIPTION_REQUEST
+DESCRIPTOR.message_types_by_name['CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Response'] = _CWEBRTCCLIENT_ACKNOWLEDGEUPDATEDREMOTEDESCRIPTION_RESPONSE
+DESCRIPTOR.message_types_by_name['CMobilePerAccount_GetSettings_Request'] = _CMOBILEPERACCOUNT_GETSETTINGS_REQUEST
+DESCRIPTOR.message_types_by_name['CMobilePerAccount_GetSettings_Response'] = _CMOBILEPERACCOUNT_GETSETTINGS_RESPONSE
+DESCRIPTOR.message_types_by_name['CMobilePerAccount_SetSettings_Request'] = _CMOBILEPERACCOUNT_SETSETTINGS_REQUEST
+DESCRIPTOR.message_types_by_name['CMobilePerAccount_SetSettings_Response'] = _CMOBILEPERACCOUNT_SETSETTINGS_RESPONSE
+DESCRIPTOR.message_types_by_name['CMobileDevice_RegisterMobileDevice_Request'] = _CMOBILEDEVICE_REGISTERMOBILEDEVICE_REQUEST
+DESCRIPTOR.message_types_by_name['CMobileDevice_RegisterMobileDevice_Response'] = _CMOBILEDEVICE_REGISTERMOBILEDEVICE_RESPONSE
+DESCRIPTOR.message_types_by_name['CMobileDevice_DeregisterMobileDevice_Notification'] = _CMOBILEDEVICE_DEREGISTERMOBILEDEVICE_NOTIFICATION
+DESCRIPTOR.message_types_by_name['UnknownProto'] = _UNKNOWNPROTO
+_sym_db.RegisterFileDescriptor(DESCRIPTOR)
 
-_CSTEAMTV_CHATBAN = _descriptor.Descriptor(
-  name='CSteamTV_ChatBan',
-  full_name='CSteamTV_ChatBan',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='issuer_steamid', full_name='CSteamTV_ChatBan.issuer_steamid', index=0,
-      number=1, type=6, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='chatter_steamid', full_name='CSteamTV_ChatBan.chatter_steamid', index=1,
-      number=2, type=6, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='time_expires', full_name='CSteamTV_ChatBan.time_expires', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='permanent', full_name='CSteamTV_ChatBan.permanent', index=3,
-      number=4, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='name', full_name='CSteamTV_ChatBan.name', index=4,
-      number=5, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=10067,
-  serialized_end=10189,
-)
-
+CHelpRequestLogs_UploadUserApplicationLog_Request = _reflection.GeneratedProtocolMessageType('CHelpRequestLogs_UploadUserApplicationLog_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CHELPREQUESTLOGS_UPLOADUSERAPPLICATIONLOG_REQUEST,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CHelpRequestLogs_UploadUserApplicationLog_Request)
+  ))
+_sym_db.RegisterMessage(CHelpRequestLogs_UploadUserApplicationLog_Request)
 
-_CSTEAMTV_ADDCHATBAN_REQUEST = _descriptor.Descriptor(
-  name='CSteamTV_AddChatBan_Request',
-  full_name='CSteamTV_AddChatBan_Request',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='broadcast_channel_id', full_name='CSteamTV_AddChatBan_Request.broadcast_channel_id', index=0,
-      number=1, type=6, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='chatter_steamid', full_name='CSteamTV_AddChatBan_Request.chatter_steamid', index=1,
-      number=2, type=6, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='duration', full_name='CSteamTV_AddChatBan_Request.duration', index=2,
-      number=3, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='permanent', full_name='CSteamTV_AddChatBan_Request.permanent', index=3,
-      number=4, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='undo', full_name='CSteamTV_AddChatBan_Request.undo', index=4,
-      number=5, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=10192,
-  serialized_end=10327,
-)
+CHelpRequestLogs_UploadUserApplicationLog_Response = _reflection.GeneratedProtocolMessageType('CHelpRequestLogs_UploadUserApplicationLog_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CHELPREQUESTLOGS_UPLOADUSERAPPLICATIONLOG_RESPONSE,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CHelpRequestLogs_UploadUserApplicationLog_Response)
+  ))
+_sym_db.RegisterMessage(CHelpRequestLogs_UploadUserApplicationLog_Response)
 
+CMsgClientAppMinutesPlayedData = _reflection.GeneratedProtocolMessageType('CMsgClientAppMinutesPlayedData', (_message.Message,), dict(
+  DESCRIPTOR = _CMSGCLIENTAPPMINUTESPLAYEDDATA,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CMsgClientAppMinutesPlayedData)
+  ))
+_sym_db.RegisterMessage(CMsgClientAppMinutesPlayedData)
 
-_CSTEAMTV_ADDCHATBAN_RESPONSE = _descriptor.Descriptor(
-  name='CSteamTV_AddChatBan_Response',
-  full_name='CSteamTV_AddChatBan_Response',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=10329,
-  serialized_end=10359,
-)
+CMsgClientAppMinutesPlayedData_AppMinutesPlayedData = _reflection.GeneratedProtocolMessageType('CMsgClientAppMinutesPlayedData_AppMinutesPlayedData', (_message.Message,), dict(
+  DESCRIPTOR = _CMSGCLIENTAPPMINUTESPLAYEDDATA_APPMINUTESPLAYEDDATA,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CMsgClientAppMinutesPlayedData_AppMinutesPlayedData)
+  ))
+_sym_db.RegisterMessage(CMsgClientAppMinutesPlayedData_AppMinutesPlayedData)
 
+CCommunity_GetApps_Request = _reflection.GeneratedProtocolMessageType('CCommunity_GetApps_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_GETAPPS_REQUEST,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_GetApps_Request)
+  ))
+_sym_db.RegisterMessage(CCommunity_GetApps_Request)
 
-_CSTEAMTV_GETCHATBANS_RESPONSE = _descriptor.Descriptor(
-  name='CSteamTV_GetChatBans_Response',
-  full_name='CSteamTV_GetChatBans_Response',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='results', full_name='CSteamTV_GetChatBans_Response.results', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=10361,
-  serialized_end=10428,
-)
+CCommunity_GetApps_Response = _reflection.GeneratedProtocolMessageType('CCommunity_GetApps_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_GETAPPS_RESPONSE,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_GetApps_Response)
+  ))
+_sym_db.RegisterMessage(CCommunity_GetApps_Response)
 
+CCommunity_GetAppRichPresenceLocalization_Request = _reflection.GeneratedProtocolMessageType('CCommunity_GetAppRichPresenceLocalization_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_GETAPPRICHPRESENCELOCALIZATION_REQUEST,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_GetAppRichPresenceLocalization_Request)
+  ))
+_sym_db.RegisterMessage(CCommunity_GetAppRichPresenceLocalization_Request)
 
-_CSTEAMTV_ADDCHATMODERATOR_REQUEST = _descriptor.Descriptor(
-  name='CSteamTV_AddChatModerator_Request',
-  full_name='CSteamTV_AddChatModerator_Request',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='broadcast_channel_id', full_name='CSteamTV_AddChatModerator_Request.broadcast_channel_id', index=0,
-      number=1, type=6, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='moderator_steamid', full_name='CSteamTV_AddChatModerator_Request.moderator_steamid', index=1,
-      number=2, type=6, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='undo', full_name='CSteamTV_AddChatModerator_Request.undo', index=2,
-      number=3, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=10430,
-  serialized_end=10536,
-)
+CCommunity_GetAppRichPresenceLocalization_Response = _reflection.GeneratedProtocolMessageType('CCommunity_GetAppRichPresenceLocalization_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_GETAPPRICHPRESENCELOCALIZATION_RESPONSE,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_GetAppRichPresenceLocalization_Response)
+  ))
+_sym_db.RegisterMessage(CCommunity_GetAppRichPresenceLocalization_Response)
 
+CCommunity_GetAppRichPresenceLocalization_Response_Token = _reflection.GeneratedProtocolMessageType('CCommunity_GetAppRichPresenceLocalization_Response_Token', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_GETAPPRICHPRESENCELOCALIZATION_RESPONSE_TOKEN,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_GetAppRichPresenceLocalization_Response_Token)
+  ))
+_sym_db.RegisterMessage(CCommunity_GetAppRichPresenceLocalization_Response_Token)
 
-_CSTEAMTV_ADDCHATMODERATOR_RESPONSE = _descriptor.Descriptor(
-  name='CSteamTV_AddChatModerator_Response',
-  full_name='CSteamTV_AddChatModerator_Response',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=10538,
-  serialized_end=10574,
-)
-
-
-_CSTEAMTV_GETCHATMODERATORS_REQUEST = _descriptor.Descriptor(
-  name='CSteamTV_GetChatModerators_Request',
-  full_name='CSteamTV_GetChatModerators_Request',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='broadcast_channel_id', full_name='CSteamTV_GetChatModerators_Request.broadcast_channel_id', index=0,
-      number=1, type=6, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=10576,
-  serialized_end=10642,
-)
+CCommunity_GetAppRichPresenceLocalization_Response_TokenList = _reflection.GeneratedProtocolMessageType('CCommunity_GetAppRichPresenceLocalization_Response_TokenList', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_GETAPPRICHPRESENCELOCALIZATION_RESPONSE_TOKENLIST,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_GetAppRichPresenceLocalization_Response_TokenList)
+  ))
+_sym_db.RegisterMessage(CCommunity_GetAppRichPresenceLocalization_Response_TokenList)
 
+CCommunity_GetCommentThread_Request = _reflection.GeneratedProtocolMessageType('CCommunity_GetCommentThread_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_GETCOMMENTTHREAD_REQUEST,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_GetCommentThread_Request)
+  ))
+_sym_db.RegisterMessage(CCommunity_GetCommentThread_Request)
 
-_CSTEAMTV_CHATMODERATOR = _descriptor.Descriptor(
-  name='CSteamTV_ChatModerator',
-  full_name='CSteamTV_ChatModerator',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='steamid', full_name='CSteamTV_ChatModerator.steamid', index=0,
-      number=1, type=6, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='name', full_name='CSteamTV_ChatModerator.name', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=10644,
-  serialized_end=10699,
-)
+CCommunity_Comment = _reflection.GeneratedProtocolMessageType('CCommunity_Comment', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_COMMENT,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_Comment)
+  ))
+_sym_db.RegisterMessage(CCommunity_Comment)
 
+CCommunity_GetCommentThread_Response = _reflection.GeneratedProtocolMessageType('CCommunity_GetCommentThread_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_GETCOMMENTTHREAD_RESPONSE,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_GetCommentThread_Response)
+  ))
+_sym_db.RegisterMessage(CCommunity_GetCommentThread_Response)
 
-_CSTEAMTV_GETCHATMODERATORS_RESPONSE = _descriptor.Descriptor(
-  name='CSteamTV_GetChatModerators_Response',
-  full_name='CSteamTV_GetChatModerators_Response',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='results', full_name='CSteamTV_GetChatModerators_Response.results', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=10701,
-  serialized_end=10780,
-)
+CCommunity_PostCommentToThread_Request = _reflection.GeneratedProtocolMessageType('CCommunity_PostCommentToThread_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_POSTCOMMENTTOTHREAD_REQUEST,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_PostCommentToThread_Request)
+  ))
+_sym_db.RegisterMessage(CCommunity_PostCommentToThread_Request)
 
+CCommunity_PostCommentToThread_Response = _reflection.GeneratedProtocolMessageType('CCommunity_PostCommentToThread_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_POSTCOMMENTTOTHREAD_RESPONSE,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_PostCommentToThread_Response)
+  ))
+_sym_db.RegisterMessage(CCommunity_PostCommentToThread_Response)
 
-_CSTEAMTV_ADDWORDBAN_RESPONSE = _descriptor.Descriptor(
-  name='CSteamTV_AddWordBan_Response',
-  full_name='CSteamTV_AddWordBan_Response',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=10782,
-  serialized_end=10812,
-)
+CCommunity_DeleteCommentFromThread_Request = _reflection.GeneratedProtocolMessageType('CCommunity_DeleteCommentFromThread_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_DELETECOMMENTFROMTHREAD_REQUEST,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_DeleteCommentFromThread_Request)
+  ))
+_sym_db.RegisterMessage(CCommunity_DeleteCommentFromThread_Request)
 
+CCommunity_DeleteCommentFromThread_Response = _reflection.GeneratedProtocolMessageType('CCommunity_DeleteCommentFromThread_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_DELETECOMMENTFROMTHREAD_RESPONSE,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_DeleteCommentFromThread_Response)
+  ))
+_sym_db.RegisterMessage(CCommunity_DeleteCommentFromThread_Response)
 
-_CSTEAMTV_GETWORDBANS_RESPONSE = _descriptor.Descriptor(
-  name='CSteamTV_GetWordBans_Response',
-  full_name='CSteamTV_GetWordBans_Response',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='results', full_name='CSteamTV_GetWordBans_Response.results', index=0,
-      number=1, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=10814,
-  serialized_end=10862,
-)
+CCommunity_RateCommentThread_Request = _reflection.GeneratedProtocolMessageType('CCommunity_RateCommentThread_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_RATECOMMENTTHREAD_REQUEST,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_RateCommentThread_Request)
+  ))
+_sym_db.RegisterMessage(CCommunity_RateCommentThread_Request)
 
+CCommunity_RateCommentThread_Response = _reflection.GeneratedProtocolMessageType('CCommunity_RateCommentThread_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_RATECOMMENTTHREAD_RESPONSE,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_RateCommentThread_Response)
+  ))
+_sym_db.RegisterMessage(CCommunity_RateCommentThread_Response)
 
-_CSTEAMTV_JOINCHAT_REQUEST = _descriptor.Descriptor(
-  name='CSteamTV_JoinChat_Request',
-  full_name='CSteamTV_JoinChat_Request',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='broadcast_channel_id', full_name='CSteamTV_JoinChat_Request.broadcast_channel_id', index=0,
-      number=1, type=6, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=10864,
-  serialized_end=10921,
-)
+CCommunity_GetCommentThreadRatings_Request = _reflection.GeneratedProtocolMessageType('CCommunity_GetCommentThreadRatings_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_GETCOMMENTTHREADRATINGS_REQUEST,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_GetCommentThreadRatings_Request)
+  ))
+_sym_db.RegisterMessage(CCommunity_GetCommentThreadRatings_Request)
 
+CCommunity_GetCommentThreadRatings_Response = _reflection.GeneratedProtocolMessageType('CCommunity_GetCommentThreadRatings_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_GETCOMMENTTHREADRATINGS_RESPONSE,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_GetCommentThreadRatings_Response)
+  ))
+_sym_db.RegisterMessage(CCommunity_GetCommentThreadRatings_Response)
 
-_CSTEAMTV_JOINCHAT_RESPONSE = _descriptor.Descriptor(
-  name='CSteamTV_JoinChat_Response',
-  full_name='CSteamTV_JoinChat_Response',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='chat_id', full_name='CSteamTV_JoinChat_Response.chat_id', index=0,
-      number=1, type=6, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='view_url_template', full_name='CSteamTV_JoinChat_Response.view_url_template', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='flair_group_ids', full_name='CSteamTV_JoinChat_Response.flair_group_ids', index=2,
-      number=3, type=4, cpp_type=4, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=10923,
-  serialized_end=11020,
-)
+CCommunity_RateClanAnnouncement_Request = _reflection.GeneratedProtocolMessageType('CCommunity_RateClanAnnouncement_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_RATECLANANNOUNCEMENT_REQUEST,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_RateClanAnnouncement_Request)
+  ))
+_sym_db.RegisterMessage(CCommunity_RateClanAnnouncement_Request)
 
+CCommunity_RateClanAnnouncement_Response = _reflection.GeneratedProtocolMessageType('CCommunity_RateClanAnnouncement_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_RATECLANANNOUNCEMENT_RESPONSE,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_RateClanAnnouncement_Response)
+  ))
+_sym_db.RegisterMessage(CCommunity_RateClanAnnouncement_Response)
 
-_CSTEAMTV_SEARCH_RESPONSE = _descriptor.Descriptor(
-  name='CSteamTV_Search_Response',
-  full_name='CSteamTV_Search_Response',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='results', full_name='CSteamTV_Search_Response.results', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=11022,
-  serialized_end=11092,
-)
+CCommunity_GetClanAnnouncementVoteForUser_Request = _reflection.GeneratedProtocolMessageType('CCommunity_GetClanAnnouncementVoteForUser_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_GETCLANANNOUNCEMENTVOTEFORUSER_REQUEST,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_GetClanAnnouncementVoteForUser_Request)
+  ))
+_sym_db.RegisterMessage(CCommunity_GetClanAnnouncementVoteForUser_Request)
 
+CCommunity_GetClanAnnouncementVoteForUser_Response = _reflection.GeneratedProtocolMessageType('CCommunity_GetClanAnnouncementVoteForUser_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_GETCLANANNOUNCEMENTVOTEFORUSER_RESPONSE,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_GetClanAnnouncementVoteForUser_Response)
+  ))
+_sym_db.RegisterMessage(CCommunity_GetClanAnnouncementVoteForUser_Response)
 
-_CSTEAMTV_GETSTEAMTVUSERSETTINGS_RESPONSE = _descriptor.Descriptor(
-  name='CSteamTV_GetSteamTVUserSettings_Response',
-  full_name='CSteamTV_GetSteamTVUserSettings_Response',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='stream_live_email', full_name='CSteamTV_GetSteamTVUserSettings_Response.stream_live_email', index=0,
-      number=1, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='stream_live_notification', full_name='CSteamTV_GetSteamTVUserSettings_Response.stream_live_notification', index=1,
-      number=2, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=11094,
-  serialized_end=11197,
-)
+CAppPriority = _reflection.GeneratedProtocolMessageType('CAppPriority', (_message.Message,), dict(
+  DESCRIPTOR = _CAPPPRIORITY,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CAppPriority)
+  ))
+_sym_db.RegisterMessage(CAppPriority)
 
+CCommunity_GetUserPartnerEventNews_Request = _reflection.GeneratedProtocolMessageType('CCommunity_GetUserPartnerEventNews_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_GETUSERPARTNEREVENTNEWS_REQUEST,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_GetUserPartnerEventNews_Request)
+  ))
+_sym_db.RegisterMessage(CCommunity_GetUserPartnerEventNews_Request)
 
-_CSTEAMTV_SETSTEAMTVUSERSETTINGS_RESPONSE = _descriptor.Descriptor(
-  name='CSteamTV_SetSteamTVUserSettings_Response',
-  full_name='CSteamTV_SetSteamTVUserSettings_Response',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=11199,
-  serialized_end=11241,
-)
+CCommunity_GetUserPartnerEventNews_Response = _reflection.GeneratedProtocolMessageType('CCommunity_GetUserPartnerEventNews_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_GETUSERPARTNEREVENTNEWS_RESPONSE,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_GetUserPartnerEventNews_Response)
+  ))
+_sym_db.RegisterMessage(CCommunity_GetUserPartnerEventNews_Response)
 
+CCommunity_GetBestEventsForUser_Request = _reflection.GeneratedProtocolMessageType('CCommunity_GetBestEventsForUser_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_GETBESTEVENTSFORUSER_REQUEST,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_GetBestEventsForUser_Request)
+  ))
+_sym_db.RegisterMessage(CCommunity_GetBestEventsForUser_Request)
 
-_CSTEAMTV_GETMYBROADCASTCHANNELS_RESPONSE = _descriptor.Descriptor(
-  name='CSteamTV_GetMyBroadcastChannels_Response',
-  full_name='CSteamTV_GetMyBroadcastChannels_Response',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='results', full_name='CSteamTV_GetMyBroadcastChannels_Response.results', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=11243,
-  serialized_end=11329,
-)
+CCommunity_PartnerEventResult = _reflection.GeneratedProtocolMessageType('CCommunity_PartnerEventResult', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_PARTNEREVENTRESULT,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_PartnerEventResult)
+  ))
+_sym_db.RegisterMessage(CCommunity_PartnerEventResult)
 
+CCommunity_GetBestEventsForUser_Response = _reflection.GeneratedProtocolMessageType('CCommunity_GetBestEventsForUser_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_GETBESTEVENTSFORUSER_RESPONSE,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_GetBestEventsForUser_Response)
+  ))
+_sym_db.RegisterMessage(CCommunity_GetBestEventsForUser_Response)
 
-_CSTEAMTV_HOMEPAGETEMPLATE_TAKEOVER = _descriptor.Descriptor(
-  name='CSteamTV_HomePageTemplate_Takeover',
-  full_name='CSteamTV_HomePageTemplate_Takeover',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='broadcasts', full_name='CSteamTV_HomePageTemplate_Takeover.broadcasts', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=11331,
-  serialized_end=11414,
-)
+CCommunity_ClearUserPartnerEventsAppPriorities_Request = _reflection.GeneratedProtocolMessageType('CCommunity_ClearUserPartnerEventsAppPriorities_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_CLEARUSERPARTNEREVENTSAPPPRIORITIES_REQUEST,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_ClearUserPartnerEventsAppPriorities_Request)
+  ))
+_sym_db.RegisterMessage(CCommunity_ClearUserPartnerEventsAppPriorities_Request)
 
+CCommunity_ClearUserPartnerEventsAppPriorities_Response = _reflection.GeneratedProtocolMessageType('CCommunity_ClearUserPartnerEventsAppPriorities_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_CLEARUSERPARTNEREVENTSAPPPRIORITIES_RESPONSE,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_ClearUserPartnerEventsAppPriorities_Response)
+  ))
+_sym_db.RegisterMessage(CCommunity_ClearUserPartnerEventsAppPriorities_Response)
 
-_CSTEAMTV_HOMEPAGETEMPLATE_SINGLEGAME = _descriptor.Descriptor(
-  name='CSteamTV_HomePageTemplate_SingleGame',
-  full_name='CSteamTV_HomePageTemplate_SingleGame',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='broadcasts', full_name='CSteamTV_HomePageTemplate_SingleGame.broadcasts', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='appid', full_name='CSteamTV_HomePageTemplate_SingleGame.appid', index=1,
-      number=2, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='title', full_name='CSteamTV_HomePageTemplate_SingleGame.title', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=11416,
-  serialized_end=11531,
-)
+CCommunity_PartnerEventsAppPriority = _reflection.GeneratedProtocolMessageType('CCommunity_PartnerEventsAppPriority', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_PARTNEREVENTSAPPPRIORITY,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_PartnerEventsAppPriority)
+  ))
+_sym_db.RegisterMessage(CCommunity_PartnerEventsAppPriority)
 
+CCommunity_GetUserPartnerEventsAppPriorities_Request = _reflection.GeneratedProtocolMessageType('CCommunity_GetUserPartnerEventsAppPriorities_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_GETUSERPARTNEREVENTSAPPPRIORITIES_REQUEST,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_GetUserPartnerEventsAppPriorities_Request)
+  ))
+_sym_db.RegisterMessage(CCommunity_GetUserPartnerEventsAppPriorities_Request)
 
-_GAMELISTENTRY = _descriptor.Descriptor(
-  name='GameListEntry',
-  full_name='GameListEntry',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='appid', full_name='GameListEntry.appid', index=0,
-      number=1, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='game_name', full_name='GameListEntry.game_name', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='broadcast', full_name='GameListEntry.broadcast', index=2,
-      number=3, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=11533,
-  serialized_end=11628,
-)
+CCommunity_GetUserPartnerEventsAppPriorities_Response = _reflection.GeneratedProtocolMessageType('CCommunity_GetUserPartnerEventsAppPriorities_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_GETUSERPARTNEREVENTSAPPPRIORITIES_RESPONSE,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_GetUserPartnerEventsAppPriorities_Response)
+  ))
+_sym_db.RegisterMessage(CCommunity_GetUserPartnerEventsAppPriorities_Response)
 
+CCommunity_ClearSinglePartnerEventsAppPriority_Request = _reflection.GeneratedProtocolMessageType('CCommunity_ClearSinglePartnerEventsAppPriority_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_CLEARSINGLEPARTNEREVENTSAPPPRIORITY_REQUEST,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_ClearSinglePartnerEventsAppPriority_Request)
+  ))
+_sym_db.RegisterMessage(CCommunity_ClearSinglePartnerEventsAppPriority_Request)
 
-_CSTEAMTV_HOMEPAGETEMPLATE_GAMELIST = _descriptor.Descriptor(
-  name='CSteamTV_HomePageTemplate_GameList',
-  full_name='CSteamTV_HomePageTemplate_GameList',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='entries', full_name='CSteamTV_HomePageTemplate_GameList.entries', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='title', full_name='CSteamTV_HomePageTemplate_GameList.title', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=11630,
-  serialized_end=11714,
-)
+CCommunity_ClearSinglePartnerEventsAppPriority_Response = _reflection.GeneratedProtocolMessageType('CCommunity_ClearSinglePartnerEventsAppPriority_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_CLEARSINGLEPARTNEREVENTSAPPPRIORITY_RESPONSE,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_ClearSinglePartnerEventsAppPriority_Response)
+  ))
+_sym_db.RegisterMessage(CCommunity_ClearSinglePartnerEventsAppPriority_Response)
 
+CCommunity_PartnerEventsShowMoreForApp_Request = _reflection.GeneratedProtocolMessageType('CCommunity_PartnerEventsShowMoreForApp_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_PARTNEREVENTSSHOWMOREFORAPP_REQUEST,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_PartnerEventsShowMoreForApp_Request)
+  ))
+_sym_db.RegisterMessage(CCommunity_PartnerEventsShowMoreForApp_Request)
 
-_CSTEAMTV_HOMEPAGETEMPLATE_QUICKEXPLORE = _descriptor.Descriptor(
-  name='CSteamTV_HomePageTemplate_QuickExplore',
-  full_name='CSteamTV_HomePageTemplate_QuickExplore',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='broadcasts', full_name='CSteamTV_HomePageTemplate_QuickExplore.broadcasts', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='title', full_name='CSteamTV_HomePageTemplate_QuickExplore.title', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=11716,
-  serialized_end=11818,
-)
+CCommunity_PartnerEventsShowMoreForApp_Response = _reflection.GeneratedProtocolMessageType('CCommunity_PartnerEventsShowMoreForApp_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_PARTNEREVENTSSHOWMOREFORAPP_RESPONSE,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_PartnerEventsShowMoreForApp_Response)
+  ))
+_sym_db.RegisterMessage(CCommunity_PartnerEventsShowMoreForApp_Response)
 
+CCommunity_PartnerEventsShowLessForApp_Request = _reflection.GeneratedProtocolMessageType('CCommunity_PartnerEventsShowLessForApp_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_PARTNEREVENTSSHOWLESSFORAPP_REQUEST,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_PartnerEventsShowLessForApp_Request)
+  ))
+_sym_db.RegisterMessage(CCommunity_PartnerEventsShowLessForApp_Request)
 
-_CSTEAMTV_HOMEPAGETEMPLATE_CONVEYORBELT = _descriptor.Descriptor(
-  name='CSteamTV_HomePageTemplate_ConveyorBelt',
-  full_name='CSteamTV_HomePageTemplate_ConveyorBelt',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='broadcasts', full_name='CSteamTV_HomePageTemplate_ConveyorBelt.broadcasts', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='title', full_name='CSteamTV_HomePageTemplate_ConveyorBelt.title', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=11820,
-  serialized_end=11922,
-)
+CCommunity_PartnerEventsShowLessForApp_Response = _reflection.GeneratedProtocolMessageType('CCommunity_PartnerEventsShowLessForApp_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_PARTNEREVENTSSHOWLESSFORAPP_RESPONSE,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_PartnerEventsShowLessForApp_Response)
+  ))
+_sym_db.RegisterMessage(CCommunity_PartnerEventsShowLessForApp_Response)
 
+CCommunity_MarkPartnerEventsForUser_Request = _reflection.GeneratedProtocolMessageType('CCommunity_MarkPartnerEventsForUser_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_MARKPARTNEREVENTSFORUSER_REQUEST,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_MarkPartnerEventsForUser_Request)
+  ))
+_sym_db.RegisterMessage(CCommunity_MarkPartnerEventsForUser_Request)
 
-_CSTEAMTV_HOMEPAGETEMPLATE_WATCHPARTY = _descriptor.Descriptor(
-  name='CSteamTV_HomePageTemplate_WatchParty',
-  full_name='CSteamTV_HomePageTemplate_WatchParty',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='broadcast', full_name='CSteamTV_HomePageTemplate_WatchParty.broadcast', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='title', full_name='CSteamTV_HomePageTemplate_WatchParty.title', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='chat_group_id', full_name='CSteamTV_HomePageTemplate_WatchParty.chat_group_id', index=2,
-      number=3, type=4, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=11924,
-  serialized_end=12046,
-)
+CCommunity_MarkPartnerEventsForUser_Request_PartnerEventMarking = _reflection.GeneratedProtocolMessageType('CCommunity_MarkPartnerEventsForUser_Request_PartnerEventMarking', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_MARKPARTNEREVENTSFORUSER_REQUEST_PARTNEREVENTMARKING,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_MarkPartnerEventsForUser_Request_PartnerEventMarking)
+  ))
+_sym_db.RegisterMessage(CCommunity_MarkPartnerEventsForUser_Request_PartnerEventMarking)
 
+CCommunity_MarkPartnerEventsForUser_Response = _reflection.GeneratedProtocolMessageType('CCommunity_MarkPartnerEventsForUser_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CCOMMUNITY_MARKPARTNEREVENTSFORUSER_RESPONSE,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CCommunity_MarkPartnerEventsForUser_Response)
+  ))
+_sym_db.RegisterMessage(CCommunity_MarkPartnerEventsForUser_Response)
 
-_CSTEAMTV_HOMEPAGETEMPLATE_DEVELOPER = _descriptor.Descriptor(
-  name='CSteamTV_HomePageTemplate_Developer',
-  full_name='CSteamTV_HomePageTemplate_Developer',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='broadcast', full_name='CSteamTV_HomePageTemplate_Developer.broadcast', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='title', full_name='CSteamTV_HomePageTemplate_Developer.title', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=12048,
-  serialized_end=12146,
-)
+CProductImpressionsFromClient_Notification = _reflection.GeneratedProtocolMessageType('CProductImpressionsFromClient_Notification', (_message.Message,), dict(
+  DESCRIPTOR = _CPRODUCTIMPRESSIONSFROMCLIENT_NOTIFICATION,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CProductImpressionsFromClient_Notification)
+  ))
+_sym_db.RegisterMessage(CProductImpressionsFromClient_Notification)
 
+CProductImpressionsFromClient_Notification_Impression = _reflection.GeneratedProtocolMessageType('CProductImpressionsFromClient_Notification_Impression', (_message.Message,), dict(
+  DESCRIPTOR = _CPRODUCTIMPRESSIONSFROMCLIENT_NOTIFICATION_IMPRESSION,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CProductImpressionsFromClient_Notification_Impression)
+  ))
+_sym_db.RegisterMessage(CProductImpressionsFromClient_Notification_Impression)
 
-_CSTEAMTV_HOMEPAGETEMPLATE_EVENT = _descriptor.Descriptor(
-  name='CSteamTV_HomePageTemplate_Event',
-  full_name='CSteamTV_HomePageTemplate_Event',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='title', full_name='CSteamTV_HomePageTemplate_Event.title', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=12148,
-  serialized_end=12196,
-)
+CFriendsListCategory = _reflection.GeneratedProtocolMessageType('CFriendsListCategory', (_message.Message,), dict(
+  DESCRIPTOR = _CFRIENDSLISTCATEGORY,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CFriendsListCategory)
+  ))
+_sym_db.RegisterMessage(CFriendsListCategory)
 
+CFriendsList_GetCategories_Request = _reflection.GeneratedProtocolMessageType('CFriendsList_GetCategories_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CFRIENDSLIST_GETCATEGORIES_REQUEST,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CFriendsList_GetCategories_Request)
+  ))
+_sym_db.RegisterMessage(CFriendsList_GetCategories_Request)
 
-_CSTEAMTV_HOMEPAGECONTENTROW = _descriptor.Descriptor(
-  name='CSteamTV_HomePageContentRow',
-  full_name='CSteamTV_HomePageContentRow',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='template_type', full_name='CSteamTV_HomePageContentRow.template_type', index=0,
-      number=1, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=_b('\202\265\030\004enum'), file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='takeover', full_name='CSteamTV_HomePageContentRow.takeover', index=1,
-      number=2, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='single_game', full_name='CSteamTV_HomePageContentRow.single_game', index=2,
-      number=3, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='game_list', full_name='CSteamTV_HomePageContentRow.game_list', index=3,
-      number=4, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='quick_explore', full_name='CSteamTV_HomePageContentRow.quick_explore', index=4,
-      number=5, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='conveyor_belt', full_name='CSteamTV_HomePageContentRow.conveyor_belt', index=5,
-      number=6, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='watch_party', full_name='CSteamTV_HomePageContentRow.watch_party', index=6,
-      number=7, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='developer', full_name='CSteamTV_HomePageContentRow.developer', index=7,
-      number=8, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='event', full_name='CSteamTV_HomePageContentRow.event', index=8,
-      number=9, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=12199,
-  serialized_end=12726,
-)
+CFriendsList_GetCategories_Response = _reflection.GeneratedProtocolMessageType('CFriendsList_GetCategories_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CFRIENDSLIST_GETCATEGORIES_RESPONSE,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CFriendsList_GetCategories_Response)
+  ))
+_sym_db.RegisterMessage(CFriendsList_GetCategories_Response)
 
+CFriendsListFavoriteEntry = _reflection.GeneratedProtocolMessageType('CFriendsListFavoriteEntry', (_message.Message,), dict(
+  DESCRIPTOR = _CFRIENDSLISTFAVORITEENTRY,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CFriendsListFavoriteEntry)
+  ))
+_sym_db.RegisterMessage(CFriendsListFavoriteEntry)
 
-_CSTEAMTV_GETHOMEPAGECONTENTS_RESPONSE = _descriptor.Descriptor(
-  name='CSteamTV_GetHomePageContents_Response',
-  full_name='CSteamTV_GetHomePageContents_Response',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='rows', full_name='CSteamTV_GetHomePageContents_Response.rows', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=12728,
-  serialized_end=12811,
-)
+CFriendsList_GetFavorites_Request = _reflection.GeneratedProtocolMessageType('CFriendsList_GetFavorites_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CFRIENDSLIST_GETFAVORITES_REQUEST,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CFriendsList_GetFavorites_Request)
+  ))
+_sym_db.RegisterMessage(CFriendsList_GetFavorites_Request)
 
+CFriendsList_GetFavorites_Response = _reflection.GeneratedProtocolMessageType('CFriendsList_GetFavorites_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CFRIENDSLIST_GETFAVORITES_RESPONSE,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CFriendsList_GetFavorites_Response)
+  ))
+_sym_db.RegisterMessage(CFriendsList_GetFavorites_Response)
 
-_CSTEAMTV_BROADCASTCLIPINFO = _descriptor.Descriptor(
-  name='CSteamTV_BroadcastClipInfo',
-  full_name='CSteamTV_BroadcastClipInfo',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='broadcast_clip_id', full_name='CSteamTV_BroadcastClipInfo.broadcast_clip_id', index=0,
-      number=1, type=4, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='channel_id', full_name='CSteamTV_BroadcastClipInfo.channel_id', index=1,
-      number=2, type=4, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='app_id', full_name='CSteamTV_BroadcastClipInfo.app_id', index=2,
-      number=3, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='broadcaster_steamid', full_name='CSteamTV_BroadcastClipInfo.broadcaster_steamid', index=3,
-      number=4, type=6, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='creator_steamid', full_name='CSteamTV_BroadcastClipInfo.creator_steamid', index=4,
-      number=5, type=6, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='video_description', full_name='CSteamTV_BroadcastClipInfo.video_description', index=5,
-      number=6, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='live_time', full_name='CSteamTV_BroadcastClipInfo.live_time', index=6,
-      number=7, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='length_ms', full_name='CSteamTV_BroadcastClipInfo.length_ms', index=7,
-      number=8, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='thumbnail_path', full_name='CSteamTV_BroadcastClipInfo.thumbnail_path', index=8,
-      number=9, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=12814,
-  serialized_end=13048,
-)
+CFriendsList_SetFavorites_Request = _reflection.GeneratedProtocolMessageType('CFriendsList_SetFavorites_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CFRIENDSLIST_SETFAVORITES_REQUEST,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CFriendsList_SetFavorites_Request)
+  ))
+_sym_db.RegisterMessage(CFriendsList_SetFavorites_Request)
 
+CFriendsList_SetFavorites_Response = _reflection.GeneratedProtocolMessageType('CFriendsList_SetFavorites_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CFRIENDSLIST_SETFAVORITES_RESPONSE,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CFriendsList_SetFavorites_Response)
+  ))
+_sym_db.RegisterMessage(CFriendsList_SetFavorites_Response)
 
-_CSTEAMTV_GETBROADCASTCHANNELCLIPS_RESPONSE = _descriptor.Descriptor(
-  name='CSteamTV_GetBroadcastChannelClips_Response',
-  full_name='CSteamTV_GetBroadcastChannelClips_Response',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='clips', full_name='CSteamTV_GetBroadcastChannelClips_Response.clips', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='thumbnail_host', full_name='CSteamTV_GetBroadcastChannelClips_Response.thumbnail_host', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=13050,
-  serialized_end=13162,
-)
+CFriendsList_FavoritesChanged_Notification = _reflection.GeneratedProtocolMessageType('CFriendsList_FavoritesChanged_Notification', (_message.Message,), dict(
+  DESCRIPTOR = _CFRIENDSLIST_FAVORITESCHANGED_NOTIFICATION,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CFriendsList_FavoritesChanged_Notification)
+  ))
+_sym_db.RegisterMessage(CFriendsList_FavoritesChanged_Notification)
 
+CFriendsList_GetFriendsList_Request = _reflection.GeneratedProtocolMessageType('CFriendsList_GetFriendsList_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CFRIENDSLIST_GETFRIENDSLIST_REQUEST,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CFriendsList_GetFriendsList_Request)
+  ))
+_sym_db.RegisterMessage(CFriendsList_GetFriendsList_Request)
 
-_CFRIENDSLISTCATEGORY = _descriptor.Descriptor(
-  name='CFriendsListCategory',
-  full_name='CFriendsListCategory',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='groupid', full_name='CFriendsListCategory.groupid', index=0,
-      number=1, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='name', full_name='CFriendsListCategory.name', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='accountid_members', full_name='CFriendsListCategory.accountid_members', index=2,
-      number=3, type=13, cpp_type=3, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=13164,
-  serialized_end=13244,
-)
+CFriendsList_GetFriendsList_Response = _reflection.GeneratedProtocolMessageType('CFriendsList_GetFriendsList_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CFRIENDSLIST_GETFRIENDSLIST_RESPONSE,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CFriendsList_GetFriendsList_Response)
+  ))
+_sym_db.RegisterMessage(CFriendsList_GetFriendsList_Response)
 
+CMsgClientUCMPublishedFileDeleted = _reflection.GeneratedProtocolMessageType('CMsgClientUCMPublishedFileDeleted', (_message.Message,), dict(
+  DESCRIPTOR = _CMSGCLIENTUCMPUBLISHEDFILEDELETED,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CMsgClientUCMPublishedFileDeleted)
+  ))
+_sym_db.RegisterMessage(CMsgClientUCMPublishedFileDeleted)
 
-_CFRIENDSLIST_GETCATEGORIES_REQUEST = _descriptor.Descriptor(
-  name='CFriendsList_GetCategories_Request',
-  full_name='CFriendsList_GetCategories_Request',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=13246,
-  serialized_end=13282,
-)
+CMsgCREEnumeratePublishedFiles = _reflection.GeneratedProtocolMessageType('CMsgCREEnumeratePublishedFiles', (_message.Message,), dict(
+  DESCRIPTOR = _CMSGCREENUMERATEPUBLISHEDFILES,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CMsgCREEnumeratePublishedFiles)
+  ))
+_sym_db.RegisterMessage(CMsgCREEnumeratePublishedFiles)
 
+CMsgCREEnumeratePublishedFilesResponse = _reflection.GeneratedProtocolMessageType('CMsgCREEnumeratePublishedFilesResponse', (_message.Message,), dict(
+  DESCRIPTOR = _CMSGCREENUMERATEPUBLISHEDFILESRESPONSE,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CMsgCREEnumeratePublishedFilesResponse)
+  ))
+_sym_db.RegisterMessage(CMsgCREEnumeratePublishedFilesResponse)
 
-_CFRIENDSLIST_GETCATEGORIES_RESPONSE = _descriptor.Descriptor(
-  name='CFriendsList_GetCategories_Response',
-  full_name='CFriendsList_GetCategories_Response',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='categories', full_name='CFriendsList_GetCategories_Response.categories', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=13284,
-  serialized_end=13364,
-)
+CMsgCREEnumeratePublishedFilesResponse_PublishedFileId = _reflection.GeneratedProtocolMessageType('CMsgCREEnumeratePublishedFilesResponse_PublishedFileId', (_message.Message,), dict(
+  DESCRIPTOR = _CMSGCREENUMERATEPUBLISHEDFILESRESPONSE_PUBLISHEDFILEID,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CMsgCREEnumeratePublishedFilesResponse_PublishedFileId)
+  ))
+_sym_db.RegisterMessage(CMsgCREEnumeratePublishedFilesResponse_PublishedFileId)
 
+CClan_RespondToClanInvite_Request = _reflection.GeneratedProtocolMessageType('CClan_RespondToClanInvite_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CCLAN_RESPONDTOCLANINVITE_REQUEST,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CClan_RespondToClanInvite_Request)
+  ))
+_sym_db.RegisterMessage(CClan_RespondToClanInvite_Request)
 
-_CFRIENDSLISTFAVORITEENTRY = _descriptor.Descriptor(
-  name='CFriendsListFavoriteEntry',
-  full_name='CFriendsListFavoriteEntry',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='accountid', full_name='CFriendsListFavoriteEntry.accountid', index=0,
-      number=1, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='clanid', full_name='CFriendsListFavoriteEntry.clanid', index=1,
-      number=2, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='chat_group_id', full_name='CFriendsListFavoriteEntry.chat_group_id', index=2,
-      number=3, type=4, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=13366,
-  serialized_end=13451,
-)
+CClan_RespondToClanInvite_Response = _reflection.GeneratedProtocolMessageType('CClan_RespondToClanInvite_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CCLAN_RESPONDTOCLANINVITE_RESPONSE,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CClan_RespondToClanInvite_Response)
+  ))
+_sym_db.RegisterMessage(CClan_RespondToClanInvite_Response)
 
+CVoiceChat_RequestOneOnOneChat_Request = _reflection.GeneratedProtocolMessageType('CVoiceChat_RequestOneOnOneChat_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CVOICECHAT_REQUESTONEONONECHAT_REQUEST,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CVoiceChat_RequestOneOnOneChat_Request)
+  ))
+_sym_db.RegisterMessage(CVoiceChat_RequestOneOnOneChat_Request)
 
-_CFRIENDSLIST_GETFAVORITES_REQUEST = _descriptor.Descriptor(
-  name='CFriendsList_GetFavorites_Request',
-  full_name='CFriendsList_GetFavorites_Request',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=13453,
-  serialized_end=13488,
-)
+CVoiceChat_RequestOneOnOneChat_Response = _reflection.GeneratedProtocolMessageType('CVoiceChat_RequestOneOnOneChat_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CVOICECHAT_REQUESTONEONONECHAT_RESPONSE,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CVoiceChat_RequestOneOnOneChat_Response)
+  ))
+_sym_db.RegisterMessage(CVoiceChat_RequestOneOnOneChat_Response)
 
+CVoiceChat_OneOnOneChatRequested_Notification = _reflection.GeneratedProtocolMessageType('CVoiceChat_OneOnOneChatRequested_Notification', (_message.Message,), dict(
+  DESCRIPTOR = _CVOICECHAT_ONEONONECHATREQUESTED_NOTIFICATION,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CVoiceChat_OneOnOneChatRequested_Notification)
+  ))
+_sym_db.RegisterMessage(CVoiceChat_OneOnOneChatRequested_Notification)
 
-_CFRIENDSLIST_GETFAVORITES_RESPONSE = _descriptor.Descriptor(
-  name='CFriendsList_GetFavorites_Response',
-  full_name='CFriendsList_GetFavorites_Response',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='favorites', full_name='CFriendsList_GetFavorites_Response.favorites', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=13490,
-  serialized_end=13573,
-)
+CVoiceChat_AnswerOneOnOneChat_Request = _reflection.GeneratedProtocolMessageType('CVoiceChat_AnswerOneOnOneChat_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CVOICECHAT_ANSWERONEONONECHAT_REQUEST,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CVoiceChat_AnswerOneOnOneChat_Request)
+  ))
+_sym_db.RegisterMessage(CVoiceChat_AnswerOneOnOneChat_Request)
 
+CVoiceChat_AnswerOneOnOneChat_Response = _reflection.GeneratedProtocolMessageType('CVoiceChat_AnswerOneOnOneChat_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CVOICECHAT_ANSWERONEONONECHAT_RESPONSE,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CVoiceChat_AnswerOneOnOneChat_Response)
+  ))
+_sym_db.RegisterMessage(CVoiceChat_AnswerOneOnOneChat_Response)
 
-_CFRIENDSLIST_SETFAVORITES_REQUEST = _descriptor.Descriptor(
-  name='CFriendsList_SetFavorites_Request',
-  full_name='CFriendsList_SetFavorites_Request',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='favorites', full_name='CFriendsList_SetFavorites_Request.favorites', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=13575,
-  serialized_end=13657,
-)
+CVoiceChat_OneOnOneChatRequestResponse_Notification = _reflection.GeneratedProtocolMessageType('CVoiceChat_OneOnOneChatRequestResponse_Notification', (_message.Message,), dict(
+  DESCRIPTOR = _CVOICECHAT_ONEONONECHATREQUESTRESPONSE_NOTIFICATION,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CVoiceChat_OneOnOneChatRequestResponse_Notification)
+  ))
+_sym_db.RegisterMessage(CVoiceChat_OneOnOneChatRequestResponse_Notification)
 
+CVoiceChat_EndOneOnOneChat_Request = _reflection.GeneratedProtocolMessageType('CVoiceChat_EndOneOnOneChat_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CVOICECHAT_ENDONEONONECHAT_REQUEST,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CVoiceChat_EndOneOnOneChat_Request)
+  ))
+_sym_db.RegisterMessage(CVoiceChat_EndOneOnOneChat_Request)
 
-_CFRIENDSLIST_SETFAVORITES_RESPONSE = _descriptor.Descriptor(
-  name='CFriendsList_SetFavorites_Response',
-  full_name='CFriendsList_SetFavorites_Response',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=13659,
-  serialized_end=13695,
-)
+CVoiceChat_EndOneOnOneChat_Response = _reflection.GeneratedProtocolMessageType('CVoiceChat_EndOneOnOneChat_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CVOICECHAT_ENDONEONONECHAT_RESPONSE,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CVoiceChat_EndOneOnOneChat_Response)
+  ))
+_sym_db.RegisterMessage(CVoiceChat_EndOneOnOneChat_Response)
 
+CVoiceChat_LeaveOneOnOneChat_Request = _reflection.GeneratedProtocolMessageType('CVoiceChat_LeaveOneOnOneChat_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CVOICECHAT_LEAVEONEONONECHAT_REQUEST,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CVoiceChat_LeaveOneOnOneChat_Request)
+  ))
+_sym_db.RegisterMessage(CVoiceChat_LeaveOneOnOneChat_Request)
 
-_CFRIENDSLIST_FAVORITESCHANGED_NOTIFICATION = _descriptor.Descriptor(
-  name='CFriendsList_FavoritesChanged_Notification',
-  full_name='CFriendsList_FavoritesChanged_Notification',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='favorites', full_name='CFriendsList_FavoritesChanged_Notification.favorites', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=13697,
-  serialized_end=13788,
-)
+CVoiceChat_LeaveOneOnOneChat_Response = _reflection.GeneratedProtocolMessageType('CVoiceChat_LeaveOneOnOneChat_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CVOICECHAT_LEAVEONEONONECHAT_RESPONSE,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CVoiceChat_LeaveOneOnOneChat_Response)
+  ))
+_sym_db.RegisterMessage(CVoiceChat_LeaveOneOnOneChat_Response)
 
+CVoiceChat_UserJoinedVoiceChat_Notification = _reflection.GeneratedProtocolMessageType('CVoiceChat_UserJoinedVoiceChat_Notification', (_message.Message,), dict(
+  DESCRIPTOR = _CVOICECHAT_USERJOINEDVOICECHAT_NOTIFICATION,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CVoiceChat_UserJoinedVoiceChat_Notification)
+  ))
+_sym_db.RegisterMessage(CVoiceChat_UserJoinedVoiceChat_Notification)
 
-_CFRIENDSLIST_GETFRIENDSLIST_REQUEST = _descriptor.Descriptor(
-  name='CFriendsList_GetFriendsList_Request',
-  full_name='CFriendsList_GetFriendsList_Request',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=13790,
-  serialized_end=13827,
-)
+CVoiceChat_UserVoiceStatus_Notification = _reflection.GeneratedProtocolMessageType('CVoiceChat_UserVoiceStatus_Notification', (_message.Message,), dict(
+  DESCRIPTOR = _CVOICECHAT_USERVOICESTATUS_NOTIFICATION,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CVoiceChat_UserVoiceStatus_Notification)
+  ))
+_sym_db.RegisterMessage(CVoiceChat_UserVoiceStatus_Notification)
 
+CVoiceChat_AllMembersStatus_Notification = _reflection.GeneratedProtocolMessageType('CVoiceChat_AllMembersStatus_Notification', (_message.Message,), dict(
+  DESCRIPTOR = _CVOICECHAT_ALLMEMBERSSTATUS_NOTIFICATION,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CVoiceChat_AllMembersStatus_Notification)
+  ))
+_sym_db.RegisterMessage(CVoiceChat_AllMembersStatus_Notification)
 
-_CFRIENDSLIST_GETFRIENDSLIST_RESPONSE = _descriptor.Descriptor(
-  name='CFriendsList_GetFriendsList_Response',
-  full_name='CFriendsList_GetFriendsList_Response',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='friendslist', full_name='CFriendsList_GetFriendsList_Response.friendslist', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=13829,
-  serialized_end=13912,
-)
+CVoiceChat_UpdateVoiceChatWebRTCData_Request = _reflection.GeneratedProtocolMessageType('CVoiceChat_UpdateVoiceChatWebRTCData_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CVOICECHAT_UPDATEVOICECHATWEBRTCDATA_REQUEST,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CVoiceChat_UpdateVoiceChatWebRTCData_Request)
+  ))
+_sym_db.RegisterMessage(CVoiceChat_UpdateVoiceChatWebRTCData_Request)
 
+CVoiceChat_UpdateVoiceChatWebRTCData_Response = _reflection.GeneratedProtocolMessageType('CVoiceChat_UpdateVoiceChatWebRTCData_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CVOICECHAT_UPDATEVOICECHATWEBRTCDATA_RESPONSE,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CVoiceChat_UpdateVoiceChatWebRTCData_Response)
+  ))
+_sym_db.RegisterMessage(CVoiceChat_UpdateVoiceChatWebRTCData_Response)
 
-_CCLAN_RESPONDTOCLANINVITE_REQUEST = _descriptor.Descriptor(
-  name='CClan_RespondToClanInvite_Request',
-  full_name='CClan_RespondToClanInvite_Request',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='steamid', full_name='CClan_RespondToClanInvite_Request.steamid', index=0,
-      number=1, type=6, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='accept', full_name='CClan_RespondToClanInvite_Request.accept', index=1,
-      number=2, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=13914,
-  serialized_end=13982,
-)
+CVoiceChat_UploadClientVoiceChatLogs_Request = _reflection.GeneratedProtocolMessageType('CVoiceChat_UploadClientVoiceChatLogs_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CVOICECHAT_UPLOADCLIENTVOICECHATLOGS_REQUEST,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CVoiceChat_UploadClientVoiceChatLogs_Request)
+  ))
+_sym_db.RegisterMessage(CVoiceChat_UploadClientVoiceChatLogs_Request)
 
+CVoiceChat_UploadClientVoiceChatLogs_Response = _reflection.GeneratedProtocolMessageType('CVoiceChat_UploadClientVoiceChatLogs_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CVOICECHAT_UPLOADCLIENTVOICECHATLOGS_RESPONSE,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CVoiceChat_UploadClientVoiceChatLogs_Response)
+  ))
+_sym_db.RegisterMessage(CVoiceChat_UploadClientVoiceChatLogs_Response)
 
-_CCLAN_RESPONDTOCLANINVITE_RESPONSE = _descriptor.Descriptor(
-  name='CClan_RespondToClanInvite_Response',
-  full_name='CClan_RespondToClanInvite_Response',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=13984,
-  serialized_end=14020,
-)
+CVoiceChat_LeaveVoiceChat_Request = _reflection.GeneratedProtocolMessageType('CVoiceChat_LeaveVoiceChat_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CVOICECHAT_LEAVEVOICECHAT_REQUEST,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CVoiceChat_LeaveVoiceChat_Request)
+  ))
+_sym_db.RegisterMessage(CVoiceChat_LeaveVoiceChat_Request)
 
+CVoiceChat_LeaveVoiceChat_Response = _reflection.GeneratedProtocolMessageType('CVoiceChat_LeaveVoiceChat_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CVOICECHAT_LEAVEVOICECHAT_RESPONSE,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CVoiceChat_LeaveVoiceChat_Response)
+  ))
+_sym_db.RegisterMessage(CVoiceChat_LeaveVoiceChat_Response)
 
-_CPRODUCTIMPRESSIONSFROMCLIENT_NOTIFICATION = _descriptor.Descriptor(
-  name='CProductImpressionsFromClient_Notification',
-  full_name='CProductImpressionsFromClient_Notification',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='impressions', full_name='CProductImpressionsFromClient_Notification.impressions', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=14022,
-  serialized_end=14143,
-)
+CVoiceChat_UserLeftVoiceChat_Notification = _reflection.GeneratedProtocolMessageType('CVoiceChat_UserLeftVoiceChat_Notification', (_message.Message,), dict(
+  DESCRIPTOR = _CVOICECHAT_USERLEFTVOICECHAT_NOTIFICATION,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CVoiceChat_UserLeftVoiceChat_Notification)
+  ))
+_sym_db.RegisterMessage(CVoiceChat_UserLeftVoiceChat_Notification)
 
+CVoiceChat_VoiceChatEnded_Notification = _reflection.GeneratedProtocolMessageType('CVoiceChat_VoiceChatEnded_Notification', (_message.Message,), dict(
+  DESCRIPTOR = _CVOICECHAT_VOICECHATENDED_NOTIFICATION,
+  __module__ = 'steammessages_webui_friends_pb2'
+  # @@protoc_insertion_point(class_scope:CVoiceChat_VoiceChatEnded_Notification)
+  ))
+_sym_db.RegisterMessage(CVoiceChat_VoiceChatEnded_Notification)
 
-_CPRODUCTIMPRESSIONSFROMCLIENT_NOTIFICATION_IMPRESSION = _descriptor.Descriptor(
-  name='CProductImpressionsFromClient_Notification_Impression',
-  full_name='CProductImpressionsFromClient_Notification_Impression',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='type', full_name='CProductImpressionsFromClient_Notification_Impression.type', index=0,
-      number=1, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=_b('\202\265\030\004enum'), file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='appid', full_name='CProductImpressionsFromClient_Notification_Impression.appid', index=1,
-      number=2, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='num_impressions', full_name='CProductImpressionsFromClient_Notification_Impression.num_impressions', index=2,
-      number=3, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=14145,
-  serialized_end=14264,
-)
-
-
-_NOTIMPLEMENTED = _descriptor.Descriptor(
-  name='NotImplemented',
-  full_name='NotImplemented',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=14266,
-  serialized_end=14282,
-)
-
-_CCOMMUNITY_GETAPPS_RESPONSE.fields_by_name['apps'].message_type = steammessages__base__pb2._CCDDBAPPDETAILCOMMON
-_CCOMMUNITY_GETAPPRICHPRESENCELOCALIZATION_RESPONSE.fields_by_name['token_lists'].message_type = _CCOMMUNITY_GETAPPRICHPRESENCELOCALIZATION_RESPONSE_TOKENLIST
-_CCOMMUNITY_GETAPPRICHPRESENCELOCALIZATION_RESPONSE_TOKENLIST.fields_by_name['tokens'].message_type = _CCOMMUNITY_GETAPPRICHPRESENCELOCALIZATION_RESPONSE_TOKEN
-_CCOMMUNITY_COMMENT.fields_by_name['ipaddress'].message_type = steammessages__base__pb2._CMSGIPADDRESS
-_CCOMMUNITY_GETCOMMENTTHREAD_RESPONSE.fields_by_name['comments'].message_type = _CCOMMUNITY_COMMENT
-_CCOMMUNITY_GETCOMMENTTHREAD_RESPONSE.fields_by_name['deleted_comments'].message_type = _CCOMMUNITY_COMMENT
-_CCOMMUNITY_GETAVATARHISTORY_RESPONSE.fields_by_name['avatars'].message_type = _CCOMMUNITY_GETAVATARHISTORY_RESPONSE_AVATARDATA
-_CCOMMUNITY_GETUSERPARTNEREVENTNEWS_RESPONSE.fields_by_name['results'].message_type = steammessages__base__pb2._CCLANMATCHEVENTBYRANGE
-_CCOMMUNITY_GETBESTEVENTSFORUSER_RESPONSE.fields_by_name['results'].message_type = _CCOMMUNITY_PARTNEREVENTRESULT
-_CCOMMUNITY_GETUSERPARTNEREVENTSAPPPRIORITIES_RESPONSE.fields_by_name['priorities'].message_type = _CCOMMUNITY_PARTNEREVENTSAPPPRIORITY
-_CCOMMUNITY_MARKPARTNEREVENTSFORUSER_REQUEST.fields_by_name['markings'].message_type = _CCOMMUNITY_MARKPARTNEREVENTSFORUSER_REQUEST_PARTNEREVENTMARKING
-_CCOMMUNITY_GETUSERPARTNEREVENTVIEWSTATUS_RESPONSE.fields_by_name['events'].message_type = _CCOMMUNITY_GETUSERPARTNEREVENTVIEWSTATUS_RESPONSE_PARTNEREVENT
-_CWEBRTC_WEBRTCUPDATEREMOTEDESCRIPTION_NOTIFICATION.fields_by_name['ssrcs_to_accountids'].message_type = _CWEBRTC_WEBRTCUPDATEREMOTEDESCRIPTION_NOTIFICATION_CSSRCTOACCOUNTIDMAPPING
-_CVOICECHAT_ALLMEMBERSSTATUS_NOTIFICATION.fields_by_name['users'].message_type = _CVOICECHAT_USERVOICESTATUS_NOTIFICATION
-_CSTEAMTV_GETBROADCASTCHANNELIMAGES_RESPONSE.fields_by_name['images'].message_type = _CSTEAMTV_GETBROADCASTCHANNELIMAGES_RESPONSE_IMAGES
-_CSTEAMTV_GETBROADCASTCHANNELLINKS_RESPONSE.fields_by_name['links'].message_type = _CSTEAMTV_GETBROADCASTCHANNELLINKS_RESPONSE_LINKS
-_CSTEAMTV_GETFOLLOWEDCHANNELS_RESPONSE.fields_by_name['results'].message_type = _GETBROADCASTCHANNELENTRY
-_CSTEAMTV_GETSUBSCRIBEDCHANNELS_RESPONSE.fields_by_name['results'].message_type = _GETBROADCASTCHANNELENTRY
-_CSTEAMTV_GAME.fields_by_name['channels'].message_type = _GETBROADCASTCHANNELENTRY
-_CSTEAMTV_GETGAMES_RESPONSE.fields_by_name['results'].message_type = _CSTEAMTV_GAME
-_CSTEAMTV_GETCHANNELS_RESPONSE.fields_by_name['results'].message_type = _GETBROADCASTCHANNELENTRY
-_CSTEAMTV_GETBROADCASTCHANNELBROADCASTERS_RESPONSE.fields_by_name['broadcasters'].message_type = _CSTEAMTV_GETBROADCASTCHANNELBROADCASTERS_RESPONSE_BROADCASTER
-_CSTEAMTV_GETCHATBANS_RESPONSE.fields_by_name['results'].message_type = _CSTEAMTV_CHATBAN
-_CSTEAMTV_GETCHATMODERATORS_RESPONSE.fields_by_name['results'].message_type = _CSTEAMTV_CHATMODERATOR
-_CSTEAMTV_SEARCH_RESPONSE.fields_by_name['results'].message_type = _GETBROADCASTCHANNELENTRY
-_CSTEAMTV_GETMYBROADCASTCHANNELS_RESPONSE.fields_by_name['results'].message_type = _GETBROADCASTCHANNELENTRY
-_CSTEAMTV_HOMEPAGETEMPLATE_TAKEOVER.fields_by_name['broadcasts'].message_type = _GETBROADCASTCHANNELENTRY
-_CSTEAMTV_HOMEPAGETEMPLATE_SINGLEGAME.fields_by_name['broadcasts'].message_type = _GETBROADCASTCHANNELENTRY
-_GAMELISTENTRY.fields_by_name['broadcast'].message_type = _GETBROADCASTCHANNELENTRY
-_CSTEAMTV_HOMEPAGETEMPLATE_GAMELIST.fields_by_name['entries'].message_type = _GAMELISTENTRY
-_CSTEAMTV_HOMEPAGETEMPLATE_QUICKEXPLORE.fields_by_name['broadcasts'].message_type = _GETBROADCASTCHANNELENTRY
-_CSTEAMTV_HOMEPAGETEMPLATE_CONVEYORBELT.fields_by_name['broadcasts'].message_type = _GETBROADCASTCHANNELENTRY
-_CSTEAMTV_HOMEPAGETEMPLATE_WATCHPARTY.fields_by_name['broadcast'].message_type = _GETBROADCASTCHANNELENTRY
-_CSTEAMTV_HOMEPAGETEMPLATE_DEVELOPER.fields_by_name['broadcast'].message_type = _GETBROADCASTCHANNELENTRY
-_CSTEAMTV_HOMEPAGECONTENTROW.fields_by_name['takeover'].message_type = _CSTEAMTV_HOMEPAGETEMPLATE_TAKEOVER
-_CSTEAMTV_HOMEPAGECONTENTROW.fields_by_name['single_game'].message_type = _CSTEAMTV_HOMEPAGETEMPLATE_SINGLEGAME
-_CSTEAMTV_HOMEPAGECONTENTROW.fields_by_name['game_list'].message_type = _CSTEAMTV_HOMEPAGETEMPLATE_GAMELIST
-_CSTEAMTV_HOMEPAGECONTENTROW.fields_by_name['quick_explore'].message_type = _CSTEAMTV_HOMEPAGETEMPLATE_QUICKEXPLORE
-_CSTEAMTV_HOMEPAGECONTENTROW.fields_by_name['conveyor_belt'].message_type = _CSTEAMTV_HOMEPAGETEMPLATE_CONVEYORBELT
-_CSTEAMTV_HOMEPAGECONTENTROW.fields_by_name['watch_party'].message_type = _CSTEAMTV_HOMEPAGETEMPLATE_WATCHPARTY
-_CSTEAMTV_HOMEPAGECONTENTROW.fields_by_name['developer'].message_type = _CSTEAMTV_HOMEPAGETEMPLATE_DEVELOPER
-_CSTEAMTV_HOMEPAGECONTENTROW.fields_by_name['event'].message_type = _CSTEAMTV_HOMEPAGETEMPLATE_EVENT
-_CSTEAMTV_GETHOMEPAGECONTENTS_RESPONSE.fields_by_name['rows'].message_type = _CSTEAMTV_HOMEPAGECONTENTROW
-_CSTEAMTV_GETBROADCASTCHANNELCLIPS_RESPONSE.fields_by_name['clips'].message_type = _CSTEAMTV_BROADCASTCLIPINFO
-_CFRIENDSLIST_GETCATEGORIES_RESPONSE.fields_by_name['categories'].message_type = _CFRIENDSLISTCATEGORY
-_CFRIENDSLIST_GETFAVORITES_RESPONSE.fields_by_name['favorites'].message_type = _CFRIENDSLISTFAVORITEENTRY
-_CFRIENDSLIST_SETFAVORITES_REQUEST.fields_by_name['favorites'].message_type = _CFRIENDSLISTFAVORITEENTRY
-_CFRIENDSLIST_FAVORITESCHANGED_NOTIFICATION.fields_by_name['favorites'].message_type = _CFRIENDSLISTFAVORITEENTRY
-_CFRIENDSLIST_GETFRIENDSLIST_RESPONSE.fields_by_name['friendslist'].message_type = steammessages__clientserver__friends__pb2._CMSGCLIENTFRIENDSLIST
-_CPRODUCTIMPRESSIONSFROMCLIENT_NOTIFICATION.fields_by_name['impressions'].message_type = _CPRODUCTIMPRESSIONSFROMCLIENT_NOTIFICATION_IMPRESSION
-DESCRIPTOR.message_types_by_name['CCommunity_GetApps_Request'] = _CCOMMUNITY_GETAPPS_REQUEST
-DESCRIPTOR.message_types_by_name['CCommunity_GetApps_Response'] = _CCOMMUNITY_GETAPPS_RESPONSE
-DESCRIPTOR.message_types_by_name['CCommunity_GetAppRichPresenceLocalization_Request'] = _CCOMMUNITY_GETAPPRICHPRESENCELOCALIZATION_REQUEST
-DESCRIPTOR.message_types_by_name['CCommunity_GetAppRichPresenceLocalization_Response'] = _CCOMMUNITY_GETAPPRICHPRESENCELOCALIZATION_RESPONSE
-DESCRIPTOR.message_types_by_name['CCommunity_GetAppRichPresenceLocalization_Response_Token'] = _CCOMMUNITY_GETAPPRICHPRESENCELOCALIZATION_RESPONSE_TOKEN
-DESCRIPTOR.message_types_by_name['CCommunity_GetAppRichPresenceLocalization_Response_TokenList'] = _CCOMMUNITY_GETAPPRICHPRESENCELOCALIZATION_RESPONSE_TOKENLIST
-DESCRIPTOR.message_types_by_name['CCommunity_Comment'] = _CCOMMUNITY_COMMENT
-DESCRIPTOR.message_types_by_name['CCommunity_GetCommentThread_Response'] = _CCOMMUNITY_GETCOMMENTTHREAD_RESPONSE
-DESCRIPTOR.message_types_by_name['CCommunity_PostCommentToThread_Response'] = _CCOMMUNITY_POSTCOMMENTTOTHREAD_RESPONSE
-DESCRIPTOR.message_types_by_name['CCommunity_DeleteCommentFromThread_Response'] = _CCOMMUNITY_DELETECOMMENTFROMTHREAD_RESPONSE
-DESCRIPTOR.message_types_by_name['CCommunity_RateCommentThread_Response'] = _CCOMMUNITY_RATECOMMENTTHREAD_RESPONSE
-DESCRIPTOR.message_types_by_name['CCommunity_GetCommentThreadRatings_Response'] = _CCOMMUNITY_GETCOMMENTTHREADRATINGS_RESPONSE
-DESCRIPTOR.message_types_by_name['CCommunity_RateClanAnnouncement_Request'] = _CCOMMUNITY_RATECLANANNOUNCEMENT_REQUEST
-DESCRIPTOR.message_types_by_name['CCommunity_RateClanAnnouncement_Response'] = _CCOMMUNITY_RATECLANANNOUNCEMENT_RESPONSE
-DESCRIPTOR.message_types_by_name['CCommunity_GetClanAnnouncementVoteForUser_Request'] = _CCOMMUNITY_GETCLANANNOUNCEMENTVOTEFORUSER_REQUEST
-DESCRIPTOR.message_types_by_name['CCommunity_GetClanAnnouncementVoteForUser_Response'] = _CCOMMUNITY_GETCLANANNOUNCEMENTVOTEFORUSER_RESPONSE
-DESCRIPTOR.message_types_by_name['CCommunity_GetAvatarHistory_Response'] = _CCOMMUNITY_GETAVATARHISTORY_RESPONSE
-DESCRIPTOR.message_types_by_name['CCommunity_GetAvatarHistory_Response_AvatarData'] = _CCOMMUNITY_GETAVATARHISTORY_RESPONSE_AVATARDATA
-DESCRIPTOR.message_types_by_name['CAppPriority'] = _CAPPPRIORITY
-DESCRIPTOR.message_types_by_name['CCommunity_GetUserPartnerEventNews_Response'] = _CCOMMUNITY_GETUSERPARTNEREVENTNEWS_RESPONSE
-DESCRIPTOR.message_types_by_name['CCommunity_PartnerEventResult'] = _CCOMMUNITY_PARTNEREVENTRESULT
-DESCRIPTOR.message_types_by_name['CCommunity_GetBestEventsForUser_Response'] = _CCOMMUNITY_GETBESTEVENTSFORUSER_RESPONSE
-DESCRIPTOR.message_types_by_name['CCommunity_ClearUserPartnerEventsAppPriorities_Response'] = _CCOMMUNITY_CLEARUSERPARTNEREVENTSAPPPRIORITIES_RESPONSE
-DESCRIPTOR.message_types_by_name['CCommunity_PartnerEventsAppPriority'] = _CCOMMUNITY_PARTNEREVENTSAPPPRIORITY
-DESCRIPTOR.message_types_by_name['CCommunity_GetUserPartnerEventsAppPriorities_Response'] = _CCOMMUNITY_GETUSERPARTNEREVENTSAPPPRIORITIES_RESPONSE
-DESCRIPTOR.message_types_by_name['CCommunity_ClearSinglePartnerEventsAppPriority_Response'] = _CCOMMUNITY_CLEARSINGLEPARTNEREVENTSAPPPRIORITY_RESPONSE
-DESCRIPTOR.message_types_by_name['CCommunity_PartnerEventsShowMoreForApp_Response'] = _CCOMMUNITY_PARTNEREVENTSSHOWMOREFORAPP_RESPONSE
-DESCRIPTOR.message_types_by_name['CCommunity_PartnerEventsShowLessForApp_Response'] = _CCOMMUNITY_PARTNEREVENTSSHOWLESSFORAPP_RESPONSE
-DESCRIPTOR.message_types_by_name['CCommunity_MarkPartnerEventsForUser_Request'] = _CCOMMUNITY_MARKPARTNEREVENTSFORUSER_REQUEST
-DESCRIPTOR.message_types_by_name['CCommunity_MarkPartnerEventsForUser_Request_PartnerEventMarking'] = _CCOMMUNITY_MARKPARTNEREVENTSFORUSER_REQUEST_PARTNEREVENTMARKING
-DESCRIPTOR.message_types_by_name['CCommunity_MarkPartnerEventsForUser_Response'] = _CCOMMUNITY_MARKPARTNEREVENTSFORUSER_RESPONSE
-DESCRIPTOR.message_types_by_name['CCommunity_GetUserPartnerEventViewStatus_Response'] = _CCOMMUNITY_GETUSERPARTNEREVENTVIEWSTATUS_RESPONSE
-DESCRIPTOR.message_types_by_name['CCommunity_GetUserPartnerEventViewStatus_Response_PartnerEvent'] = _CCOMMUNITY_GETUSERPARTNEREVENTVIEWSTATUS_RESPONSE_PARTNEREVENT
-DESCRIPTOR.message_types_by_name['CWebRTCClient_InitiateWebRTCConnection_Request'] = _CWEBRTCCLIENT_INITIATEWEBRTCCONNECTION_REQUEST
-DESCRIPTOR.message_types_by_name['CWebRTCClient_InitiateWebRTCConnection_Response'] = _CWEBRTCCLIENT_INITIATEWEBRTCCONNECTION_RESPONSE
-DESCRIPTOR.message_types_by_name['CWebRTC_WebRTCSessionConnected_Notification'] = _CWEBRTC_WEBRTCSESSIONCONNECTED_NOTIFICATION
-DESCRIPTOR.message_types_by_name['CWebRTC_WebRTCUpdateRemoteDescription_Notification'] = _CWEBRTC_WEBRTCUPDATEREMOTEDESCRIPTION_NOTIFICATION
-DESCRIPTOR.message_types_by_name['CWebRTC_WebRTCUpdateRemoteDescription_Notification_CSSRCToAccountIDMapping'] = _CWEBRTC_WEBRTCUPDATEREMOTEDESCRIPTION_NOTIFICATION_CSSRCTOACCOUNTIDMAPPING
-DESCRIPTOR.message_types_by_name['CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Request'] = _CWEBRTCCLIENT_ACKNOWLEDGEUPDATEDREMOTEDESCRIPTION_REQUEST
-DESCRIPTOR.message_types_by_name['CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Response'] = _CWEBRTCCLIENT_ACKNOWLEDGEUPDATEDREMOTEDESCRIPTION_RESPONSE
-DESCRIPTOR.message_types_by_name['CVoiceChat_RequestOneOnOneChat_Request'] = _CVOICECHAT_REQUESTONEONONECHAT_REQUEST
-DESCRIPTOR.message_types_by_name['CVoiceChat_RequestOneOnOneChat_Response'] = _CVOICECHAT_REQUESTONEONONECHAT_RESPONSE
-DESCRIPTOR.message_types_by_name['CVoiceChat_OneOnOneChatRequested_Notification'] = _CVOICECHAT_ONEONONECHATREQUESTED_NOTIFICATION
-DESCRIPTOR.message_types_by_name['CVoiceChat_AnswerOneOnOneChat_Request'] = _CVOICECHAT_ANSWERONEONONECHAT_REQUEST
-DESCRIPTOR.message_types_by_name['CVoiceChat_AnswerOneOnOneChat_Response'] = _CVOICECHAT_ANSWERONEONONECHAT_RESPONSE
-DESCRIPTOR.message_types_by_name['CVoiceChat_OneOnOneChatRequestResponse_Notification'] = _CVOICECHAT_ONEONONECHATREQUESTRESPONSE_NOTIFICATION
-DESCRIPTOR.message_types_by_name['CVoiceChat_EndOneOnOneChat_Request'] = _CVOICECHAT_ENDONEONONECHAT_REQUEST
-DESCRIPTOR.message_types_by_name['CVoiceChat_EndOneOnOneChat_Response'] = _CVOICECHAT_ENDONEONONECHAT_RESPONSE
-DESCRIPTOR.message_types_by_name['CVoiceChat_LeaveOneOnOneChat_Request'] = _CVOICECHAT_LEAVEONEONONECHAT_REQUEST
-DESCRIPTOR.message_types_by_name['CVoiceChat_LeaveOneOnOneChat_Response'] = _CVOICECHAT_LEAVEONEONONECHAT_RESPONSE
-DESCRIPTOR.message_types_by_name['CVoiceChat_UserJoinedVoiceChat_Notification'] = _CVOICECHAT_USERJOINEDVOICECHAT_NOTIFICATION
-DESCRIPTOR.message_types_by_name['CVoiceChat_UserVoiceStatus_Notification'] = _CVOICECHAT_USERVOICESTATUS_NOTIFICATION
-DESCRIPTOR.message_types_by_name['CVoiceChat_AllMembersStatus_Notification'] = _CVOICECHAT_ALLMEMBERSSTATUS_NOTIFICATION
-DESCRIPTOR.message_types_by_name['CVoiceChat_UpdateVoiceChatWebRTCData_Request'] = _CVOICECHAT_UPDATEVOICECHATWEBRTCDATA_REQUEST
-DESCRIPTOR.message_types_by_name['CVoiceChat_UpdateVoiceChatWebRTCData_Response'] = _CVOICECHAT_UPDATEVOICECHATWEBRTCDATA_RESPONSE
-DESCRIPTOR.message_types_by_name['CVoiceChat_UploadClientVoiceChatLogs_Request'] = _CVOICECHAT_UPLOADCLIENTVOICECHATLOGS_REQUEST
-DESCRIPTOR.message_types_by_name['CVoiceChat_UploadClientVoiceChatLogs_Response'] = _CVOICECHAT_UPLOADCLIENTVOICECHATLOGS_RESPONSE
-DESCRIPTOR.message_types_by_name['CVoiceChat_LeaveVoiceChat_Response'] = _CVOICECHAT_LEAVEVOICECHAT_RESPONSE
-DESCRIPTOR.message_types_by_name['CVoiceChat_UserLeftVoiceChat_Notification'] = _CVOICECHAT_USERLEFTVOICECHAT_NOTIFICATION
-DESCRIPTOR.message_types_by_name['CVoiceChat_VoiceChatEnded_Notification'] = _CVOICECHAT_VOICECHATENDED_NOTIFICATION
-DESCRIPTOR.message_types_by_name['CSteamTV_CreateBroadcastChannel_Response'] = _CSTEAMTV_CREATEBROADCASTCHANNEL_RESPONSE
-DESCRIPTOR.message_types_by_name['CSteamTV_GetBroadcastChannelID_Response'] = _CSTEAMTV_GETBROADCASTCHANNELID_RESPONSE
-DESCRIPTOR.message_types_by_name['CSteamTV_SetBroadcastChannelProfile_Response'] = _CSTEAMTV_SETBROADCASTCHANNELPROFILE_RESPONSE
-DESCRIPTOR.message_types_by_name['CSteamTV_GetBroadcastChannelProfile_Response'] = _CSTEAMTV_GETBROADCASTCHANNELPROFILE_RESPONSE
-DESCRIPTOR.message_types_by_name['CSteamTV_SetBroadcastChannelImage_Response'] = _CSTEAMTV_SETBROADCASTCHANNELIMAGE_RESPONSE
-DESCRIPTOR.message_types_by_name['CSteamTV_GetBroadcastChannelImages_Response'] = _CSTEAMTV_GETBROADCASTCHANNELIMAGES_RESPONSE
-DESCRIPTOR.message_types_by_name['CSteamTV_GetBroadcastChannelImages_Response_Images'] = _CSTEAMTV_GETBROADCASTCHANNELIMAGES_RESPONSE_IMAGES
-DESCRIPTOR.message_types_by_name['CSteamTV_GetBroadcastChannelLinks_Response'] = _CSTEAMTV_GETBROADCASTCHANNELLINKS_RESPONSE
-DESCRIPTOR.message_types_by_name['CSteamTV_GetBroadcastChannelLinks_Response_Links'] = _CSTEAMTV_GETBROADCASTCHANNELLINKS_RESPONSE_LINKS
-DESCRIPTOR.message_types_by_name['CSteamTV_SetBroadcastChannelLinkRegions_Request_Links'] = _CSTEAMTV_SETBROADCASTCHANNELLINKREGIONS_REQUEST_LINKS
-DESCRIPTOR.message_types_by_name['CSteamTV_SetBroadcastChannelLinkRegions_Response'] = _CSTEAMTV_SETBROADCASTCHANNELLINKREGIONS_RESPONSE
-DESCRIPTOR.message_types_by_name['CSteamTV_GetBroadcastChannelStatus_Response'] = _CSTEAMTV_GETBROADCASTCHANNELSTATUS_RESPONSE
-DESCRIPTOR.message_types_by_name['GetBroadcastChannelEntry'] = _GETBROADCASTCHANNELENTRY
-DESCRIPTOR.message_types_by_name['CSteamTV_GetFollowedChannels_Response'] = _CSTEAMTV_GETFOLLOWEDCHANNELS_RESPONSE
-DESCRIPTOR.message_types_by_name['CSteamTV_GetSubscribedChannels_Response'] = _CSTEAMTV_GETSUBSCRIBEDCHANNELS_RESPONSE
-DESCRIPTOR.message_types_by_name['CSteamTV_FollowBroadcastChannel_Response'] = _CSTEAMTV_FOLLOWBROADCASTCHANNEL_RESPONSE
-DESCRIPTOR.message_types_by_name['CSteamTV_SubscribeBroadcastChannel_Response'] = _CSTEAMTV_SUBSCRIBEBROADCASTCHANNEL_RESPONSE
-DESCRIPTOR.message_types_by_name['CSteamTV_ReportBroadcastChannel_Response'] = _CSTEAMTV_REPORTBROADCASTCHANNEL_RESPONSE
-DESCRIPTOR.message_types_by_name['CSteamTV_GetBroadcastChannelInteraction_Response'] = _CSTEAMTV_GETBROADCASTCHANNELINTERACTION_RESPONSE
-DESCRIPTOR.message_types_by_name['CSteamTV_Game'] = _CSTEAMTV_GAME
-DESCRIPTOR.message_types_by_name['CSteamTV_GetGames_Response'] = _CSTEAMTV_GETGAMES_RESPONSE
-DESCRIPTOR.message_types_by_name['CSteamTV_GetChannels_Response'] = _CSTEAMTV_GETCHANNELS_RESPONSE
-DESCRIPTOR.message_types_by_name['CSteamTV_GetBroadcastChannelBroadcasters_Response'] = _CSTEAMTV_GETBROADCASTCHANNELBROADCASTERS_RESPONSE
-DESCRIPTOR.message_types_by_name['CSteamTV_GetBroadcastChannelBroadcasters_Response_Broadcaster'] = _CSTEAMTV_GETBROADCASTCHANNELBROADCASTERS_RESPONSE_BROADCASTER
-DESCRIPTOR.message_types_by_name['CSteamTV_ChatBan'] = _CSTEAMTV_CHATBAN
-DESCRIPTOR.message_types_by_name['CSteamTV_AddChatBan_Request'] = _CSTEAMTV_ADDCHATBAN_REQUEST
-DESCRIPTOR.message_types_by_name['CSteamTV_AddChatBan_Response'] = _CSTEAMTV_ADDCHATBAN_RESPONSE
-DESCRIPTOR.message_types_by_name['CSteamTV_GetChatBans_Response'] = _CSTEAMTV_GETCHATBANS_RESPONSE
-DESCRIPTOR.message_types_by_name['CSteamTV_AddChatModerator_Request'] = _CSTEAMTV_ADDCHATMODERATOR_REQUEST
-DESCRIPTOR.message_types_by_name['CSteamTV_AddChatModerator_Response'] = _CSTEAMTV_ADDCHATMODERATOR_RESPONSE
-DESCRIPTOR.message_types_by_name['CSteamTV_GetChatModerators_Request'] = _CSTEAMTV_GETCHATMODERATORS_REQUEST
-DESCRIPTOR.message_types_by_name['CSteamTV_ChatModerator'] = _CSTEAMTV_CHATMODERATOR
-DESCRIPTOR.message_types_by_name['CSteamTV_GetChatModerators_Response'] = _CSTEAMTV_GETCHATMODERATORS_RESPONSE
-DESCRIPTOR.message_types_by_name['CSteamTV_AddWordBan_Response'] = _CSTEAMTV_ADDWORDBAN_RESPONSE
-DESCRIPTOR.message_types_by_name['CSteamTV_GetWordBans_Response'] = _CSTEAMTV_GETWORDBANS_RESPONSE
-DESCRIPTOR.message_types_by_name['CSteamTV_JoinChat_Request'] = _CSTEAMTV_JOINCHAT_REQUEST
-DESCRIPTOR.message_types_by_name['CSteamTV_JoinChat_Response'] = _CSTEAMTV_JOINCHAT_RESPONSE
-DESCRIPTOR.message_types_by_name['CSteamTV_Search_Response'] = _CSTEAMTV_SEARCH_RESPONSE
-DESCRIPTOR.message_types_by_name['CSteamTV_GetSteamTVUserSettings_Response'] = _CSTEAMTV_GETSTEAMTVUSERSETTINGS_RESPONSE
-DESCRIPTOR.message_types_by_name['CSteamTV_SetSteamTVUserSettings_Response'] = _CSTEAMTV_SETSTEAMTVUSERSETTINGS_RESPONSE
-DESCRIPTOR.message_types_by_name['CSteamTV_GetMyBroadcastChannels_Response'] = _CSTEAMTV_GETMYBROADCASTCHANNELS_RESPONSE
-DESCRIPTOR.message_types_by_name['CSteamTV_HomePageTemplate_Takeover'] = _CSTEAMTV_HOMEPAGETEMPLATE_TAKEOVER
-DESCRIPTOR.message_types_by_name['CSteamTV_HomePageTemplate_SingleGame'] = _CSTEAMTV_HOMEPAGETEMPLATE_SINGLEGAME
-DESCRIPTOR.message_types_by_name['GameListEntry'] = _GAMELISTENTRY
-DESCRIPTOR.message_types_by_name['CSteamTV_HomePageTemplate_GameList'] = _CSTEAMTV_HOMEPAGETEMPLATE_GAMELIST
-DESCRIPTOR.message_types_by_name['CSteamTV_HomePageTemplate_QuickExplore'] = _CSTEAMTV_HOMEPAGETEMPLATE_QUICKEXPLORE
-DESCRIPTOR.message_types_by_name['CSteamTV_HomePageTemplate_ConveyorBelt'] = _CSTEAMTV_HOMEPAGETEMPLATE_CONVEYORBELT
-DESCRIPTOR.message_types_by_name['CSteamTV_HomePageTemplate_WatchParty'] = _CSTEAMTV_HOMEPAGETEMPLATE_WATCHPARTY
-DESCRIPTOR.message_types_by_name['CSteamTV_HomePageTemplate_Developer'] = _CSTEAMTV_HOMEPAGETEMPLATE_DEVELOPER
-DESCRIPTOR.message_types_by_name['CSteamTV_HomePageTemplate_Event'] = _CSTEAMTV_HOMEPAGETEMPLATE_EVENT
-DESCRIPTOR.message_types_by_name['CSteamTV_HomePageContentRow'] = _CSTEAMTV_HOMEPAGECONTENTROW
-DESCRIPTOR.message_types_by_name['CSteamTV_GetHomePageContents_Response'] = _CSTEAMTV_GETHOMEPAGECONTENTS_RESPONSE
-DESCRIPTOR.message_types_by_name['CSteamTV_BroadcastClipInfo'] = _CSTEAMTV_BROADCASTCLIPINFO
-DESCRIPTOR.message_types_by_name['CSteamTV_GetBroadcastChannelClips_Response'] = _CSTEAMTV_GETBROADCASTCHANNELCLIPS_RESPONSE
-DESCRIPTOR.message_types_by_name['CFriendsListCategory'] = _CFRIENDSLISTCATEGORY
-DESCRIPTOR.message_types_by_name['CFriendsList_GetCategories_Request'] = _CFRIENDSLIST_GETCATEGORIES_REQUEST
-DESCRIPTOR.message_types_by_name['CFriendsList_GetCategories_Response'] = _CFRIENDSLIST_GETCATEGORIES_RESPONSE
-DESCRIPTOR.message_types_by_name['CFriendsListFavoriteEntry'] = _CFRIENDSLISTFAVORITEENTRY
-DESCRIPTOR.message_types_by_name['CFriendsList_GetFavorites_Request'] = _CFRIENDSLIST_GETFAVORITES_REQUEST
-DESCRIPTOR.message_types_by_name['CFriendsList_GetFavorites_Response'] = _CFRIENDSLIST_GETFAVORITES_RESPONSE
-DESCRIPTOR.message_types_by_name['CFriendsList_SetFavorites_Request'] = _CFRIENDSLIST_SETFAVORITES_REQUEST
-DESCRIPTOR.message_types_by_name['CFriendsList_SetFavorites_Response'] = _CFRIENDSLIST_SETFAVORITES_RESPONSE
-DESCRIPTOR.message_types_by_name['CFriendsList_FavoritesChanged_Notification'] = _CFRIENDSLIST_FAVORITESCHANGED_NOTIFICATION
-DESCRIPTOR.message_types_by_name['CFriendsList_GetFriendsList_Request'] = _CFRIENDSLIST_GETFRIENDSLIST_REQUEST
-DESCRIPTOR.message_types_by_name['CFriendsList_GetFriendsList_Response'] = _CFRIENDSLIST_GETFRIENDSLIST_RESPONSE
-DESCRIPTOR.message_types_by_name['CClan_RespondToClanInvite_Request'] = _CCLAN_RESPONDTOCLANINVITE_REQUEST
-DESCRIPTOR.message_types_by_name['CClan_RespondToClanInvite_Response'] = _CCLAN_RESPONDTOCLANINVITE_RESPONSE
-DESCRIPTOR.message_types_by_name['CProductImpressionsFromClient_Notification'] = _CPRODUCTIMPRESSIONSFROMCLIENT_NOTIFICATION
-DESCRIPTOR.message_types_by_name['CProductImpressionsFromClient_Notification_Impression'] = _CPRODUCTIMPRESSIONSFROMCLIENT_NOTIFICATION_IMPRESSION
-DESCRIPTOR.message_types_by_name['NotImplemented'] = _NOTIMPLEMENTED
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
-CCommunity_GetApps_Request = _reflection.GeneratedProtocolMessageType('CCommunity_GetApps_Request', (_message.Message,), dict(
-  DESCRIPTOR = _CCOMMUNITY_GETAPPS_REQUEST,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CCommunity_GetApps_Request)
-  ))
-_sym_db.RegisterMessage(CCommunity_GetApps_Request)
-
-CCommunity_GetApps_Response = _reflection.GeneratedProtocolMessageType('CCommunity_GetApps_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CCOMMUNITY_GETAPPS_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CCommunity_GetApps_Response)
-  ))
-_sym_db.RegisterMessage(CCommunity_GetApps_Response)
-
-CCommunity_GetAppRichPresenceLocalization_Request = _reflection.GeneratedProtocolMessageType('CCommunity_GetAppRichPresenceLocalization_Request', (_message.Message,), dict(
-  DESCRIPTOR = _CCOMMUNITY_GETAPPRICHPRESENCELOCALIZATION_REQUEST,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CCommunity_GetAppRichPresenceLocalization_Request)
-  ))
-_sym_db.RegisterMessage(CCommunity_GetAppRichPresenceLocalization_Request)
-
-CCommunity_GetAppRichPresenceLocalization_Response = _reflection.GeneratedProtocolMessageType('CCommunity_GetAppRichPresenceLocalization_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CCOMMUNITY_GETAPPRICHPRESENCELOCALIZATION_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CCommunity_GetAppRichPresenceLocalization_Response)
-  ))
-_sym_db.RegisterMessage(CCommunity_GetAppRichPresenceLocalization_Response)
-
-CCommunity_GetAppRichPresenceLocalization_Response_Token = _reflection.GeneratedProtocolMessageType('CCommunity_GetAppRichPresenceLocalization_Response_Token', (_message.Message,), dict(
-  DESCRIPTOR = _CCOMMUNITY_GETAPPRICHPRESENCELOCALIZATION_RESPONSE_TOKEN,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CCommunity_GetAppRichPresenceLocalization_Response_Token)
-  ))
-_sym_db.RegisterMessage(CCommunity_GetAppRichPresenceLocalization_Response_Token)
-
-CCommunity_GetAppRichPresenceLocalization_Response_TokenList = _reflection.GeneratedProtocolMessageType('CCommunity_GetAppRichPresenceLocalization_Response_TokenList', (_message.Message,), dict(
-  DESCRIPTOR = _CCOMMUNITY_GETAPPRICHPRESENCELOCALIZATION_RESPONSE_TOKENLIST,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CCommunity_GetAppRichPresenceLocalization_Response_TokenList)
-  ))
-_sym_db.RegisterMessage(CCommunity_GetAppRichPresenceLocalization_Response_TokenList)
-
-CCommunity_Comment = _reflection.GeneratedProtocolMessageType('CCommunity_Comment', (_message.Message,), dict(
-  DESCRIPTOR = _CCOMMUNITY_COMMENT,
+CWebRTCClient_InitiateWebRTCConnection_Request = _reflection.GeneratedProtocolMessageType('CWebRTCClient_InitiateWebRTCConnection_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CWEBRTCCLIENT_INITIATEWEBRTCCONNECTION_REQUEST,
   __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CCommunity_Comment)
+  # @@protoc_insertion_point(class_scope:CWebRTCClient_InitiateWebRTCConnection_Request)
   ))
-_sym_db.RegisterMessage(CCommunity_Comment)
+_sym_db.RegisterMessage(CWebRTCClient_InitiateWebRTCConnection_Request)
 
-CCommunity_GetCommentThread_Response = _reflection.GeneratedProtocolMessageType('CCommunity_GetCommentThread_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CCOMMUNITY_GETCOMMENTTHREAD_RESPONSE,
+CWebRTCClient_InitiateWebRTCConnection_Response = _reflection.GeneratedProtocolMessageType('CWebRTCClient_InitiateWebRTCConnection_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CWEBRTCCLIENT_INITIATEWEBRTCCONNECTION_RESPONSE,
   __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CCommunity_GetCommentThread_Response)
+  # @@protoc_insertion_point(class_scope:CWebRTCClient_InitiateWebRTCConnection_Response)
   ))
-_sym_db.RegisterMessage(CCommunity_GetCommentThread_Response)
+_sym_db.RegisterMessage(CWebRTCClient_InitiateWebRTCConnection_Response)
 
-CCommunity_PostCommentToThread_Response = _reflection.GeneratedProtocolMessageType('CCommunity_PostCommentToThread_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CCOMMUNITY_POSTCOMMENTTOTHREAD_RESPONSE,
+CWebRTC_WebRTCSessionConnected_Notification = _reflection.GeneratedProtocolMessageType('CWebRTC_WebRTCSessionConnected_Notification', (_message.Message,), dict(
+  DESCRIPTOR = _CWEBRTC_WEBRTCSESSIONCONNECTED_NOTIFICATION,
   __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CCommunity_PostCommentToThread_Response)
+  # @@protoc_insertion_point(class_scope:CWebRTC_WebRTCSessionConnected_Notification)
   ))
-_sym_db.RegisterMessage(CCommunity_PostCommentToThread_Response)
+_sym_db.RegisterMessage(CWebRTC_WebRTCSessionConnected_Notification)
 
-CCommunity_DeleteCommentFromThread_Response = _reflection.GeneratedProtocolMessageType('CCommunity_DeleteCommentFromThread_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CCOMMUNITY_DELETECOMMENTFROMTHREAD_RESPONSE,
+CWebRTC_WebRTCUpdateRemoteDescription_Notification = _reflection.GeneratedProtocolMessageType('CWebRTC_WebRTCUpdateRemoteDescription_Notification', (_message.Message,), dict(
+  DESCRIPTOR = _CWEBRTC_WEBRTCUPDATEREMOTEDESCRIPTION_NOTIFICATION,
   __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CCommunity_DeleteCommentFromThread_Response)
+  # @@protoc_insertion_point(class_scope:CWebRTC_WebRTCUpdateRemoteDescription_Notification)
   ))
-_sym_db.RegisterMessage(CCommunity_DeleteCommentFromThread_Response)
+_sym_db.RegisterMessage(CWebRTC_WebRTCUpdateRemoteDescription_Notification)
 
-CCommunity_RateCommentThread_Response = _reflection.GeneratedProtocolMessageType('CCommunity_RateCommentThread_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CCOMMUNITY_RATECOMMENTTHREAD_RESPONSE,
+CWebRTC_WebRTCUpdateRemoteDescription_Notification_CSSRCToAccountIDMapping = _reflection.GeneratedProtocolMessageType('CWebRTC_WebRTCUpdateRemoteDescription_Notification_CSSRCToAccountIDMapping', (_message.Message,), dict(
+  DESCRIPTOR = _CWEBRTC_WEBRTCUPDATEREMOTEDESCRIPTION_NOTIFICATION_CSSRCTOACCOUNTIDMAPPING,
   __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CCommunity_RateCommentThread_Response)
+  # @@protoc_insertion_point(class_scope:CWebRTC_WebRTCUpdateRemoteDescription_Notification_CSSRCToAccountIDMapping)
   ))
-_sym_db.RegisterMessage(CCommunity_RateCommentThread_Response)
+_sym_db.RegisterMessage(CWebRTC_WebRTCUpdateRemoteDescription_Notification_CSSRCToAccountIDMapping)
 
-CCommunity_GetCommentThreadRatings_Response = _reflection.GeneratedProtocolMessageType('CCommunity_GetCommentThreadRatings_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CCOMMUNITY_GETCOMMENTTHREADRATINGS_RESPONSE,
+CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Request = _reflection.GeneratedProtocolMessageType('CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CWEBRTCCLIENT_ACKNOWLEDGEUPDATEDREMOTEDESCRIPTION_REQUEST,
   __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CCommunity_GetCommentThreadRatings_Response)
+  # @@protoc_insertion_point(class_scope:CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Request)
   ))
-_sym_db.RegisterMessage(CCommunity_GetCommentThreadRatings_Response)
+_sym_db.RegisterMessage(CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Request)
 
-CCommunity_RateClanAnnouncement_Request = _reflection.GeneratedProtocolMessageType('CCommunity_RateClanAnnouncement_Request', (_message.Message,), dict(
-  DESCRIPTOR = _CCOMMUNITY_RATECLANANNOUNCEMENT_REQUEST,
+CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Response = _reflection.GeneratedProtocolMessageType('CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CWEBRTCCLIENT_ACKNOWLEDGEUPDATEDREMOTEDESCRIPTION_RESPONSE,
   __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CCommunity_RateClanAnnouncement_Request)
+  # @@protoc_insertion_point(class_scope:CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Response)
   ))
-_sym_db.RegisterMessage(CCommunity_RateClanAnnouncement_Request)
+_sym_db.RegisterMessage(CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Response)
 
-CCommunity_RateClanAnnouncement_Response = _reflection.GeneratedProtocolMessageType('CCommunity_RateClanAnnouncement_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CCOMMUNITY_RATECLANANNOUNCEMENT_RESPONSE,
+CMobilePerAccount_GetSettings_Request = _reflection.GeneratedProtocolMessageType('CMobilePerAccount_GetSettings_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CMOBILEPERACCOUNT_GETSETTINGS_REQUEST,
   __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CCommunity_RateClanAnnouncement_Response)
+  # @@protoc_insertion_point(class_scope:CMobilePerAccount_GetSettings_Request)
   ))
-_sym_db.RegisterMessage(CCommunity_RateClanAnnouncement_Response)
+_sym_db.RegisterMessage(CMobilePerAccount_GetSettings_Request)
 
-CCommunity_GetClanAnnouncementVoteForUser_Request = _reflection.GeneratedProtocolMessageType('CCommunity_GetClanAnnouncementVoteForUser_Request', (_message.Message,), dict(
-  DESCRIPTOR = _CCOMMUNITY_GETCLANANNOUNCEMENTVOTEFORUSER_REQUEST,
+CMobilePerAccount_GetSettings_Response = _reflection.GeneratedProtocolMessageType('CMobilePerAccount_GetSettings_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CMOBILEPERACCOUNT_GETSETTINGS_RESPONSE,
   __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CCommunity_GetClanAnnouncementVoteForUser_Request)
+  # @@protoc_insertion_point(class_scope:CMobilePerAccount_GetSettings_Response)
   ))
-_sym_db.RegisterMessage(CCommunity_GetClanAnnouncementVoteForUser_Request)
+_sym_db.RegisterMessage(CMobilePerAccount_GetSettings_Response)
 
-CCommunity_GetClanAnnouncementVoteForUser_Response = _reflection.GeneratedProtocolMessageType('CCommunity_GetClanAnnouncementVoteForUser_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CCOMMUNITY_GETCLANANNOUNCEMENTVOTEFORUSER_RESPONSE,
+CMobilePerAccount_SetSettings_Request = _reflection.GeneratedProtocolMessageType('CMobilePerAccount_SetSettings_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CMOBILEPERACCOUNT_SETSETTINGS_REQUEST,
   __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CCommunity_GetClanAnnouncementVoteForUser_Response)
+  # @@protoc_insertion_point(class_scope:CMobilePerAccount_SetSettings_Request)
   ))
-_sym_db.RegisterMessage(CCommunity_GetClanAnnouncementVoteForUser_Response)
+_sym_db.RegisterMessage(CMobilePerAccount_SetSettings_Request)
 
-CCommunity_GetAvatarHistory_Response = _reflection.GeneratedProtocolMessageType('CCommunity_GetAvatarHistory_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CCOMMUNITY_GETAVATARHISTORY_RESPONSE,
+CMobilePerAccount_SetSettings_Response = _reflection.GeneratedProtocolMessageType('CMobilePerAccount_SetSettings_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CMOBILEPERACCOUNT_SETSETTINGS_RESPONSE,
   __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CCommunity_GetAvatarHistory_Response)
+  # @@protoc_insertion_point(class_scope:CMobilePerAccount_SetSettings_Response)
   ))
-_sym_db.RegisterMessage(CCommunity_GetAvatarHistory_Response)
+_sym_db.RegisterMessage(CMobilePerAccount_SetSettings_Response)
 
-CCommunity_GetAvatarHistory_Response_AvatarData = _reflection.GeneratedProtocolMessageType('CCommunity_GetAvatarHistory_Response_AvatarData', (_message.Message,), dict(
-  DESCRIPTOR = _CCOMMUNITY_GETAVATARHISTORY_RESPONSE_AVATARDATA,
+CMobileDevice_RegisterMobileDevice_Request = _reflection.GeneratedProtocolMessageType('CMobileDevice_RegisterMobileDevice_Request', (_message.Message,), dict(
+  DESCRIPTOR = _CMOBILEDEVICE_REGISTERMOBILEDEVICE_REQUEST,
   __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CCommunity_GetAvatarHistory_Response_AvatarData)
+  # @@protoc_insertion_point(class_scope:CMobileDevice_RegisterMobileDevice_Request)
   ))
-_sym_db.RegisterMessage(CCommunity_GetAvatarHistory_Response_AvatarData)
+_sym_db.RegisterMessage(CMobileDevice_RegisterMobileDevice_Request)
 
-CAppPriority = _reflection.GeneratedProtocolMessageType('CAppPriority', (_message.Message,), dict(
-  DESCRIPTOR = _CAPPPRIORITY,
+CMobileDevice_RegisterMobileDevice_Response = _reflection.GeneratedProtocolMessageType('CMobileDevice_RegisterMobileDevice_Response', (_message.Message,), dict(
+  DESCRIPTOR = _CMOBILEDEVICE_REGISTERMOBILEDEVICE_RESPONSE,
   __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CAppPriority)
+  # @@protoc_insertion_point(class_scope:CMobileDevice_RegisterMobileDevice_Response)
   ))
-_sym_db.RegisterMessage(CAppPriority)
+_sym_db.RegisterMessage(CMobileDevice_RegisterMobileDevice_Response)
 
-CCommunity_GetUserPartnerEventNews_Response = _reflection.GeneratedProtocolMessageType('CCommunity_GetUserPartnerEventNews_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CCOMMUNITY_GETUSERPARTNEREVENTNEWS_RESPONSE,
+CMobileDevice_DeregisterMobileDevice_Notification = _reflection.GeneratedProtocolMessageType('CMobileDevice_DeregisterMobileDevice_Notification', (_message.Message,), dict(
+  DESCRIPTOR = _CMOBILEDEVICE_DEREGISTERMOBILEDEVICE_NOTIFICATION,
   __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CCommunity_GetUserPartnerEventNews_Response)
+  # @@protoc_insertion_point(class_scope:CMobileDevice_DeregisterMobileDevice_Notification)
   ))
-_sym_db.RegisterMessage(CCommunity_GetUserPartnerEventNews_Response)
+_sym_db.RegisterMessage(CMobileDevice_DeregisterMobileDevice_Notification)
 
-CCommunity_PartnerEventResult = _reflection.GeneratedProtocolMessageType('CCommunity_PartnerEventResult', (_message.Message,), dict(
-  DESCRIPTOR = _CCOMMUNITY_PARTNEREVENTRESULT,
+UnknownProto = _reflection.GeneratedProtocolMessageType('UnknownProto', (_message.Message,), dict(
+  DESCRIPTOR = _UNKNOWNPROTO,
   __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CCommunity_PartnerEventResult)
+  # @@protoc_insertion_point(class_scope:UnknownProto)
   ))
-_sym_db.RegisterMessage(CCommunity_PartnerEventResult)
+_sym_db.RegisterMessage(UnknownProto)
 
-CCommunity_GetBestEventsForUser_Response = _reflection.GeneratedProtocolMessageType('CCommunity_GetBestEventsForUser_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CCOMMUNITY_GETBESTEVENTSFORUSER_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CCommunity_GetBestEventsForUser_Response)
-  ))
-_sym_db.RegisterMessage(CCommunity_GetBestEventsForUser_Response)
 
-CCommunity_ClearUserPartnerEventsAppPriorities_Response = _reflection.GeneratedProtocolMessageType('CCommunity_ClearUserPartnerEventsAppPriorities_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CCOMMUNITY_CLEARUSERPARTNEREVENTSAPPPRIORITIES_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CCommunity_ClearUserPartnerEventsAppPriorities_Response)
-  ))
-_sym_db.RegisterMessage(CCommunity_ClearUserPartnerEventsAppPriorities_Response)
+DESCRIPTOR._options = None
+_CCOMMUNITY_GETUSERPARTNEREVENTNEWS_REQUEST.fields_by_name['filter_event_type']._options = None
+_CCOMMUNITY_MARKPARTNEREVENTSFORUSER_REQUEST_PARTNEREVENTMARKING.fields_by_name['display_location']._options = None
+_CPRODUCTIMPRESSIONSFROMCLIENT_NOTIFICATION_IMPRESSION.fields_by_name['type']._options = None
+_CMOBILEDEVICE_REGISTERMOBILEDEVICE_REQUEST.fields_by_name['mobile_app']._options = None
 
-CCommunity_PartnerEventsAppPriority = _reflection.GeneratedProtocolMessageType('CCommunity_PartnerEventsAppPriority', (_message.Message,), dict(
-  DESCRIPTOR = _CCOMMUNITY_PARTNEREVENTSAPPPRIORITY,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CCommunity_PartnerEventsAppPriority)
-  ))
-_sym_db.RegisterMessage(CCommunity_PartnerEventsAppPriority)
-
-CCommunity_GetUserPartnerEventsAppPriorities_Response = _reflection.GeneratedProtocolMessageType('CCommunity_GetUserPartnerEventsAppPriorities_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CCOMMUNITY_GETUSERPARTNEREVENTSAPPPRIORITIES_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CCommunity_GetUserPartnerEventsAppPriorities_Response)
-  ))
-_sym_db.RegisterMessage(CCommunity_GetUserPartnerEventsAppPriorities_Response)
-
-CCommunity_ClearSinglePartnerEventsAppPriority_Response = _reflection.GeneratedProtocolMessageType('CCommunity_ClearSinglePartnerEventsAppPriority_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CCOMMUNITY_CLEARSINGLEPARTNEREVENTSAPPPRIORITY_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CCommunity_ClearSinglePartnerEventsAppPriority_Response)
-  ))
-_sym_db.RegisterMessage(CCommunity_ClearSinglePartnerEventsAppPriority_Response)
-
-CCommunity_PartnerEventsShowMoreForApp_Response = _reflection.GeneratedProtocolMessageType('CCommunity_PartnerEventsShowMoreForApp_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CCOMMUNITY_PARTNEREVENTSSHOWMOREFORAPP_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CCommunity_PartnerEventsShowMoreForApp_Response)
-  ))
-_sym_db.RegisterMessage(CCommunity_PartnerEventsShowMoreForApp_Response)
-
-CCommunity_PartnerEventsShowLessForApp_Response = _reflection.GeneratedProtocolMessageType('CCommunity_PartnerEventsShowLessForApp_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CCOMMUNITY_PARTNEREVENTSSHOWLESSFORAPP_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CCommunity_PartnerEventsShowLessForApp_Response)
-  ))
-_sym_db.RegisterMessage(CCommunity_PartnerEventsShowLessForApp_Response)
-
-CCommunity_MarkPartnerEventsForUser_Request = _reflection.GeneratedProtocolMessageType('CCommunity_MarkPartnerEventsForUser_Request', (_message.Message,), dict(
-  DESCRIPTOR = _CCOMMUNITY_MARKPARTNEREVENTSFORUSER_REQUEST,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CCommunity_MarkPartnerEventsForUser_Request)
-  ))
-_sym_db.RegisterMessage(CCommunity_MarkPartnerEventsForUser_Request)
-
-CCommunity_MarkPartnerEventsForUser_Request_PartnerEventMarking = _reflection.GeneratedProtocolMessageType('CCommunity_MarkPartnerEventsForUser_Request_PartnerEventMarking', (_message.Message,), dict(
-  DESCRIPTOR = _CCOMMUNITY_MARKPARTNEREVENTSFORUSER_REQUEST_PARTNEREVENTMARKING,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CCommunity_MarkPartnerEventsForUser_Request_PartnerEventMarking)
-  ))
-_sym_db.RegisterMessage(CCommunity_MarkPartnerEventsForUser_Request_PartnerEventMarking)
-
-CCommunity_MarkPartnerEventsForUser_Response = _reflection.GeneratedProtocolMessageType('CCommunity_MarkPartnerEventsForUser_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CCOMMUNITY_MARKPARTNEREVENTSFORUSER_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CCommunity_MarkPartnerEventsForUser_Response)
-  ))
-_sym_db.RegisterMessage(CCommunity_MarkPartnerEventsForUser_Response)
-
-CCommunity_GetUserPartnerEventViewStatus_Response = _reflection.GeneratedProtocolMessageType('CCommunity_GetUserPartnerEventViewStatus_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CCOMMUNITY_GETUSERPARTNEREVENTVIEWSTATUS_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CCommunity_GetUserPartnerEventViewStatus_Response)
-  ))
-_sym_db.RegisterMessage(CCommunity_GetUserPartnerEventViewStatus_Response)
-
-CCommunity_GetUserPartnerEventViewStatus_Response_PartnerEvent = _reflection.GeneratedProtocolMessageType('CCommunity_GetUserPartnerEventViewStatus_Response_PartnerEvent', (_message.Message,), dict(
-  DESCRIPTOR = _CCOMMUNITY_GETUSERPARTNEREVENTVIEWSTATUS_RESPONSE_PARTNEREVENT,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CCommunity_GetUserPartnerEventViewStatus_Response_PartnerEvent)
-  ))
-_sym_db.RegisterMessage(CCommunity_GetUserPartnerEventViewStatus_Response_PartnerEvent)
-
-CWebRTCClient_InitiateWebRTCConnection_Request = _reflection.GeneratedProtocolMessageType('CWebRTCClient_InitiateWebRTCConnection_Request', (_message.Message,), dict(
-  DESCRIPTOR = _CWEBRTCCLIENT_INITIATEWEBRTCCONNECTION_REQUEST,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CWebRTCClient_InitiateWebRTCConnection_Request)
-  ))
-_sym_db.RegisterMessage(CWebRTCClient_InitiateWebRTCConnection_Request)
-
-CWebRTCClient_InitiateWebRTCConnection_Response = _reflection.GeneratedProtocolMessageType('CWebRTCClient_InitiateWebRTCConnection_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CWEBRTCCLIENT_INITIATEWEBRTCCONNECTION_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CWebRTCClient_InitiateWebRTCConnection_Response)
-  ))
-_sym_db.RegisterMessage(CWebRTCClient_InitiateWebRTCConnection_Response)
-
-CWebRTC_WebRTCSessionConnected_Notification = _reflection.GeneratedProtocolMessageType('CWebRTC_WebRTCSessionConnected_Notification', (_message.Message,), dict(
-  DESCRIPTOR = _CWEBRTC_WEBRTCSESSIONCONNECTED_NOTIFICATION,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CWebRTC_WebRTCSessionConnected_Notification)
-  ))
-_sym_db.RegisterMessage(CWebRTC_WebRTCSessionConnected_Notification)
-
-CWebRTC_WebRTCUpdateRemoteDescription_Notification = _reflection.GeneratedProtocolMessageType('CWebRTC_WebRTCUpdateRemoteDescription_Notification', (_message.Message,), dict(
-  DESCRIPTOR = _CWEBRTC_WEBRTCUPDATEREMOTEDESCRIPTION_NOTIFICATION,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CWebRTC_WebRTCUpdateRemoteDescription_Notification)
-  ))
-_sym_db.RegisterMessage(CWebRTC_WebRTCUpdateRemoteDescription_Notification)
-
-CWebRTC_WebRTCUpdateRemoteDescription_Notification_CSSRCToAccountIDMapping = _reflection.GeneratedProtocolMessageType('CWebRTC_WebRTCUpdateRemoteDescription_Notification_CSSRCToAccountIDMapping', (_message.Message,), dict(
-  DESCRIPTOR = _CWEBRTC_WEBRTCUPDATEREMOTEDESCRIPTION_NOTIFICATION_CSSRCTOACCOUNTIDMAPPING,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CWebRTC_WebRTCUpdateRemoteDescription_Notification_CSSRCToAccountIDMapping)
-  ))
-_sym_db.RegisterMessage(CWebRTC_WebRTCUpdateRemoteDescription_Notification_CSSRCToAccountIDMapping)
-
-CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Request = _reflection.GeneratedProtocolMessageType('CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Request', (_message.Message,), dict(
-  DESCRIPTOR = _CWEBRTCCLIENT_ACKNOWLEDGEUPDATEDREMOTEDESCRIPTION_REQUEST,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Request)
-  ))
-_sym_db.RegisterMessage(CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Request)
-
-CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Response = _reflection.GeneratedProtocolMessageType('CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CWEBRTCCLIENT_ACKNOWLEDGEUPDATEDREMOTEDESCRIPTION_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Response)
-  ))
-_sym_db.RegisterMessage(CWebRTCClient_AcknowledgeUpdatedRemoteDescription_Response)
-
-CVoiceChat_RequestOneOnOneChat_Request = _reflection.GeneratedProtocolMessageType('CVoiceChat_RequestOneOnOneChat_Request', (_message.Message,), dict(
-  DESCRIPTOR = _CVOICECHAT_REQUESTONEONONECHAT_REQUEST,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CVoiceChat_RequestOneOnOneChat_Request)
-  ))
-_sym_db.RegisterMessage(CVoiceChat_RequestOneOnOneChat_Request)
-
-CVoiceChat_RequestOneOnOneChat_Response = _reflection.GeneratedProtocolMessageType('CVoiceChat_RequestOneOnOneChat_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CVOICECHAT_REQUESTONEONONECHAT_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CVoiceChat_RequestOneOnOneChat_Response)
-  ))
-_sym_db.RegisterMessage(CVoiceChat_RequestOneOnOneChat_Response)
-
-CVoiceChat_OneOnOneChatRequested_Notification = _reflection.GeneratedProtocolMessageType('CVoiceChat_OneOnOneChatRequested_Notification', (_message.Message,), dict(
-  DESCRIPTOR = _CVOICECHAT_ONEONONECHATREQUESTED_NOTIFICATION,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CVoiceChat_OneOnOneChatRequested_Notification)
-  ))
-_sym_db.RegisterMessage(CVoiceChat_OneOnOneChatRequested_Notification)
-
-CVoiceChat_AnswerOneOnOneChat_Request = _reflection.GeneratedProtocolMessageType('CVoiceChat_AnswerOneOnOneChat_Request', (_message.Message,), dict(
-  DESCRIPTOR = _CVOICECHAT_ANSWERONEONONECHAT_REQUEST,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CVoiceChat_AnswerOneOnOneChat_Request)
-  ))
-_sym_db.RegisterMessage(CVoiceChat_AnswerOneOnOneChat_Request)
-
-CVoiceChat_AnswerOneOnOneChat_Response = _reflection.GeneratedProtocolMessageType('CVoiceChat_AnswerOneOnOneChat_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CVOICECHAT_ANSWERONEONONECHAT_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CVoiceChat_AnswerOneOnOneChat_Response)
-  ))
-_sym_db.RegisterMessage(CVoiceChat_AnswerOneOnOneChat_Response)
-
-CVoiceChat_OneOnOneChatRequestResponse_Notification = _reflection.GeneratedProtocolMessageType('CVoiceChat_OneOnOneChatRequestResponse_Notification', (_message.Message,), dict(
-  DESCRIPTOR = _CVOICECHAT_ONEONONECHATREQUESTRESPONSE_NOTIFICATION,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CVoiceChat_OneOnOneChatRequestResponse_Notification)
-  ))
-_sym_db.RegisterMessage(CVoiceChat_OneOnOneChatRequestResponse_Notification)
-
-CVoiceChat_EndOneOnOneChat_Request = _reflection.GeneratedProtocolMessageType('CVoiceChat_EndOneOnOneChat_Request', (_message.Message,), dict(
-  DESCRIPTOR = _CVOICECHAT_ENDONEONONECHAT_REQUEST,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CVoiceChat_EndOneOnOneChat_Request)
-  ))
-_sym_db.RegisterMessage(CVoiceChat_EndOneOnOneChat_Request)
-
-CVoiceChat_EndOneOnOneChat_Response = _reflection.GeneratedProtocolMessageType('CVoiceChat_EndOneOnOneChat_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CVOICECHAT_ENDONEONONECHAT_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CVoiceChat_EndOneOnOneChat_Response)
-  ))
-_sym_db.RegisterMessage(CVoiceChat_EndOneOnOneChat_Response)
-
-CVoiceChat_LeaveOneOnOneChat_Request = _reflection.GeneratedProtocolMessageType('CVoiceChat_LeaveOneOnOneChat_Request', (_message.Message,), dict(
-  DESCRIPTOR = _CVOICECHAT_LEAVEONEONONECHAT_REQUEST,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CVoiceChat_LeaveOneOnOneChat_Request)
-  ))
-_sym_db.RegisterMessage(CVoiceChat_LeaveOneOnOneChat_Request)
-
-CVoiceChat_LeaveOneOnOneChat_Response = _reflection.GeneratedProtocolMessageType('CVoiceChat_LeaveOneOnOneChat_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CVOICECHAT_LEAVEONEONONECHAT_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CVoiceChat_LeaveOneOnOneChat_Response)
-  ))
-_sym_db.RegisterMessage(CVoiceChat_LeaveOneOnOneChat_Response)
-
-CVoiceChat_UserJoinedVoiceChat_Notification = _reflection.GeneratedProtocolMessageType('CVoiceChat_UserJoinedVoiceChat_Notification', (_message.Message,), dict(
-  DESCRIPTOR = _CVOICECHAT_USERJOINEDVOICECHAT_NOTIFICATION,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CVoiceChat_UserJoinedVoiceChat_Notification)
-  ))
-_sym_db.RegisterMessage(CVoiceChat_UserJoinedVoiceChat_Notification)
-
-CVoiceChat_UserVoiceStatus_Notification = _reflection.GeneratedProtocolMessageType('CVoiceChat_UserVoiceStatus_Notification', (_message.Message,), dict(
-  DESCRIPTOR = _CVOICECHAT_USERVOICESTATUS_NOTIFICATION,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CVoiceChat_UserVoiceStatus_Notification)
-  ))
-_sym_db.RegisterMessage(CVoiceChat_UserVoiceStatus_Notification)
-
-CVoiceChat_AllMembersStatus_Notification = _reflection.GeneratedProtocolMessageType('CVoiceChat_AllMembersStatus_Notification', (_message.Message,), dict(
-  DESCRIPTOR = _CVOICECHAT_ALLMEMBERSSTATUS_NOTIFICATION,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CVoiceChat_AllMembersStatus_Notification)
-  ))
-_sym_db.RegisterMessage(CVoiceChat_AllMembersStatus_Notification)
-
-CVoiceChat_UpdateVoiceChatWebRTCData_Request = _reflection.GeneratedProtocolMessageType('CVoiceChat_UpdateVoiceChatWebRTCData_Request', (_message.Message,), dict(
-  DESCRIPTOR = _CVOICECHAT_UPDATEVOICECHATWEBRTCDATA_REQUEST,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CVoiceChat_UpdateVoiceChatWebRTCData_Request)
-  ))
-_sym_db.RegisterMessage(CVoiceChat_UpdateVoiceChatWebRTCData_Request)
-
-CVoiceChat_UpdateVoiceChatWebRTCData_Response = _reflection.GeneratedProtocolMessageType('CVoiceChat_UpdateVoiceChatWebRTCData_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CVOICECHAT_UPDATEVOICECHATWEBRTCDATA_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CVoiceChat_UpdateVoiceChatWebRTCData_Response)
-  ))
-_sym_db.RegisterMessage(CVoiceChat_UpdateVoiceChatWebRTCData_Response)
-
-CVoiceChat_UploadClientVoiceChatLogs_Request = _reflection.GeneratedProtocolMessageType('CVoiceChat_UploadClientVoiceChatLogs_Request', (_message.Message,), dict(
-  DESCRIPTOR = _CVOICECHAT_UPLOADCLIENTVOICECHATLOGS_REQUEST,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CVoiceChat_UploadClientVoiceChatLogs_Request)
-  ))
-_sym_db.RegisterMessage(CVoiceChat_UploadClientVoiceChatLogs_Request)
-
-CVoiceChat_UploadClientVoiceChatLogs_Response = _reflection.GeneratedProtocolMessageType('CVoiceChat_UploadClientVoiceChatLogs_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CVOICECHAT_UPLOADCLIENTVOICECHATLOGS_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CVoiceChat_UploadClientVoiceChatLogs_Response)
-  ))
-_sym_db.RegisterMessage(CVoiceChat_UploadClientVoiceChatLogs_Response)
-
-CVoiceChat_LeaveVoiceChat_Response = _reflection.GeneratedProtocolMessageType('CVoiceChat_LeaveVoiceChat_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CVOICECHAT_LEAVEVOICECHAT_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CVoiceChat_LeaveVoiceChat_Response)
-  ))
-_sym_db.RegisterMessage(CVoiceChat_LeaveVoiceChat_Response)
-
-CVoiceChat_UserLeftVoiceChat_Notification = _reflection.GeneratedProtocolMessageType('CVoiceChat_UserLeftVoiceChat_Notification', (_message.Message,), dict(
-  DESCRIPTOR = _CVOICECHAT_USERLEFTVOICECHAT_NOTIFICATION,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CVoiceChat_UserLeftVoiceChat_Notification)
-  ))
-_sym_db.RegisterMessage(CVoiceChat_UserLeftVoiceChat_Notification)
-
-CVoiceChat_VoiceChatEnded_Notification = _reflection.GeneratedProtocolMessageType('CVoiceChat_VoiceChatEnded_Notification', (_message.Message,), dict(
-  DESCRIPTOR = _CVOICECHAT_VOICECHATENDED_NOTIFICATION,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CVoiceChat_VoiceChatEnded_Notification)
-  ))
-_sym_db.RegisterMessage(CVoiceChat_VoiceChatEnded_Notification)
-
-CSteamTV_CreateBroadcastChannel_Response = _reflection.GeneratedProtocolMessageType('CSteamTV_CreateBroadcastChannel_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_CREATEBROADCASTCHANNEL_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_CreateBroadcastChannel_Response)
-  ))
-_sym_db.RegisterMessage(CSteamTV_CreateBroadcastChannel_Response)
-
-CSteamTV_GetBroadcastChannelID_Response = _reflection.GeneratedProtocolMessageType('CSteamTV_GetBroadcastChannelID_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_GETBROADCASTCHANNELID_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_GetBroadcastChannelID_Response)
-  ))
-_sym_db.RegisterMessage(CSteamTV_GetBroadcastChannelID_Response)
-
-CSteamTV_SetBroadcastChannelProfile_Response = _reflection.GeneratedProtocolMessageType('CSteamTV_SetBroadcastChannelProfile_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_SETBROADCASTCHANNELPROFILE_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_SetBroadcastChannelProfile_Response)
-  ))
-_sym_db.RegisterMessage(CSteamTV_SetBroadcastChannelProfile_Response)
-
-CSteamTV_GetBroadcastChannelProfile_Response = _reflection.GeneratedProtocolMessageType('CSteamTV_GetBroadcastChannelProfile_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_GETBROADCASTCHANNELPROFILE_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_GetBroadcastChannelProfile_Response)
-  ))
-_sym_db.RegisterMessage(CSteamTV_GetBroadcastChannelProfile_Response)
-
-CSteamTV_SetBroadcastChannelImage_Response = _reflection.GeneratedProtocolMessageType('CSteamTV_SetBroadcastChannelImage_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_SETBROADCASTCHANNELIMAGE_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_SetBroadcastChannelImage_Response)
-  ))
-_sym_db.RegisterMessage(CSteamTV_SetBroadcastChannelImage_Response)
-
-CSteamTV_GetBroadcastChannelImages_Response = _reflection.GeneratedProtocolMessageType('CSteamTV_GetBroadcastChannelImages_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_GETBROADCASTCHANNELIMAGES_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_GetBroadcastChannelImages_Response)
-  ))
-_sym_db.RegisterMessage(CSteamTV_GetBroadcastChannelImages_Response)
-
-CSteamTV_GetBroadcastChannelImages_Response_Images = _reflection.GeneratedProtocolMessageType('CSteamTV_GetBroadcastChannelImages_Response_Images', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_GETBROADCASTCHANNELIMAGES_RESPONSE_IMAGES,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_GetBroadcastChannelImages_Response_Images)
-  ))
-_sym_db.RegisterMessage(CSteamTV_GetBroadcastChannelImages_Response_Images)
-
-CSteamTV_GetBroadcastChannelLinks_Response = _reflection.GeneratedProtocolMessageType('CSteamTV_GetBroadcastChannelLinks_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_GETBROADCASTCHANNELLINKS_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_GetBroadcastChannelLinks_Response)
-  ))
-_sym_db.RegisterMessage(CSteamTV_GetBroadcastChannelLinks_Response)
-
-CSteamTV_GetBroadcastChannelLinks_Response_Links = _reflection.GeneratedProtocolMessageType('CSteamTV_GetBroadcastChannelLinks_Response_Links', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_GETBROADCASTCHANNELLINKS_RESPONSE_LINKS,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_GetBroadcastChannelLinks_Response_Links)
-  ))
-_sym_db.RegisterMessage(CSteamTV_GetBroadcastChannelLinks_Response_Links)
-
-CSteamTV_SetBroadcastChannelLinkRegions_Request_Links = _reflection.GeneratedProtocolMessageType('CSteamTV_SetBroadcastChannelLinkRegions_Request_Links', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_SETBROADCASTCHANNELLINKREGIONS_REQUEST_LINKS,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_SetBroadcastChannelLinkRegions_Request_Links)
-  ))
-_sym_db.RegisterMessage(CSteamTV_SetBroadcastChannelLinkRegions_Request_Links)
-
-CSteamTV_SetBroadcastChannelLinkRegions_Response = _reflection.GeneratedProtocolMessageType('CSteamTV_SetBroadcastChannelLinkRegions_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_SETBROADCASTCHANNELLINKREGIONS_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_SetBroadcastChannelLinkRegions_Response)
-  ))
-_sym_db.RegisterMessage(CSteamTV_SetBroadcastChannelLinkRegions_Response)
-
-CSteamTV_GetBroadcastChannelStatus_Response = _reflection.GeneratedProtocolMessageType('CSteamTV_GetBroadcastChannelStatus_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_GETBROADCASTCHANNELSTATUS_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_GetBroadcastChannelStatus_Response)
-  ))
-_sym_db.RegisterMessage(CSteamTV_GetBroadcastChannelStatus_Response)
-
-GetBroadcastChannelEntry = _reflection.GeneratedProtocolMessageType('GetBroadcastChannelEntry', (_message.Message,), dict(
-  DESCRIPTOR = _GETBROADCASTCHANNELENTRY,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:GetBroadcastChannelEntry)
-  ))
-_sym_db.RegisterMessage(GetBroadcastChannelEntry)
-
-CSteamTV_GetFollowedChannels_Response = _reflection.GeneratedProtocolMessageType('CSteamTV_GetFollowedChannels_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_GETFOLLOWEDCHANNELS_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_GetFollowedChannels_Response)
-  ))
-_sym_db.RegisterMessage(CSteamTV_GetFollowedChannels_Response)
-
-CSteamTV_GetSubscribedChannels_Response = _reflection.GeneratedProtocolMessageType('CSteamTV_GetSubscribedChannels_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_GETSUBSCRIBEDCHANNELS_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_GetSubscribedChannels_Response)
-  ))
-_sym_db.RegisterMessage(CSteamTV_GetSubscribedChannels_Response)
-
-CSteamTV_FollowBroadcastChannel_Response = _reflection.GeneratedProtocolMessageType('CSteamTV_FollowBroadcastChannel_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_FOLLOWBROADCASTCHANNEL_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_FollowBroadcastChannel_Response)
-  ))
-_sym_db.RegisterMessage(CSteamTV_FollowBroadcastChannel_Response)
-
-CSteamTV_SubscribeBroadcastChannel_Response = _reflection.GeneratedProtocolMessageType('CSteamTV_SubscribeBroadcastChannel_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_SUBSCRIBEBROADCASTCHANNEL_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_SubscribeBroadcastChannel_Response)
-  ))
-_sym_db.RegisterMessage(CSteamTV_SubscribeBroadcastChannel_Response)
-
-CSteamTV_ReportBroadcastChannel_Response = _reflection.GeneratedProtocolMessageType('CSteamTV_ReportBroadcastChannel_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_REPORTBROADCASTCHANNEL_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_ReportBroadcastChannel_Response)
-  ))
-_sym_db.RegisterMessage(CSteamTV_ReportBroadcastChannel_Response)
-
-CSteamTV_GetBroadcastChannelInteraction_Response = _reflection.GeneratedProtocolMessageType('CSteamTV_GetBroadcastChannelInteraction_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_GETBROADCASTCHANNELINTERACTION_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_GetBroadcastChannelInteraction_Response)
-  ))
-_sym_db.RegisterMessage(CSteamTV_GetBroadcastChannelInteraction_Response)
-
-CSteamTV_Game = _reflection.GeneratedProtocolMessageType('CSteamTV_Game', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_GAME,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_Game)
-  ))
-_sym_db.RegisterMessage(CSteamTV_Game)
-
-CSteamTV_GetGames_Response = _reflection.GeneratedProtocolMessageType('CSteamTV_GetGames_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_GETGAMES_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_GetGames_Response)
-  ))
-_sym_db.RegisterMessage(CSteamTV_GetGames_Response)
-
-CSteamTV_GetChannels_Response = _reflection.GeneratedProtocolMessageType('CSteamTV_GetChannels_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_GETCHANNELS_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_GetChannels_Response)
-  ))
-_sym_db.RegisterMessage(CSteamTV_GetChannels_Response)
-
-CSteamTV_GetBroadcastChannelBroadcasters_Response = _reflection.GeneratedProtocolMessageType('CSteamTV_GetBroadcastChannelBroadcasters_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_GETBROADCASTCHANNELBROADCASTERS_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_GetBroadcastChannelBroadcasters_Response)
-  ))
-_sym_db.RegisterMessage(CSteamTV_GetBroadcastChannelBroadcasters_Response)
-
-CSteamTV_GetBroadcastChannelBroadcasters_Response_Broadcaster = _reflection.GeneratedProtocolMessageType('CSteamTV_GetBroadcastChannelBroadcasters_Response_Broadcaster', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_GETBROADCASTCHANNELBROADCASTERS_RESPONSE_BROADCASTER,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_GetBroadcastChannelBroadcasters_Response_Broadcaster)
-  ))
-_sym_db.RegisterMessage(CSteamTV_GetBroadcastChannelBroadcasters_Response_Broadcaster)
-
-CSteamTV_ChatBan = _reflection.GeneratedProtocolMessageType('CSteamTV_ChatBan', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_CHATBAN,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_ChatBan)
-  ))
-_sym_db.RegisterMessage(CSteamTV_ChatBan)
-
-CSteamTV_AddChatBan_Request = _reflection.GeneratedProtocolMessageType('CSteamTV_AddChatBan_Request', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_ADDCHATBAN_REQUEST,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_AddChatBan_Request)
-  ))
-_sym_db.RegisterMessage(CSteamTV_AddChatBan_Request)
-
-CSteamTV_AddChatBan_Response = _reflection.GeneratedProtocolMessageType('CSteamTV_AddChatBan_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_ADDCHATBAN_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_AddChatBan_Response)
-  ))
-_sym_db.RegisterMessage(CSteamTV_AddChatBan_Response)
-
-CSteamTV_GetChatBans_Response = _reflection.GeneratedProtocolMessageType('CSteamTV_GetChatBans_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_GETCHATBANS_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_GetChatBans_Response)
-  ))
-_sym_db.RegisterMessage(CSteamTV_GetChatBans_Response)
-
-CSteamTV_AddChatModerator_Request = _reflection.GeneratedProtocolMessageType('CSteamTV_AddChatModerator_Request', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_ADDCHATMODERATOR_REQUEST,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_AddChatModerator_Request)
-  ))
-_sym_db.RegisterMessage(CSteamTV_AddChatModerator_Request)
-
-CSteamTV_AddChatModerator_Response = _reflection.GeneratedProtocolMessageType('CSteamTV_AddChatModerator_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_ADDCHATMODERATOR_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_AddChatModerator_Response)
-  ))
-_sym_db.RegisterMessage(CSteamTV_AddChatModerator_Response)
-
-CSteamTV_GetChatModerators_Request = _reflection.GeneratedProtocolMessageType('CSteamTV_GetChatModerators_Request', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_GETCHATMODERATORS_REQUEST,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_GetChatModerators_Request)
-  ))
-_sym_db.RegisterMessage(CSteamTV_GetChatModerators_Request)
-
-CSteamTV_ChatModerator = _reflection.GeneratedProtocolMessageType('CSteamTV_ChatModerator', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_CHATMODERATOR,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_ChatModerator)
-  ))
-_sym_db.RegisterMessage(CSteamTV_ChatModerator)
-
-CSteamTV_GetChatModerators_Response = _reflection.GeneratedProtocolMessageType('CSteamTV_GetChatModerators_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_GETCHATMODERATORS_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_GetChatModerators_Response)
-  ))
-_sym_db.RegisterMessage(CSteamTV_GetChatModerators_Response)
-
-CSteamTV_AddWordBan_Response = _reflection.GeneratedProtocolMessageType('CSteamTV_AddWordBan_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_ADDWORDBAN_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_AddWordBan_Response)
-  ))
-_sym_db.RegisterMessage(CSteamTV_AddWordBan_Response)
-
-CSteamTV_GetWordBans_Response = _reflection.GeneratedProtocolMessageType('CSteamTV_GetWordBans_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_GETWORDBANS_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_GetWordBans_Response)
-  ))
-_sym_db.RegisterMessage(CSteamTV_GetWordBans_Response)
-
-CSteamTV_JoinChat_Request = _reflection.GeneratedProtocolMessageType('CSteamTV_JoinChat_Request', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_JOINCHAT_REQUEST,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_JoinChat_Request)
-  ))
-_sym_db.RegisterMessage(CSteamTV_JoinChat_Request)
-
-CSteamTV_JoinChat_Response = _reflection.GeneratedProtocolMessageType('CSteamTV_JoinChat_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_JOINCHAT_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_JoinChat_Response)
-  ))
-_sym_db.RegisterMessage(CSteamTV_JoinChat_Response)
-
-CSteamTV_Search_Response = _reflection.GeneratedProtocolMessageType('CSteamTV_Search_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_SEARCH_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_Search_Response)
-  ))
-_sym_db.RegisterMessage(CSteamTV_Search_Response)
-
-CSteamTV_GetSteamTVUserSettings_Response = _reflection.GeneratedProtocolMessageType('CSteamTV_GetSteamTVUserSettings_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_GETSTEAMTVUSERSETTINGS_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_GetSteamTVUserSettings_Response)
-  ))
-_sym_db.RegisterMessage(CSteamTV_GetSteamTVUserSettings_Response)
-
-CSteamTV_SetSteamTVUserSettings_Response = _reflection.GeneratedProtocolMessageType('CSteamTV_SetSteamTVUserSettings_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_SETSTEAMTVUSERSETTINGS_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_SetSteamTVUserSettings_Response)
-  ))
-_sym_db.RegisterMessage(CSteamTV_SetSteamTVUserSettings_Response)
-
-CSteamTV_GetMyBroadcastChannels_Response = _reflection.GeneratedProtocolMessageType('CSteamTV_GetMyBroadcastChannels_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_GETMYBROADCASTCHANNELS_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_GetMyBroadcastChannels_Response)
-  ))
-_sym_db.RegisterMessage(CSteamTV_GetMyBroadcastChannels_Response)
-
-CSteamTV_HomePageTemplate_Takeover = _reflection.GeneratedProtocolMessageType('CSteamTV_HomePageTemplate_Takeover', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_HOMEPAGETEMPLATE_TAKEOVER,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_HomePageTemplate_Takeover)
-  ))
-_sym_db.RegisterMessage(CSteamTV_HomePageTemplate_Takeover)
-
-CSteamTV_HomePageTemplate_SingleGame = _reflection.GeneratedProtocolMessageType('CSteamTV_HomePageTemplate_SingleGame', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_HOMEPAGETEMPLATE_SINGLEGAME,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_HomePageTemplate_SingleGame)
-  ))
-_sym_db.RegisterMessage(CSteamTV_HomePageTemplate_SingleGame)
-
-GameListEntry = _reflection.GeneratedProtocolMessageType('GameListEntry', (_message.Message,), dict(
-  DESCRIPTOR = _GAMELISTENTRY,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:GameListEntry)
-  ))
-_sym_db.RegisterMessage(GameListEntry)
-
-CSteamTV_HomePageTemplate_GameList = _reflection.GeneratedProtocolMessageType('CSteamTV_HomePageTemplate_GameList', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_HOMEPAGETEMPLATE_GAMELIST,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_HomePageTemplate_GameList)
-  ))
-_sym_db.RegisterMessage(CSteamTV_HomePageTemplate_GameList)
-
-CSteamTV_HomePageTemplate_QuickExplore = _reflection.GeneratedProtocolMessageType('CSteamTV_HomePageTemplate_QuickExplore', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_HOMEPAGETEMPLATE_QUICKEXPLORE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_HomePageTemplate_QuickExplore)
-  ))
-_sym_db.RegisterMessage(CSteamTV_HomePageTemplate_QuickExplore)
-
-CSteamTV_HomePageTemplate_ConveyorBelt = _reflection.GeneratedProtocolMessageType('CSteamTV_HomePageTemplate_ConveyorBelt', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_HOMEPAGETEMPLATE_CONVEYORBELT,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_HomePageTemplate_ConveyorBelt)
-  ))
-_sym_db.RegisterMessage(CSteamTV_HomePageTemplate_ConveyorBelt)
-
-CSteamTV_HomePageTemplate_WatchParty = _reflection.GeneratedProtocolMessageType('CSteamTV_HomePageTemplate_WatchParty', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_HOMEPAGETEMPLATE_WATCHPARTY,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_HomePageTemplate_WatchParty)
-  ))
-_sym_db.RegisterMessage(CSteamTV_HomePageTemplate_WatchParty)
-
-CSteamTV_HomePageTemplate_Developer = _reflection.GeneratedProtocolMessageType('CSteamTV_HomePageTemplate_Developer', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_HOMEPAGETEMPLATE_DEVELOPER,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_HomePageTemplate_Developer)
-  ))
-_sym_db.RegisterMessage(CSteamTV_HomePageTemplate_Developer)
-
-CSteamTV_HomePageTemplate_Event = _reflection.GeneratedProtocolMessageType('CSteamTV_HomePageTemplate_Event', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_HOMEPAGETEMPLATE_EVENT,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_HomePageTemplate_Event)
-  ))
-_sym_db.RegisterMessage(CSteamTV_HomePageTemplate_Event)
-
-CSteamTV_HomePageContentRow = _reflection.GeneratedProtocolMessageType('CSteamTV_HomePageContentRow', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_HOMEPAGECONTENTROW,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_HomePageContentRow)
-  ))
-_sym_db.RegisterMessage(CSteamTV_HomePageContentRow)
-
-CSteamTV_GetHomePageContents_Response = _reflection.GeneratedProtocolMessageType('CSteamTV_GetHomePageContents_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_GETHOMEPAGECONTENTS_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_GetHomePageContents_Response)
-  ))
-_sym_db.RegisterMessage(CSteamTV_GetHomePageContents_Response)
-
-CSteamTV_BroadcastClipInfo = _reflection.GeneratedProtocolMessageType('CSteamTV_BroadcastClipInfo', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_BROADCASTCLIPINFO,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_BroadcastClipInfo)
-  ))
-_sym_db.RegisterMessage(CSteamTV_BroadcastClipInfo)
-
-CSteamTV_GetBroadcastChannelClips_Response = _reflection.GeneratedProtocolMessageType('CSteamTV_GetBroadcastChannelClips_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CSTEAMTV_GETBROADCASTCHANNELCLIPS_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CSteamTV_GetBroadcastChannelClips_Response)
-  ))
-_sym_db.RegisterMessage(CSteamTV_GetBroadcastChannelClips_Response)
-
-CFriendsListCategory = _reflection.GeneratedProtocolMessageType('CFriendsListCategory', (_message.Message,), dict(
-  DESCRIPTOR = _CFRIENDSLISTCATEGORY,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CFriendsListCategory)
-  ))
-_sym_db.RegisterMessage(CFriendsListCategory)
-
-CFriendsList_GetCategories_Request = _reflection.GeneratedProtocolMessageType('CFriendsList_GetCategories_Request', (_message.Message,), dict(
-  DESCRIPTOR = _CFRIENDSLIST_GETCATEGORIES_REQUEST,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CFriendsList_GetCategories_Request)
-  ))
-_sym_db.RegisterMessage(CFriendsList_GetCategories_Request)
-
-CFriendsList_GetCategories_Response = _reflection.GeneratedProtocolMessageType('CFriendsList_GetCategories_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CFRIENDSLIST_GETCATEGORIES_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CFriendsList_GetCategories_Response)
-  ))
-_sym_db.RegisterMessage(CFriendsList_GetCategories_Response)
-
-CFriendsListFavoriteEntry = _reflection.GeneratedProtocolMessageType('CFriendsListFavoriteEntry', (_message.Message,), dict(
-  DESCRIPTOR = _CFRIENDSLISTFAVORITEENTRY,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CFriendsListFavoriteEntry)
-  ))
-_sym_db.RegisterMessage(CFriendsListFavoriteEntry)
-
-CFriendsList_GetFavorites_Request = _reflection.GeneratedProtocolMessageType('CFriendsList_GetFavorites_Request', (_message.Message,), dict(
-  DESCRIPTOR = _CFRIENDSLIST_GETFAVORITES_REQUEST,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CFriendsList_GetFavorites_Request)
-  ))
-_sym_db.RegisterMessage(CFriendsList_GetFavorites_Request)
-
-CFriendsList_GetFavorites_Response = _reflection.GeneratedProtocolMessageType('CFriendsList_GetFavorites_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CFRIENDSLIST_GETFAVORITES_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CFriendsList_GetFavorites_Response)
-  ))
-_sym_db.RegisterMessage(CFriendsList_GetFavorites_Response)
-
-CFriendsList_SetFavorites_Request = _reflection.GeneratedProtocolMessageType('CFriendsList_SetFavorites_Request', (_message.Message,), dict(
-  DESCRIPTOR = _CFRIENDSLIST_SETFAVORITES_REQUEST,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CFriendsList_SetFavorites_Request)
-  ))
-_sym_db.RegisterMessage(CFriendsList_SetFavorites_Request)
-
-CFriendsList_SetFavorites_Response = _reflection.GeneratedProtocolMessageType('CFriendsList_SetFavorites_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CFRIENDSLIST_SETFAVORITES_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CFriendsList_SetFavorites_Response)
-  ))
-_sym_db.RegisterMessage(CFriendsList_SetFavorites_Response)
-
-CFriendsList_FavoritesChanged_Notification = _reflection.GeneratedProtocolMessageType('CFriendsList_FavoritesChanged_Notification', (_message.Message,), dict(
-  DESCRIPTOR = _CFRIENDSLIST_FAVORITESCHANGED_NOTIFICATION,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CFriendsList_FavoritesChanged_Notification)
-  ))
-_sym_db.RegisterMessage(CFriendsList_FavoritesChanged_Notification)
-
-CFriendsList_GetFriendsList_Request = _reflection.GeneratedProtocolMessageType('CFriendsList_GetFriendsList_Request', (_message.Message,), dict(
-  DESCRIPTOR = _CFRIENDSLIST_GETFRIENDSLIST_REQUEST,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CFriendsList_GetFriendsList_Request)
-  ))
-_sym_db.RegisterMessage(CFriendsList_GetFriendsList_Request)
-
-CFriendsList_GetFriendsList_Response = _reflection.GeneratedProtocolMessageType('CFriendsList_GetFriendsList_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CFRIENDSLIST_GETFRIENDSLIST_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CFriendsList_GetFriendsList_Response)
-  ))
-_sym_db.RegisterMessage(CFriendsList_GetFriendsList_Response)
-
-CClan_RespondToClanInvite_Request = _reflection.GeneratedProtocolMessageType('CClan_RespondToClanInvite_Request', (_message.Message,), dict(
-  DESCRIPTOR = _CCLAN_RESPONDTOCLANINVITE_REQUEST,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CClan_RespondToClanInvite_Request)
-  ))
-_sym_db.RegisterMessage(CClan_RespondToClanInvite_Request)
-
-CClan_RespondToClanInvite_Response = _reflection.GeneratedProtocolMessageType('CClan_RespondToClanInvite_Response', (_message.Message,), dict(
-  DESCRIPTOR = _CCLAN_RESPONDTOCLANINVITE_RESPONSE,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CClan_RespondToClanInvite_Response)
-  ))
-_sym_db.RegisterMessage(CClan_RespondToClanInvite_Response)
-
-CProductImpressionsFromClient_Notification = _reflection.GeneratedProtocolMessageType('CProductImpressionsFromClient_Notification', (_message.Message,), dict(
-  DESCRIPTOR = _CPRODUCTIMPRESSIONSFROMCLIENT_NOTIFICATION,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CProductImpressionsFromClient_Notification)
-  ))
-_sym_db.RegisterMessage(CProductImpressionsFromClient_Notification)
-
-CProductImpressionsFromClient_Notification_Impression = _reflection.GeneratedProtocolMessageType('CProductImpressionsFromClient_Notification_Impression', (_message.Message,), dict(
-  DESCRIPTOR = _CPRODUCTIMPRESSIONSFROMCLIENT_NOTIFICATION_IMPRESSION,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:CProductImpressionsFromClient_Notification_Impression)
-  ))
-_sym_db.RegisterMessage(CProductImpressionsFromClient_Notification_Impression)
-
-NotImplemented = _reflection.GeneratedProtocolMessageType('NotImplemented', (_message.Message,), dict(
-  DESCRIPTOR = _NOTIMPLEMENTED,
-  __module__ = 'steammessages_webui_friends_pb2'
-  # @@protoc_insertion_point(class_scope:NotImplemented)
-  ))
-_sym_db.RegisterMessage(NotImplemented)
-
-
-DESCRIPTOR._options = None
-_CCOMMUNITY_MARKPARTNEREVENTSFORUSER_REQUEST_PARTNEREVENTMARKING.fields_by_name['display_location']._options = None
-_CSTEAMTV_GETBROADCASTCHANNELIMAGES_RESPONSE_IMAGES.fields_by_name['image_type']._options = None
-_CSTEAMTV_HOMEPAGECONTENTROW.fields_by_name['template_type']._options = None
-_CPRODUCTIMPRESSIONSFROMCLIENT_NOTIFICATION_IMPRESSION.fields_by_name['type']._options = None
-
-_COMMUNITY = _descriptor.ServiceDescriptor(
-  name='Community',
-  full_name='Community',
-  file=DESCRIPTOR,
-  index=0,
-  serialized_options=None,
-  serialized_start=14285,
-  serialized_end=16178,
-  methods=[
-  _descriptor.MethodDescriptor(
-    name='GetApps',
-    full_name='Community.GetApps',
-    index=0,
-    containing_service=None,
-    input_type=_CCOMMUNITY_GETAPPS_REQUEST,
-    output_type=_CCOMMUNITY_GETAPPS_RESPONSE,
-    serialized_options=None,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetAppRichPresenceLocalization',
-    full_name='Community.GetAppRichPresenceLocalization',
-    index=1,
-    containing_service=None,
-    input_type=_CCOMMUNITY_GETAPPRICHPRESENCELOCALIZATION_REQUEST,
-    output_type=_CCOMMUNITY_GETAPPRICHPRESENCELOCALIZATION_RESPONSE,
-    serialized_options=None,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetCommentThread',
-    full_name='Community.GetCommentThread',
-    index=2,
-    containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CCOMMUNITY_GETCOMMENTTHREAD_RESPONSE,
-    serialized_options=None,
-  ),
-  _descriptor.MethodDescriptor(
-    name='PostCommentToThread',
-    full_name='Community.PostCommentToThread',
-    index=3,
-    containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CCOMMUNITY_POSTCOMMENTTOTHREAD_RESPONSE,
-    serialized_options=None,
-  ),
-  _descriptor.MethodDescriptor(
-    name='DeleteCommentFromThread',
-    full_name='Community.DeleteCommentFromThread',
-    index=4,
-    containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CCOMMUNITY_DELETECOMMENTFROMTHREAD_RESPONSE,
-    serialized_options=None,
-  ),
-  _descriptor.MethodDescriptor(
-    name='RateCommentThread',
-    full_name='Community.RateCommentThread',
-    index=5,
-    containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CCOMMUNITY_RATECOMMENTTHREAD_RESPONSE,
-    serialized_options=None,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetCommentThreadRatings',
-    full_name='Community.GetCommentThreadRatings',
-    index=6,
-    containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CCOMMUNITY_GETCOMMENTTHREADRATINGS_RESPONSE,
-    serialized_options=None,
-  ),
-  _descriptor.MethodDescriptor(
-    name='RateClanAnnouncement',
-    full_name='Community.RateClanAnnouncement',
-    index=7,
-    containing_service=None,
-    input_type=_CCOMMUNITY_RATECLANANNOUNCEMENT_REQUEST,
-    output_type=_CCOMMUNITY_RATECLANANNOUNCEMENT_RESPONSE,
-    serialized_options=None,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetClanAnnouncementVoteForUser',
-    full_name='Community.GetClanAnnouncementVoteForUser',
-    index=8,
-    containing_service=None,
-    input_type=_CCOMMUNITY_GETCLANANNOUNCEMENTVOTEFORUSER_REQUEST,
-    output_type=_CCOMMUNITY_GETCLANANNOUNCEMENTVOTEFORUSER_RESPONSE,
-    serialized_options=None,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetAvatarHistory',
-    full_name='Community.GetAvatarHistory',
-    index=9,
-    containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CCOMMUNITY_GETAVATARHISTORY_RESPONSE,
-    serialized_options=None,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetUserPartnerEventNews',
-    full_name='Community.GetUserPartnerEventNews',
-    index=10,
-    containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CCOMMUNITY_GETUSERPARTNEREVENTNEWS_RESPONSE,
-    serialized_options=None,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetBestEventsForUser',
-    full_name='Community.GetBestEventsForUser',
-    index=11,
-    containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CCOMMUNITY_GETBESTEVENTSFORUSER_RESPONSE,
-    serialized_options=None,
-  ),
-  _descriptor.MethodDescriptor(
-    name='MarkPartnerEventsForUser',
-    full_name='Community.MarkPartnerEventsForUser',
-    index=12,
-    containing_service=None,
-    input_type=_CCOMMUNITY_MARKPARTNEREVENTSFORUSER_REQUEST,
-    output_type=_CCOMMUNITY_MARKPARTNEREVENTSFORUSER_RESPONSE,
-    serialized_options=None,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetUserPartnerEventViewStatus',
-    full_name='Community.GetUserPartnerEventViewStatus',
-    index=13,
-    containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CCOMMUNITY_GETUSERPARTNEREVENTVIEWSTATUS_RESPONSE,
-    serialized_options=None,
-  ),
-  _descriptor.MethodDescriptor(
-    name='PartnerEventsShowMoreForApp',
-    full_name='Community.PartnerEventsShowMoreForApp',
-    index=14,
-    containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CCOMMUNITY_PARTNEREVENTSSHOWMOREFORAPP_RESPONSE,
-    serialized_options=None,
-  ),
-  _descriptor.MethodDescriptor(
-    name='PartnerEventsShowLessForApp',
-    full_name='Community.PartnerEventsShowLessForApp',
-    index=15,
-    containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CCOMMUNITY_PARTNEREVENTSSHOWLESSFORAPP_RESPONSE,
-    serialized_options=None,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ClearUserPartnerEventsAppPriorities',
-    full_name='Community.ClearUserPartnerEventsAppPriorities',
-    index=16,
-    containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CCOMMUNITY_CLEARUSERPARTNEREVENTSAPPPRIORITIES_RESPONSE,
-    serialized_options=None,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetUserPartnerEventsAppPriorities',
-    full_name='Community.GetUserPartnerEventsAppPriorities',
-    index=17,
-    containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CCOMMUNITY_GETUSERPARTNEREVENTSAPPPRIORITIES_RESPONSE,
-    serialized_options=None,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ClearSinglePartnerEventsAppPriority',
-    full_name='Community.ClearSinglePartnerEventsAppPriority',
-    index=18,
-    containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CCOMMUNITY_CLEARSINGLEPARTNEREVENTSAPPPRIORITY_RESPONSE,
-    serialized_options=None,
-  ),
-])
-_sym_db.RegisterServiceDescriptor(_COMMUNITY)
-
-DESCRIPTOR.services_by_name['Community'] = _COMMUNITY
-
-
-_WEBRTCCLIENT = _descriptor.ServiceDescriptor(
-  name='WebRTCClient',
-  full_name='WebRTCClient',
-  file=DESCRIPTOR,
-  index=1,
-  serialized_options=None,
-  serialized_start=16181,
-  serialized_end=16483,
-  methods=[
-  _descriptor.MethodDescriptor(
-    name='InitiateWebRTCConnection',
-    full_name='WebRTCClient.InitiateWebRTCConnection',
-    index=0,
-    containing_service=None,
-    input_type=_CWEBRTCCLIENT_INITIATEWEBRTCCONNECTION_REQUEST,
-    output_type=_CWEBRTCCLIENT_INITIATEWEBRTCCONNECTION_RESPONSE,
-    serialized_options=None,
-  ),
-  _descriptor.MethodDescriptor(
-    name='AcknowledgeUpdatedRemoteDescription',
-    full_name='WebRTCClient.AcknowledgeUpdatedRemoteDescription',
-    index=1,
-    containing_service=None,
-    input_type=_CWEBRTCCLIENT_ACKNOWLEDGEUPDATEDREMOTEDESCRIPTION_REQUEST,
-    output_type=_CWEBRTCCLIENT_ACKNOWLEDGEUPDATEDREMOTEDESCRIPTION_RESPONSE,
-    serialized_options=None,
-  ),
-])
-_sym_db.RegisterServiceDescriptor(_WEBRTCCLIENT)
-
-DESCRIPTOR.services_by_name['WebRTCClient'] = _WEBRTCCLIENT
-
-
-_WEBRTCCLIENTNOTIFICATIONS = _descriptor.ServiceDescriptor(
-  name='WebRTCClientNotifications',
-  full_name='WebRTCClientNotifications',
-  file=DESCRIPTOR,
-  index=2,
-  serialized_options=None,
-  serialized_start=16486,
-  serialized_end=16709,
-  methods=[
-  _descriptor.MethodDescriptor(
-    name='NotifyWebRTCSessionConnected',
-    full_name='WebRTCClientNotifications.NotifyWebRTCSessionConnected',
-    index=0,
-    containing_service=None,
-    input_type=_CWEBRTC_WEBRTCSESSIONCONNECTED_NOTIFICATION,
-    output_type=steammessages__unified__base__pb2._NORESPONSE,
-    serialized_options=None,
-  ),
-  _descriptor.MethodDescriptor(
-    name='NotifyWebRTCUpdateRemoteDescription',
-    full_name='WebRTCClientNotifications.NotifyWebRTCUpdateRemoteDescription',
-    index=1,
-    containing_service=None,
-    input_type=_CWEBRTC_WEBRTCUPDATEREMOTEDESCRIPTION_NOTIFICATION,
-    output_type=steammessages__unified__base__pb2._NORESPONSE,
-    serialized_options=None,
-  ),
-])
-_sym_db.RegisterServiceDescriptor(_WEBRTCCLIENTNOTIFICATIONS)
-
-DESCRIPTOR.services_by_name['WebRTCClientNotifications'] = _WEBRTCCLIENTNOTIFICATIONS
-
-
-_VOICECHAT = _descriptor.ServiceDescriptor(
-  name='VoiceChat',
-  full_name='VoiceChat',
-  file=DESCRIPTOR,
-  index=3,
-  serialized_options=None,
-  serialized_start=16712,
-  serialized_end=17526,
-  methods=[
-  _descriptor.MethodDescriptor(
-    name='UpdateVoiceChatWebRTCData',
-    full_name='VoiceChat.UpdateVoiceChatWebRTCData',
-    index=0,
-    containing_service=None,
-    input_type=_CVOICECHAT_UPDATEVOICECHATWEBRTCDATA_REQUEST,
-    output_type=_CVOICECHAT_UPDATEVOICECHATWEBRTCDATA_RESPONSE,
-    serialized_options=None,
-  ),
-  _descriptor.MethodDescriptor(
-    name='NotifyUserVoiceStatus',
-    full_name='VoiceChat.NotifyUserVoiceStatus',
-    index=1,
-    containing_service=None,
-    input_type=_CVOICECHAT_USERVOICESTATUS_NOTIFICATION,
-    output_type=steammessages__unified__base__pb2._NORESPONSE,
-    serialized_options=None,
-  ),
-  _descriptor.MethodDescriptor(
-    name='UploadClientVoiceChatLogs',
-    full_name='VoiceChat.UploadClientVoiceChatLogs',
-    index=2,
-    containing_service=None,
-    input_type=_CVOICECHAT_UPLOADCLIENTVOICECHATLOGS_REQUEST,
-    output_type=_CVOICECHAT_UPLOADCLIENTVOICECHATLOGS_RESPONSE,
-    serialized_options=None,
-  ),
-  _descriptor.MethodDescriptor(
-    name='LeaveVoiceChat',
-    full_name='VoiceChat.LeaveVoiceChat',
-    index=3,
-    containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CVOICECHAT_LEAVEVOICECHAT_RESPONSE,
-    serialized_options=None,
-  ),
-  _descriptor.MethodDescriptor(
-    name='RequestOneOnOneChat',
-    full_name='VoiceChat.RequestOneOnOneChat',
-    index=4,
-    containing_service=None,
-    input_type=_CVOICECHAT_REQUESTONEONONECHAT_REQUEST,
-    output_type=_CVOICECHAT_REQUESTONEONONECHAT_RESPONSE,
-    serialized_options=None,
-  ),
-  _descriptor.MethodDescriptor(
-    name='AnswerOneOnOneChat',
-    full_name='VoiceChat.AnswerOneOnOneChat',
-    index=5,
-    containing_service=None,
-    input_type=_CVOICECHAT_ANSWERONEONONECHAT_REQUEST,
-    output_type=_CVOICECHAT_ANSWERONEONONECHAT_RESPONSE,
-    serialized_options=None,
-  ),
-  _descriptor.MethodDescriptor(
-    name='EndOneOnOneChat',
-    full_name='VoiceChat.EndOneOnOneChat',
-    index=6,
-    containing_service=None,
-    input_type=_CVOICECHAT_ENDONEONONECHAT_REQUEST,
-    output_type=_CVOICECHAT_ENDONEONONECHAT_RESPONSE,
-    serialized_options=None,
-  ),
+_HELPREQUESTLOGS = _descriptor.ServiceDescriptor(
+  name='HelpRequestLogs',
+  full_name='HelpRequestLogs',
+  file=DESCRIPTOR,
+  index=0,
+  serialized_options=None,
+  serialized_start=11564,
+  serialized_end=11715,
+  methods=[
   _descriptor.MethodDescriptor(
-    name='LeaveOneOnOneChat',
-    full_name='VoiceChat.LeaveOneOnOneChat',
-    index=7,
+    name='UploadUserApplicationLog',
+    full_name='HelpRequestLogs.UploadUserApplicationLog',
+    index=0,
     containing_service=None,
-    input_type=_CVOICECHAT_LEAVEONEONONECHAT_REQUEST,
-    output_type=_CVOICECHAT_LEAVEONEONONECHAT_RESPONSE,
+    input_type=_CHELPREQUESTLOGS_UPLOADUSERAPPLICATIONLOG_REQUEST,
+    output_type=_CHELPREQUESTLOGS_UPLOADUSERAPPLICATIONLOG_RESPONSE,
     serialized_options=None,
   ),
 ])
-_sym_db.RegisterServiceDescriptor(_VOICECHAT)
+_sym_db.RegisterServiceDescriptor(_HELPREQUESTLOGS)
 
-DESCRIPTOR.services_by_name['VoiceChat'] = _VOICECHAT
+DESCRIPTOR.services_by_name['HelpRequestLogs'] = _HELPREQUESTLOGS
 
 
-_VOICECHATCLIENT = _descriptor.ServiceDescriptor(
-  name='VoiceChatClient',
-  full_name='VoiceChatClient',
+_COMMUNITY = _descriptor.ServiceDescriptor(
+  name='Community',
+  full_name='Community',
   file=DESCRIPTOR,
-  index=4,
+  index=1,
   serialized_options=None,
-  serialized_start=17529,
-  serialized_end=18150,
+  serialized_start=11718,
+  serialized_end=13796,
   methods=[
   _descriptor.MethodDescriptor(
-    name='NotifyUserJoinedVoiceChat',
-    full_name='VoiceChatClient.NotifyUserJoinedVoiceChat',
+    name='GetApps',
+    full_name='Community.GetApps',
     index=0,
     containing_service=None,
-    input_type=_CVOICECHAT_USERJOINEDVOICECHAT_NOTIFICATION,
-    output_type=steammessages__unified__base__pb2._NORESPONSE,
+    input_type=_CCOMMUNITY_GETAPPS_REQUEST,
+    output_type=_CCOMMUNITY_GETAPPS_RESPONSE,
     serialized_options=None,
   ),
   _descriptor.MethodDescriptor(
-    name='NotifyUserLeftVoiceChat',
-    full_name='VoiceChatClient.NotifyUserLeftVoiceChat',
+    name='GetAppRichPresenceLocalization',
+    full_name='Community.GetAppRichPresenceLocalization',
     index=1,
     containing_service=None,
-    input_type=_CVOICECHAT_USERLEFTVOICECHAT_NOTIFICATION,
-    output_type=steammessages__unified__base__pb2._NORESPONSE,
+    input_type=_CCOMMUNITY_GETAPPRICHPRESENCELOCALIZATION_REQUEST,
+    output_type=_CCOMMUNITY_GETAPPRICHPRESENCELOCALIZATION_RESPONSE,
     serialized_options=None,
   ),
   _descriptor.MethodDescriptor(
-    name='NotifyVoiceChatEnded',
-    full_name='VoiceChatClient.NotifyVoiceChatEnded',
+    name='GetCommentThread',
+    full_name='Community.GetCommentThread',
     index=2,
     containing_service=None,
-    input_type=_CVOICECHAT_VOICECHATENDED_NOTIFICATION,
-    output_type=steammessages__unified__base__pb2._NORESPONSE,
+    input_type=_CCOMMUNITY_GETCOMMENTTHREAD_REQUEST,
+    output_type=_CCOMMUNITY_GETCOMMENTTHREAD_RESPONSE,
     serialized_options=None,
   ),
   _descriptor.MethodDescriptor(
-    name='NotifyUserVoiceStatus',
-    full_name='VoiceChatClient.NotifyUserVoiceStatus',
+    name='PostCommentToThread',
+    full_name='Community.PostCommentToThread',
     index=3,
     containing_service=None,
-    input_type=_CVOICECHAT_USERVOICESTATUS_NOTIFICATION,
-    output_type=steammessages__unified__base__pb2._NORESPONSE,
+    input_type=_CCOMMUNITY_POSTCOMMENTTOTHREAD_REQUEST,
+    output_type=_CCOMMUNITY_POSTCOMMENTTOTHREAD_RESPONSE,
     serialized_options=None,
   ),
   _descriptor.MethodDescriptor(
-    name='NotifyAllUsersVoiceStatus',
-    full_name='VoiceChatClient.NotifyAllUsersVoiceStatus',
+    name='DeleteCommentFromThread',
+    full_name='Community.DeleteCommentFromThread',
     index=4,
     containing_service=None,
-    input_type=_CVOICECHAT_ALLMEMBERSSTATUS_NOTIFICATION,
-    output_type=steammessages__unified__base__pb2._NORESPONSE,
+    input_type=_CCOMMUNITY_DELETECOMMENTFROMTHREAD_REQUEST,
+    output_type=_CCOMMUNITY_DELETECOMMENTFROMTHREAD_RESPONSE,
     serialized_options=None,
   ),
   _descriptor.MethodDescriptor(
-    name='NotifyOneOnOneChatRequested',
-    full_name='VoiceChatClient.NotifyOneOnOneChatRequested',
+    name='RateCommentThread',
+    full_name='Community.RateCommentThread',
     index=5,
     containing_service=None,
-    input_type=_CVOICECHAT_ONEONONECHATREQUESTED_NOTIFICATION,
-    output_type=steammessages__unified__base__pb2._NORESPONSE,
+    input_type=_CCOMMUNITY_RATECOMMENTTHREAD_REQUEST,
+    output_type=_CCOMMUNITY_RATECOMMENTTHREAD_RESPONSE,
     serialized_options=None,
   ),
   _descriptor.MethodDescriptor(
-    name='NotifyOneOnOneChatResponse',
-    full_name='VoiceChatClient.NotifyOneOnOneChatResponse',
+    name='GetCommentThreadRatings',
+    full_name='Community.GetCommentThreadRatings',
     index=6,
     containing_service=None,
-    input_type=_CVOICECHAT_ONEONONECHATREQUESTRESPONSE_NOTIFICATION,
-    output_type=steammessages__unified__base__pb2._NORESPONSE,
+    input_type=_CCOMMUNITY_GETCOMMENTTHREADRATINGS_REQUEST,
+    output_type=_CCOMMUNITY_GETCOMMENTTHREADRATINGS_RESPONSE,
     serialized_options=None,
   ),
-])
-_sym_db.RegisterServiceDescriptor(_VOICECHATCLIENT)
-
-DESCRIPTOR.services_by_name['VoiceChatClient'] = _VOICECHATCLIENT
-
-
-_STEAMTV = _descriptor.ServiceDescriptor(
-  name='SteamTV',
-  full_name='SteamTV',
-  file=DESCRIPTOR,
-  index=5,
-  serialized_options=None,
-  serialized_start=18153,
-  serialized_end=20747,
-  methods=[
   _descriptor.MethodDescriptor(
-    name='CreateBroadcastChannel',
-    full_name='SteamTV.CreateBroadcastChannel',
-    index=0,
+    name='RateClanAnnouncement',
+    full_name='Community.RateClanAnnouncement',
+    index=7,
     containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CSTEAMTV_CREATEBROADCASTCHANNEL_RESPONSE,
+    input_type=_CCOMMUNITY_RATECLANANNOUNCEMENT_REQUEST,
+    output_type=_CCOMMUNITY_RATECLANANNOUNCEMENT_RESPONSE,
     serialized_options=None,
   ),
   _descriptor.MethodDescriptor(
-    name='GetBroadcastChannelID',
-    full_name='SteamTV.GetBroadcastChannelID',
-    index=1,
+    name='GetClanAnnouncementVoteForUser',
+    full_name='Community.GetClanAnnouncementVoteForUser',
+    index=8,
     containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CSTEAMTV_GETBROADCASTCHANNELID_RESPONSE,
+    input_type=_CCOMMUNITY_GETCLANANNOUNCEMENTVOTEFORUSER_REQUEST,
+    output_type=_CCOMMUNITY_GETCLANANNOUNCEMENTVOTEFORUSER_RESPONSE,
     serialized_options=None,
   ),
   _descriptor.MethodDescriptor(
-    name='SetBroadcastChannelProfile',
-    full_name='SteamTV.SetBroadcastChannelProfile',
-    index=2,
+    name='GetUserPartnerEventNews',
+    full_name='Community.GetUserPartnerEventNews',
+    index=9,
     containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CSTEAMTV_SETBROADCASTCHANNELPROFILE_RESPONSE,
+    input_type=_CCOMMUNITY_GETUSERPARTNEREVENTNEWS_REQUEST,
+    output_type=_CCOMMUNITY_GETUSERPARTNEREVENTNEWS_RESPONSE,
     serialized_options=None,
   ),
   _descriptor.MethodDescriptor(
-    name='GetBroadcastChannelProfile',
-    full_name='SteamTV.GetBroadcastChannelProfile',
-    index=3,
+    name='GetBestEventsForUser',
+    full_name='Community.GetBestEventsForUser',
+    index=10,
     containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CSTEAMTV_GETBROADCASTCHANNELPROFILE_RESPONSE,
+    input_type=_CCOMMUNITY_GETBESTEVENTSFORUSER_REQUEST,
+    output_type=_CCOMMUNITY_GETBESTEVENTSFORUSER_RESPONSE,
     serialized_options=None,
   ),
   _descriptor.MethodDescriptor(
-    name='SetBroadcastChannelImage',
-    full_name='SteamTV.SetBroadcastChannelImage',
-    index=4,
+    name='MarkPartnerEventsForUser',
+    full_name='Community.MarkPartnerEventsForUser',
+    index=11,
     containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CSTEAMTV_SETBROADCASTCHANNELIMAGE_RESPONSE,
+    input_type=_CCOMMUNITY_MARKPARTNEREVENTSFORUSER_REQUEST,
+    output_type=_CCOMMUNITY_MARKPARTNEREVENTSFORUSER_RESPONSE,
     serialized_options=None,
   ),
   _descriptor.MethodDescriptor(
-    name='GetBroadcastChannelImages',
-    full_name='SteamTV.GetBroadcastChannelImages',
-    index=5,
+    name='PartnerEventsShowMoreForApp',
+    full_name='Community.PartnerEventsShowMoreForApp',
+    index=12,
     containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CSTEAMTV_GETBROADCASTCHANNELIMAGES_RESPONSE,
+    input_type=_CCOMMUNITY_PARTNEREVENTSSHOWMOREFORAPP_REQUEST,
+    output_type=_CCOMMUNITY_PARTNEREVENTSSHOWMOREFORAPP_RESPONSE,
     serialized_options=None,
   ),
   _descriptor.MethodDescriptor(
-    name='SetBroadcastChannelLinkRegions',
-    full_name='SteamTV.SetBroadcastChannelLinkRegions',
-    index=6,
+    name='PartnerEventsShowLessForApp',
+    full_name='Community.PartnerEventsShowLessForApp',
+    index=13,
     containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CSTEAMTV_SETBROADCASTCHANNELLINKREGIONS_RESPONSE,
+    input_type=_CCOMMUNITY_PARTNEREVENTSSHOWLESSFORAPP_REQUEST,
+    output_type=_CCOMMUNITY_PARTNEREVENTSSHOWLESSFORAPP_RESPONSE,
     serialized_options=None,
   ),
   _descriptor.MethodDescriptor(
-    name='GetBroadcastChannelLinks',
-    full_name='SteamTV.GetBroadcastChannelLinks',
-    index=7,
+    name='ClearUserPartnerEventsAppPriorities',
+    full_name='Community.ClearUserPartnerEventsAppPriorities',
+    index=14,
     containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CSTEAMTV_GETBROADCASTCHANNELLINKS_RESPONSE,
+    input_type=_CCOMMUNITY_CLEARUSERPARTNEREVENTSAPPPRIORITIES_REQUEST,
+    output_type=_CCOMMUNITY_CLEARUSERPARTNEREVENTSAPPPRIORITIES_RESPONSE,
     serialized_options=None,
   ),
   _descriptor.MethodDescriptor(
-    name='GetBroadcastChannelBroadcasters',
-    full_name='SteamTV.GetBroadcastChannelBroadcasters',
-    index=8,
+    name='GetUserPartnerEventsAppPriorities',
+    full_name='Community.GetUserPartnerEventsAppPriorities',
+    index=15,
     containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CSTEAMTV_GETBROADCASTCHANNELBROADCASTERS_RESPONSE,
+    input_type=_CCOMMUNITY_GETUSERPARTNEREVENTSAPPPRIORITIES_REQUEST,
+    output_type=_CCOMMUNITY_GETUSERPARTNEREVENTSAPPPRIORITIES_RESPONSE,
     serialized_options=None,
   ),
   _descriptor.MethodDescriptor(
-    name='GetFollowedChannels',
-    full_name='SteamTV.GetFollowedChannels',
-    index=9,
+    name='ClearSinglePartnerEventsAppPriority',
+    full_name='Community.ClearSinglePartnerEventsAppPriority',
+    index=16,
     containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CSTEAMTV_GETFOLLOWEDCHANNELS_RESPONSE,
+    input_type=_CCOMMUNITY_CLEARSINGLEPARTNEREVENTSAPPPRIORITY_REQUEST,
+    output_type=_CCOMMUNITY_CLEARSINGLEPARTNEREVENTSAPPPRIORITY_RESPONSE,
     serialized_options=None,
   ),
+])
+_sym_db.RegisterServiceDescriptor(_COMMUNITY)
+
+DESCRIPTOR.services_by_name['Community'] = _COMMUNITY
+
+
+_EXPERIMENTSERVICE = _descriptor.ServiceDescriptor(
+  name='ExperimentService',
+  full_name='ExperimentService',
+  file=DESCRIPTOR,
+  index=2,
+  serialized_options=None,
+  serialized_start=13798,
+  serialized_end=13883,
+  methods=[
   _descriptor.MethodDescriptor(
-    name='GetSubscribedChannels',
-    full_name='SteamTV.GetSubscribedChannels',
-    index=10,
+    name='ReportProductImpressionsFromClient',
+    full_name='ExperimentService.ReportProductImpressionsFromClient',
+    index=0,
     containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CSTEAMTV_GETSUBSCRIBEDCHANNELS_RESPONSE,
+    input_type=_UNKNOWNPROTO,
+    output_type=steammessages__unified__base__pb2._NORESPONSE,
     serialized_options=None,
   ),
+])
+_sym_db.RegisterServiceDescriptor(_EXPERIMENTSERVICE)
+
+DESCRIPTOR.services_by_name['ExperimentService'] = _EXPERIMENTSERVICE
+
+
+_FRIENDSLIST = _descriptor.ServiceDescriptor(
+  name='FriendsList',
+  full_name='FriendsList',
+  file=DESCRIPTOR,
+  index=3,
+  serialized_options=None,
+  serialized_start=13886,
+  serialized_end=14264,
+  methods=[
   _descriptor.MethodDescriptor(
-    name='GetBroadcastChannelStatus',
-    full_name='SteamTV.GetBroadcastChannelStatus',
-    index=11,
+    name='GetCategories',
+    full_name='FriendsList.GetCategories',
+    index=0,
     containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CSTEAMTV_GETBROADCASTCHANNELSTATUS_RESPONSE,
+    input_type=_CFRIENDSLIST_GETCATEGORIES_REQUEST,
+    output_type=_CFRIENDSLIST_GETCATEGORIES_RESPONSE,
     serialized_options=None,
   ),
   _descriptor.MethodDescriptor(
-    name='FollowBroadcastChannel',
-    full_name='SteamTV.FollowBroadcastChannel',
-    index=12,
+    name='GetFriendsList',
+    full_name='FriendsList.GetFriendsList',
+    index=1,
     containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CSTEAMTV_FOLLOWBROADCASTCHANNEL_RESPONSE,
+    input_type=_CFRIENDSLIST_GETFRIENDSLIST_REQUEST,
+    output_type=_CFRIENDSLIST_GETFRIENDSLIST_RESPONSE,
     serialized_options=None,
   ),
   _descriptor.MethodDescriptor(
-    name='SubscribeBroadcastChannel',
-    full_name='SteamTV.SubscribeBroadcastChannel',
-    index=13,
+    name='GetFavorites',
+    full_name='FriendsList.GetFavorites',
+    index=2,
     containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CSTEAMTV_SUBSCRIBEBROADCASTCHANNEL_RESPONSE,
+    input_type=_CFRIENDSLIST_GETFAVORITES_REQUEST,
+    output_type=_CFRIENDSLIST_GETFAVORITES_RESPONSE,
     serialized_options=None,
   ),
   _descriptor.MethodDescriptor(
-    name='GetBroadcastChannelClips',
-    full_name='SteamTV.GetBroadcastChannelClips',
-    index=14,
+    name='SetFavorites',
+    full_name='FriendsList.SetFavorites',
+    index=3,
+    containing_service=None,
+    input_type=_CFRIENDSLIST_SETFAVORITES_REQUEST,
+    output_type=_CFRIENDSLIST_SETFAVORITES_RESPONSE,
+    serialized_options=None,
+  ),
+])
+_sym_db.RegisterServiceDescriptor(_FRIENDSLIST)
+
+DESCRIPTOR.services_by_name['FriendsList'] = _FRIENDSLIST
+
+
+_FRIENDSLISTCLIENT = _descriptor.ServiceDescriptor(
+  name='FriendsListClient',
+  full_name='FriendsListClient',
+  file=DESCRIPTOR,
+  index=4,
+  serialized_options=None,
+  serialized_start=14266,
+  serialized_end=14363,
+  methods=[
+  _descriptor.MethodDescriptor(
+    name='FavoritesChanged',
+    full_name='FriendsListClient.FavoritesChanged',
+    index=0,
     containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CSTEAMTV_GETBROADCASTCHANNELCLIPS_RESPONSE,
+    input_type=_CFRIENDSLIST_FAVORITESCHANGED_NOTIFICATION,
+    output_type=steammessages__unified__base__pb2._NORESPONSE,
     serialized_options=None,
   ),
+])
+_sym_db.RegisterServiceDescriptor(_FRIENDSLISTCLIENT)
+
+DESCRIPTOR.services_by_name['FriendsListClient'] = _FRIENDSLISTCLIENT
+
+
+_CLAN = _descriptor.ServiceDescriptor(
+  name='Clan',
+  full_name='Clan',
+  file=DESCRIPTOR,
+  index=5,
+  serialized_options=None,
+  serialized_start=14365,
+  serialized_end=14467,
+  methods=[
   _descriptor.MethodDescriptor(
-    name='ReportBroadcastChannel',
-    full_name='SteamTV.ReportBroadcastChannel',
-    index=15,
+    name='RespondToClanInvite',
+    full_name='Clan.RespondToClanInvite',
+    index=0,
     containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CSTEAMTV_REPORTBROADCASTCHANNEL_RESPONSE,
+    input_type=_CCLAN_RESPONDTOCLANINVITE_REQUEST,
+    output_type=_CCLAN_RESPONDTOCLANINVITE_RESPONSE,
     serialized_options=None,
   ),
+])
+_sym_db.RegisterServiceDescriptor(_CLAN)
+
+DESCRIPTOR.services_by_name['Clan'] = _CLAN
+
+
+_VOICECHAT = _descriptor.ServiceDescriptor(
+  name='VoiceChat',
+  full_name='VoiceChat',
+  file=DESCRIPTOR,
+  index=6,
+  serialized_options=None,
+  serialized_start=14470,
+  serialized_end=15303,
+  methods=[
   _descriptor.MethodDescriptor(
-    name='GetBroadcastChannelInteraction',
-    full_name='SteamTV.GetBroadcastChannelInteraction',
-    index=16,
+    name='UpdateVoiceChatWebRTCData',
+    full_name='VoiceChat.UpdateVoiceChatWebRTCData',
+    index=0,
     containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CSTEAMTV_GETBROADCASTCHANNELINTERACTION_RESPONSE,
+    input_type=_CVOICECHAT_UPDATEVOICECHATWEBRTCDATA_REQUEST,
+    output_type=_CVOICECHAT_UPDATEVOICECHATWEBRTCDATA_RESPONSE,
     serialized_options=None,
   ),
   _descriptor.MethodDescriptor(
-    name='GetGames',
-    full_name='SteamTV.GetGames',
-    index=17,
+    name='NotifyUserVoiceStatus',
+    full_name='VoiceChat.NotifyUserVoiceStatus',
+    index=1,
     containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CSTEAMTV_GETGAMES_RESPONSE,
+    input_type=_CVOICECHAT_USERVOICESTATUS_NOTIFICATION,
+    output_type=steammessages__unified__base__pb2._NORESPONSE,
     serialized_options=None,
   ),
   _descriptor.MethodDescriptor(
-    name='GetChannels',
-    full_name='SteamTV.GetChannels',
-    index=18,
+    name='UploadClientVoiceChatLogs',
+    full_name='VoiceChat.UploadClientVoiceChatLogs',
+    index=2,
     containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CSTEAMTV_GETCHANNELS_RESPONSE,
+    input_type=_CVOICECHAT_UPLOADCLIENTVOICECHATLOGS_REQUEST,
+    output_type=_CVOICECHAT_UPLOADCLIENTVOICECHATLOGS_RESPONSE,
     serialized_options=None,
   ),
   _descriptor.MethodDescriptor(
-    name='AddChatBan',
-    full_name='SteamTV.AddChatBan',
-    index=19,
+    name='LeaveVoiceChat',
+    full_name='VoiceChat.LeaveVoiceChat',
+    index=3,
     containing_service=None,
-    input_type=_CSTEAMTV_ADDCHATBAN_REQUEST,
-    output_type=_CSTEAMTV_ADDCHATBAN_RESPONSE,
+    input_type=_CVOICECHAT_LEAVEVOICECHAT_REQUEST,
+    output_type=_CVOICECHAT_LEAVEVOICECHAT_RESPONSE,
     serialized_options=None,
   ),
   _descriptor.MethodDescriptor(
-    name='GetChatBans',
-    full_name='SteamTV.GetChatBans',
-    index=20,
+    name='RequestOneOnOneChat',
+    full_name='VoiceChat.RequestOneOnOneChat',
+    index=4,
     containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CSTEAMTV_GETCHATBANS_RESPONSE,
+    input_type=_CVOICECHAT_REQUESTONEONONECHAT_REQUEST,
+    output_type=_CVOICECHAT_REQUESTONEONONECHAT_RESPONSE,
     serialized_options=None,
   ),
   _descriptor.MethodDescriptor(
-    name='AddChatModerator',
-    full_name='SteamTV.AddChatModerator',
-    index=21,
+    name='AnswerOneOnOneChat',
+    full_name='VoiceChat.AnswerOneOnOneChat',
+    index=5,
     containing_service=None,
-    input_type=_CSTEAMTV_ADDCHATMODERATOR_REQUEST,
-    output_type=_CSTEAMTV_ADDCHATMODERATOR_RESPONSE,
+    input_type=_CVOICECHAT_ANSWERONEONONECHAT_REQUEST,
+    output_type=_CVOICECHAT_ANSWERONEONONECHAT_RESPONSE,
     serialized_options=None,
   ),
   _descriptor.MethodDescriptor(
-    name='GetChatModerators',
-    full_name='SteamTV.GetChatModerators',
-    index=22,
+    name='EndOneOnOneChat',
+    full_name='VoiceChat.EndOneOnOneChat',
+    index=6,
     containing_service=None,
-    input_type=_CSTEAMTV_GETCHATMODERATORS_REQUEST,
-    output_type=_CSTEAMTV_GETCHATMODERATORS_RESPONSE,
+    input_type=_CVOICECHAT_ENDONEONONECHAT_REQUEST,
+    output_type=_CVOICECHAT_ENDONEONONECHAT_RESPONSE,
     serialized_options=None,
   ),
   _descriptor.MethodDescriptor(
-    name='AddWordBan',
-    full_name='SteamTV.AddWordBan',
-    index=23,
+    name='LeaveOneOnOneChat',
+    full_name='VoiceChat.LeaveOneOnOneChat',
+    index=7,
     containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CSTEAMTV_ADDWORDBAN_RESPONSE,
+    input_type=_CVOICECHAT_LEAVEONEONONECHAT_REQUEST,
+    output_type=_CVOICECHAT_LEAVEONEONONECHAT_RESPONSE,
     serialized_options=None,
   ),
+])
+_sym_db.RegisterServiceDescriptor(_VOICECHAT)
+
+DESCRIPTOR.services_by_name['VoiceChat'] = _VOICECHAT
+
+
+_VOICECHATCLIENT = _descriptor.ServiceDescriptor(
+  name='VoiceChatClient',
+  full_name='VoiceChatClient',
+  file=DESCRIPTOR,
+  index=7,
+  serialized_options=None,
+  serialized_start=15306,
+  serialized_end=15927,
+  methods=[
   _descriptor.MethodDescriptor(
-    name='GetWordBans',
-    full_name='SteamTV.GetWordBans',
-    index=24,
+    name='NotifyUserJoinedVoiceChat',
+    full_name='VoiceChatClient.NotifyUserJoinedVoiceChat',
+    index=0,
     containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CSTEAMTV_GETWORDBANS_RESPONSE,
+    input_type=_CVOICECHAT_USERJOINEDVOICECHAT_NOTIFICATION,
+    output_type=steammessages__unified__base__pb2._NORESPONSE,
     serialized_options=None,
   ),
   _descriptor.MethodDescriptor(
-    name='JoinChat',
-    full_name='SteamTV.JoinChat',
-    index=25,
+    name='NotifyUserLeftVoiceChat',
+    full_name='VoiceChatClient.NotifyUserLeftVoiceChat',
+    index=1,
     containing_service=None,
-    input_type=_CSTEAMTV_JOINCHAT_REQUEST,
-    output_type=_CSTEAMTV_JOINCHAT_RESPONSE,
+    input_type=_CVOICECHAT_USERLEFTVOICECHAT_NOTIFICATION,
+    output_type=steammessages__unified__base__pb2._NORESPONSE,
     serialized_options=None,
   ),
   _descriptor.MethodDescriptor(
-    name='Search',
-    full_name='SteamTV.Search',
-    index=26,
+    name='NotifyVoiceChatEnded',
+    full_name='VoiceChatClient.NotifyVoiceChatEnded',
+    index=2,
     containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CSTEAMTV_SEARCH_RESPONSE,
+    input_type=_CVOICECHAT_VOICECHATENDED_NOTIFICATION,
+    output_type=steammessages__unified__base__pb2._NORESPONSE,
     serialized_options=None,
   ),
   _descriptor.MethodDescriptor(
-    name='GetSteamTVUserSettings',
-    full_name='SteamTV.GetSteamTVUserSettings',
-    index=27,
+    name='NotifyUserVoiceStatus',
+    full_name='VoiceChatClient.NotifyUserVoiceStatus',
+    index=3,
     containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CSTEAMTV_GETSTEAMTVUSERSETTINGS_RESPONSE,
+    input_type=_CVOICECHAT_USERVOICESTATUS_NOTIFICATION,
+    output_type=steammessages__unified__base__pb2._NORESPONSE,
     serialized_options=None,
   ),
   _descriptor.MethodDescriptor(
-    name='SetSteamTVUserSettings',
-    full_name='SteamTV.SetSteamTVUserSettings',
-    index=28,
+    name='NotifyAllUsersVoiceStatus',
+    full_name='VoiceChatClient.NotifyAllUsersVoiceStatus',
+    index=4,
     containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CSTEAMTV_SETSTEAMTVUSERSETTINGS_RESPONSE,
+    input_type=_CVOICECHAT_ALLMEMBERSSTATUS_NOTIFICATION,
+    output_type=steammessages__unified__base__pb2._NORESPONSE,
     serialized_options=None,
   ),
   _descriptor.MethodDescriptor(
-    name='GetMyBroadcastChannels',
-    full_name='SteamTV.GetMyBroadcastChannels',
-    index=29,
+    name='NotifyOneOnOneChatRequested',
+    full_name='VoiceChatClient.NotifyOneOnOneChatRequested',
+    index=5,
     containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CSTEAMTV_GETMYBROADCASTCHANNELS_RESPONSE,
+    input_type=_CVOICECHAT_ONEONONECHATREQUESTED_NOTIFICATION,
+    output_type=steammessages__unified__base__pb2._NORESPONSE,
     serialized_options=None,
   ),
   _descriptor.MethodDescriptor(
-    name='GetHomePageContents',
-    full_name='SteamTV.GetHomePageContents',
-    index=30,
+    name='NotifyOneOnOneChatResponse',
+    full_name='VoiceChatClient.NotifyOneOnOneChatResponse',
+    index=6,
     containing_service=None,
-    input_type=_NOTIMPLEMENTED,
-    output_type=_CSTEAMTV_GETHOMEPAGECONTENTS_RESPONSE,
+    input_type=_CVOICECHAT_ONEONONECHATREQUESTRESPONSE_NOTIFICATION,
+    output_type=steammessages__unified__base__pb2._NORESPONSE,
     serialized_options=None,
   ),
 ])
-_sym_db.RegisterServiceDescriptor(_STEAMTV)
+_sym_db.RegisterServiceDescriptor(_VOICECHATCLIENT)
 
-DESCRIPTOR.services_by_name['SteamTV'] = _STEAMTV
+DESCRIPTOR.services_by_name['VoiceChatClient'] = _VOICECHATCLIENT
 
 
-_FRIENDSLIST = _descriptor.ServiceDescriptor(
-  name='FriendsList',
-  full_name='FriendsList',
+_WEBRTCCLIENT = _descriptor.ServiceDescriptor(
+  name='WebRTCClient',
+  full_name='WebRTCClient',
   file=DESCRIPTOR,
-  index=6,
+  index=8,
   serialized_options=None,
-  serialized_start=20750,
-  serialized_end=21128,
+  serialized_start=15930,
+  serialized_end=16232,
   methods=[
   _descriptor.MethodDescriptor(
-    name='GetCategories',
-    full_name='FriendsList.GetCategories',
+    name='InitiateWebRTCConnection',
+    full_name='WebRTCClient.InitiateWebRTCConnection',
     index=0,
     containing_service=None,
-    input_type=_CFRIENDSLIST_GETCATEGORIES_REQUEST,
-    output_type=_CFRIENDSLIST_GETCATEGORIES_RESPONSE,
+    input_type=_CWEBRTCCLIENT_INITIATEWEBRTCCONNECTION_REQUEST,
+    output_type=_CWEBRTCCLIENT_INITIATEWEBRTCCONNECTION_RESPONSE,
     serialized_options=None,
   ),
   _descriptor.MethodDescriptor(
-    name='GetFriendsList',
-    full_name='FriendsList.GetFriendsList',
+    name='AcknowledgeUpdatedRemoteDescription',
+    full_name='WebRTCClient.AcknowledgeUpdatedRemoteDescription',
     index=1,
     containing_service=None,
-    input_type=_CFRIENDSLIST_GETFRIENDSLIST_REQUEST,
-    output_type=_CFRIENDSLIST_GETFRIENDSLIST_RESPONSE,
-    serialized_options=None,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetFavorites',
-    full_name='FriendsList.GetFavorites',
-    index=2,
-    containing_service=None,
-    input_type=_CFRIENDSLIST_GETFAVORITES_REQUEST,
-    output_type=_CFRIENDSLIST_GETFAVORITES_RESPONSE,
-    serialized_options=None,
-  ),
-  _descriptor.MethodDescriptor(
-    name='SetFavorites',
-    full_name='FriendsList.SetFavorites',
-    index=3,
-    containing_service=None,
-    input_type=_CFRIENDSLIST_SETFAVORITES_REQUEST,
-    output_type=_CFRIENDSLIST_SETFAVORITES_RESPONSE,
+    input_type=_CWEBRTCCLIENT_ACKNOWLEDGEUPDATEDREMOTEDESCRIPTION_REQUEST,
+    output_type=_CWEBRTCCLIENT_ACKNOWLEDGEUPDATEDREMOTEDESCRIPTION_RESPONSE,
     serialized_options=None,
   ),
 ])
-_sym_db.RegisterServiceDescriptor(_FRIENDSLIST)
+_sym_db.RegisterServiceDescriptor(_WEBRTCCLIENT)
 
-DESCRIPTOR.services_by_name['FriendsList'] = _FRIENDSLIST
+DESCRIPTOR.services_by_name['WebRTCClient'] = _WEBRTCCLIENT
 
 
-_FRIENDSLISTCLIENT = _descriptor.ServiceDescriptor(
-  name='FriendsListClient',
-  full_name='FriendsListClient',
+_WEBRTCCLIENTNOTIFICATIONS = _descriptor.ServiceDescriptor(
+  name='WebRTCClientNotifications',
+  full_name='WebRTCClientNotifications',
   file=DESCRIPTOR,
-  index=7,
+  index=9,
   serialized_options=None,
-  serialized_start=21130,
-  serialized_end=21227,
+  serialized_start=16235,
+  serialized_end=16458,
   methods=[
   _descriptor.MethodDescriptor(
-    name='FavoritesChanged',
-    full_name='FriendsListClient.FavoritesChanged',
+    name='NotifyWebRTCSessionConnected',
+    full_name='WebRTCClientNotifications.NotifyWebRTCSessionConnected',
     index=0,
     containing_service=None,
-    input_type=_CFRIENDSLIST_FAVORITESCHANGED_NOTIFICATION,
+    input_type=_CWEBRTC_WEBRTCSESSIONCONNECTED_NOTIFICATION,
+    output_type=steammessages__unified__base__pb2._NORESPONSE,
+    serialized_options=None,
+  ),
+  _descriptor.MethodDescriptor(
+    name='NotifyWebRTCUpdateRemoteDescription',
+    full_name='WebRTCClientNotifications.NotifyWebRTCUpdateRemoteDescription',
+    index=1,
+    containing_service=None,
+    input_type=_CWEBRTC_WEBRTCUPDATEREMOTEDESCRIPTION_NOTIFICATION,
     output_type=steammessages__unified__base__pb2._NORESPONSE,
     serialized_options=None,
   ),
 ])
-_sym_db.RegisterServiceDescriptor(_FRIENDSLISTCLIENT)
+_sym_db.RegisterServiceDescriptor(_WEBRTCCLIENTNOTIFICATIONS)
 
-DESCRIPTOR.services_by_name['FriendsListClient'] = _FRIENDSLISTCLIENT
+DESCRIPTOR.services_by_name['WebRTCClientNotifications'] = _WEBRTCCLIENTNOTIFICATIONS
 
 
-_CLAN = _descriptor.ServiceDescriptor(
-  name='Clan',
-  full_name='Clan',
+_MOBILEPERACCOUNT = _descriptor.ServiceDescriptor(
+  name='MobilePerAccount',
+  full_name='MobilePerAccount',
   file=DESCRIPTOR,
-  index=8,
+  index=10,
   serialized_options=None,
-  serialized_start=21229,
-  serialized_end=21331,
+  serialized_start=16461,
+  serialized_end=16671,
   methods=[
   _descriptor.MethodDescriptor(
-    name='RespondToClanInvite',
-    full_name='Clan.RespondToClanInvite',
+    name='GetSettings',
+    full_name='MobilePerAccount.GetSettings',
     index=0,
     containing_service=None,
-    input_type=_CCLAN_RESPONDTOCLANINVITE_REQUEST,
-    output_type=_CCLAN_RESPONDTOCLANINVITE_RESPONSE,
+    input_type=_CMOBILEPERACCOUNT_GETSETTINGS_REQUEST,
+    output_type=_CMOBILEPERACCOUNT_GETSETTINGS_RESPONSE,
+    serialized_options=None,
+  ),
+  _descriptor.MethodDescriptor(
+    name='SetSettings',
+    full_name='MobilePerAccount.SetSettings',
+    index=1,
+    containing_service=None,
+    input_type=_CMOBILEPERACCOUNT_SETSETTINGS_REQUEST,
+    output_type=_CMOBILEPERACCOUNT_SETSETTINGS_RESPONSE,
     serialized_options=None,
   ),
 ])
-_sym_db.RegisterServiceDescriptor(_CLAN)
+_sym_db.RegisterServiceDescriptor(_MOBILEPERACCOUNT)
 
-DESCRIPTOR.services_by_name['Clan'] = _CLAN
+DESCRIPTOR.services_by_name['MobilePerAccount'] = _MOBILEPERACCOUNT
 
 
-_EXPERIMENTSERVICE = _descriptor.ServiceDescriptor(
-  name='ExperimentService',
-  full_name='ExperimentService',
+_MOBILEDEVICE = _descriptor.ServiceDescriptor(
+  name='MobileDevice',
+  full_name='MobileDevice',
   file=DESCRIPTOR,
-  index=9,
+  index=11,
   serialized_options=None,
-  serialized_start=21333,
-  serialized_end=21420,
+  serialized_start=16674,
+  serialized_end=16894,
   methods=[
   _descriptor.MethodDescriptor(
-    name='ReportProductImpressionsFromClient',
-    full_name='ExperimentService.ReportProductImpressionsFromClient',
+    name='RegisterMobileDevice',
+    full_name='MobileDevice.RegisterMobileDevice',
     index=0,
     containing_service=None,
-    input_type=_NOTIMPLEMENTED,
+    input_type=_CMOBILEDEVICE_REGISTERMOBILEDEVICE_REQUEST,
+    output_type=_CMOBILEDEVICE_REGISTERMOBILEDEVICE_RESPONSE,
+    serialized_options=None,
+  ),
+  _descriptor.MethodDescriptor(
+    name='DeregisterMobileDevice',
+    full_name='MobileDevice.DeregisterMobileDevice',
+    index=1,
+    containing_service=None,
+    input_type=_CMOBILEDEVICE_DEREGISTERMOBILEDEVICE_NOTIFICATION,
     output_type=steammessages__unified__base__pb2._NORESPONSE,
     serialized_options=None,
   ),
 ])
-_sym_db.RegisterServiceDescriptor(_EXPERIMENTSERVICE)
+_sym_db.RegisterServiceDescriptor(_MOBILEDEVICE)
+
+DESCRIPTOR.services_by_name['MobileDevice'] = _MOBILEDEVICE
+
+HelpRequestLogs = service_reflection.GeneratedServiceType('HelpRequestLogs', (_service.Service,), dict(
+  DESCRIPTOR = _HELPREQUESTLOGS,
+  __module__ = 'steammessages_webui_friends_pb2'
+  ))
+
+HelpRequestLogs_Stub = service_reflection.GeneratedServiceStubType('HelpRequestLogs_Stub', (HelpRequestLogs,), dict(
+  DESCRIPTOR = _HELPREQUESTLOGS,
+  __module__ = 'steammessages_webui_friends_pb2'
+  ))
 
-DESCRIPTOR.services_by_name['ExperimentService'] = _EXPERIMENTSERVICE
 
 Community = service_reflection.GeneratedServiceType('Community', (_service.Service,), dict(
   DESCRIPTOR = _COMMUNITY,
@@ -7348,24 +5749,46 @@ Community_Stub = service_reflection.GeneratedServiceStubType('Community_Stub', (
   ))
 
 
-WebRTCClient = service_reflection.GeneratedServiceType('WebRTCClient', (_service.Service,), dict(
-  DESCRIPTOR = _WEBRTCCLIENT,
+ExperimentService = service_reflection.GeneratedServiceType('ExperimentService', (_service.Service,), dict(
+  DESCRIPTOR = _EXPERIMENTSERVICE,
   __module__ = 'steammessages_webui_friends_pb2'
   ))
 
-WebRTCClient_Stub = service_reflection.GeneratedServiceStubType('WebRTCClient_Stub', (WebRTCClient,), dict(
-  DESCRIPTOR = _WEBRTCCLIENT,
+ExperimentService_Stub = service_reflection.GeneratedServiceStubType('ExperimentService_Stub', (ExperimentService,), dict(
+  DESCRIPTOR = _EXPERIMENTSERVICE,
   __module__ = 'steammessages_webui_friends_pb2'
   ))
 
 
-WebRTCClientNotifications = service_reflection.GeneratedServiceType('WebRTCClientNotifications', (_service.Service,), dict(
-  DESCRIPTOR = _WEBRTCCLIENTNOTIFICATIONS,
+FriendsList = service_reflection.GeneratedServiceType('FriendsList', (_service.Service,), dict(
+  DESCRIPTOR = _FRIENDSLIST,
   __module__ = 'steammessages_webui_friends_pb2'
   ))
 
-WebRTCClientNotifications_Stub = service_reflection.GeneratedServiceStubType('WebRTCClientNotifications_Stub', (WebRTCClientNotifications,), dict(
-  DESCRIPTOR = _WEBRTCCLIENTNOTIFICATIONS,
+FriendsList_Stub = service_reflection.GeneratedServiceStubType('FriendsList_Stub', (FriendsList,), dict(
+  DESCRIPTOR = _FRIENDSLIST,
+  __module__ = 'steammessages_webui_friends_pb2'
+  ))
+
+
+FriendsListClient = service_reflection.GeneratedServiceType('FriendsListClient', (_service.Service,), dict(
+  DESCRIPTOR = _FRIENDSLISTCLIENT,
+  __module__ = 'steammessages_webui_friends_pb2'
+  ))
+
+FriendsListClient_Stub = service_reflection.GeneratedServiceStubType('FriendsListClient_Stub', (FriendsListClient,), dict(
+  DESCRIPTOR = _FRIENDSLISTCLIENT,
+  __module__ = 'steammessages_webui_friends_pb2'
+  ))
+
+
+Clan = service_reflection.GeneratedServiceType('Clan', (_service.Service,), dict(
+  DESCRIPTOR = _CLAN,
+  __module__ = 'steammessages_webui_friends_pb2'
+  ))
+
+Clan_Stub = service_reflection.GeneratedServiceStubType('Clan_Stub', (Clan,), dict(
+  DESCRIPTOR = _CLAN,
   __module__ = 'steammessages_webui_friends_pb2'
   ))
 
@@ -7392,57 +5815,46 @@ VoiceChatClient_Stub = service_reflection.GeneratedServiceStubType('VoiceChatCli
   ))
 
 
-SteamTV = service_reflection.GeneratedServiceType('SteamTV', (_service.Service,), dict(
-  DESCRIPTOR = _STEAMTV,
-  __module__ = 'steammessages_webui_friends_pb2'
-  ))
-
-SteamTV_Stub = service_reflection.GeneratedServiceStubType('SteamTV_Stub', (SteamTV,), dict(
-  DESCRIPTOR = _STEAMTV,
-  __module__ = 'steammessages_webui_friends_pb2'
-  ))
-
-
-FriendsList = service_reflection.GeneratedServiceType('FriendsList', (_service.Service,), dict(
-  DESCRIPTOR = _FRIENDSLIST,
+WebRTCClient = service_reflection.GeneratedServiceType('WebRTCClient', (_service.Service,), dict(
+  DESCRIPTOR = _WEBRTCCLIENT,
   __module__ = 'steammessages_webui_friends_pb2'
   ))
 
-FriendsList_Stub = service_reflection.GeneratedServiceStubType('FriendsList_Stub', (FriendsList,), dict(
-  DESCRIPTOR = _FRIENDSLIST,
+WebRTCClient_Stub = service_reflection.GeneratedServiceStubType('WebRTCClient_Stub', (WebRTCClient,), dict(
+  DESCRIPTOR = _WEBRTCCLIENT,
   __module__ = 'steammessages_webui_friends_pb2'
   ))
 
 
-FriendsListClient = service_reflection.GeneratedServiceType('FriendsListClient', (_service.Service,), dict(
-  DESCRIPTOR = _FRIENDSLISTCLIENT,
+WebRTCClientNotifications = service_reflection.GeneratedServiceType('WebRTCClientNotifications', (_service.Service,), dict(
+  DESCRIPTOR = _WEBRTCCLIENTNOTIFICATIONS,
   __module__ = 'steammessages_webui_friends_pb2'
   ))
 
-FriendsListClient_Stub = service_reflection.GeneratedServiceStubType('FriendsListClient_Stub', (FriendsListClient,), dict(
-  DESCRIPTOR = _FRIENDSLISTCLIENT,
+WebRTCClientNotifications_Stub = service_reflection.GeneratedServiceStubType('WebRTCClientNotifications_Stub', (WebRTCClientNotifications,), dict(
+  DESCRIPTOR = _WEBRTCCLIENTNOTIFICATIONS,
   __module__ = 'steammessages_webui_friends_pb2'
   ))
 
 
-Clan = service_reflection.GeneratedServiceType('Clan', (_service.Service,), dict(
-  DESCRIPTOR = _CLAN,
+MobilePerAccount = service_reflection.GeneratedServiceType('MobilePerAccount', (_service.Service,), dict(
+  DESCRIPTOR = _MOBILEPERACCOUNT,
   __module__ = 'steammessages_webui_friends_pb2'
   ))
 
-Clan_Stub = service_reflection.GeneratedServiceStubType('Clan_Stub', (Clan,), dict(
-  DESCRIPTOR = _CLAN,
+MobilePerAccount_Stub = service_reflection.GeneratedServiceStubType('MobilePerAccount_Stub', (MobilePerAccount,), dict(
+  DESCRIPTOR = _MOBILEPERACCOUNT,
   __module__ = 'steammessages_webui_friends_pb2'
   ))
 
 
-ExperimentService = service_reflection.GeneratedServiceType('ExperimentService', (_service.Service,), dict(
-  DESCRIPTOR = _EXPERIMENTSERVICE,
+MobileDevice = service_reflection.GeneratedServiceType('MobileDevice', (_service.Service,), dict(
+  DESCRIPTOR = _MOBILEDEVICE,
   __module__ = 'steammessages_webui_friends_pb2'
   ))
 
-ExperimentService_Stub = service_reflection.GeneratedServiceStubType('ExperimentService_Stub', (ExperimentService,), dict(
-  DESCRIPTOR = _EXPERIMENTSERVICE,
+MobileDevice_Stub = service_reflection.GeneratedServiceStubType('MobileDevice_Stub', (MobileDevice,), dict(
+  DESCRIPTOR = _MOBILEDEVICE,
   __module__ = 'steammessages_webui_friends_pb2'
   ))
 
diff --git a/steam/utils/__init__.py b/steam/utils/__init__.py
index 3159bcb..e97bdac 100644
--- a/steam/utils/__init__.py
+++ b/steam/utils/__init__.py
@@ -1,31 +1,56 @@
 """Utility package with various useful functions
 """
+import six
+from six.moves import xrange as _range
+import sys
+
+if six.PY2 and sys.platform == 'win32':
+    import win_inet_pton
+
 import weakref
 import struct
 import socket
-import sys
-from six.moves import xrange as _range
 
 
-def ip_from_int(ip):
-    """Convert IP to :py:class:`int`
+def ip4_from_int(ip):
+    """Convert :py:class:`int` to IPv4 string
+
+    :param ip: int representing an IPv4
+    :type ip: int
+    :return: IP in dot-decimal notation
+    :rtype: str
+    """
+    return socket.inet_ntoa(struct.pack(">L", ip))
+
+def ip4_to_int(ip):
+    """Convert IPv4 string to :py:class:`int`
 
-    :param ip: IP in dot-decimal notation
+    :param ip: IPv4 in dot-decimal notation
     :type ip: str
     :rtype: int
     """
-    return socket.inet_ntoa(struct.pack(">L", ip))
+    return struct.unpack(">L", socket.inet_aton(ip))[0]
 
-def ip_to_int(ip):
-    """Convert :py:class:`int` to IP
+ip_to_int = ip4_to_int
+ip_from_int = ip4_from_int
 
-    :param ip: int representing an IP
-    :type ip: int
-    :return: IP in dot-decimal notation
+def ip6_from_bytes(ip):
+    """Convert :py:class:`bytes` to IPv6 string
+
+    :param ip: IPv6 in dot-decimal notation
+    :type ip: bytes
     :rtype: str
     """
-    return struct.unpack(">L", socket.inet_aton(ip))[0]
+    return socket.inet_ntop(socket.AF_INET6, ip)
+
+def ip6_to_bytes(ip):
+    """Convert IPv6 string to :py:class:`bytes`
 
+    :param ip: IPv6 in dot-decimal notation
+    :type ip: str
+    :rtype: bytes
+    """
+    return socket.inet_pton(socket.AF_INET6, ip)
 
 
 def chunks(arr, size):
diff --git a/tests/test_utils.py b/tests/test_utils.py
index 32a0f9e..d0b6998 100644
--- a/tests/test_utils.py
+++ b/tests/test_utils.py
@@ -5,22 +5,33 @@ import steam.utils.web as uweb
 import requests
 from steam.protobufs.test_messages_pb2 import ComplexProtoMessage
 
-proto_mask = 0x80000000
-
 class Util_Functions(unittest.TestCase):
-    def test_ip_from_int(self):
-        self.assertEqual('0.0.0.0', ut.ip_from_int(0))
-        self.assertEqual('12.34.56.78', ut.ip_from_int(203569230))
-        self.assertEqual('255.255.255.255', ut.ip_from_int(4294967295))
-
-    def test_ip_to_int(self):
-        self.assertEqual(ut.ip_to_int('0.0.0.0'), 0)
-        self.assertEqual(ut.ip_to_int('12.34.56.78'), 203569230)
-        self.assertEqual(ut.ip_to_int('255.255.255.255'), 4294967295)
+    def test_ip4_from_int(self):
+        self.assertEqual('0.0.0.0',         ut.ip4_from_int(0))
+        self.assertEqual('12.34.56.78',     ut.ip4_from_int(203569230))
+        self.assertEqual('255.255.255.255', ut.ip4_from_int(4294967295))
+
+    def test_ip4_to_int(self):
+        self.assertEqual(ut.ip4_to_int('0.0.0.0'),         0)
+        self.assertEqual(ut.ip4_to_int('12.34.56.78'),     203569230)
+        self.assertEqual(ut.ip4_to_int('255.255.255.255'), 4294967295)
+
+    def test_ip6_from_bytes(self):
+        self.assertEqual('::1',                               ut.ip6_from_bytes(b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01'))
+        self.assertEqual('1:2:3:4:5:6:7:8',                   ut.ip6_from_bytes(b'\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08'))
+        self.assertEqual('1234:5678:9abc:def0:0:dead:beef:1', ut.ip6_from_bytes(b'\x12\x34\x56\x78\x9a\xbc\xde\xf0\x00\x00\xde\xad\xbe\xef\x00\x01'))
+
+    def test_ip6_to_bytes(self):
+        self.assertEqual(ut.ip6_to_bytes('::1'),                               b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01')
+        self.assertEqual(ut.ip6_to_bytes('1:2:3:4:5:6:7:8'),                   b'\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08')
+        self.assertEqual(ut.ip6_to_bytes('1234:5678:9abc:def0:0:dead:beef:1'), b'\x12\x34\x56\x78\x9a\xbc\xde\xf0\x00\x00\xde\xad\xbe\xef\x00\x01')
 
     def test_make_requests_session(self):
         self.assertIsInstance(uweb.make_requests_session(), requests.Session)
 
+
+proto_mask = 0x80000000
+
 class Util_Proto_Functions(unittest.TestCase):
     def test_is_proto(self):
         self.assertTrue(utp.is_proto(proto_mask))