Skip to main content

source2_demo_protobufs/
common.rs

1#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2pub struct CMsgProtoBufHeader {
3    #[prost(fixed64, optional, tag = "1")]
4    pub client_steam_id: ::core::option::Option<u64>,
5    #[prost(int32, optional, tag = "2")]
6    pub client_session_id: ::core::option::Option<i32>,
7    #[prost(uint32, optional, tag = "3")]
8    pub source_app_id: ::core::option::Option<u32>,
9    #[prost(fixed64, optional, tag = "10", default = "18446744073709551615")]
10    pub job_id_source: ::core::option::Option<u64>,
11    #[prost(fixed64, optional, tag = "11", default = "18446744073709551615")]
12    pub job_id_target: ::core::option::Option<u64>,
13    #[prost(string, optional, tag = "12")]
14    pub target_job_name: ::core::option::Option<::prost::alloc::string::String>,
15    #[prost(int32, optional, tag = "13", default = "2")]
16    pub eresult: ::core::option::Option<i32>,
17    #[prost(string, optional, tag = "14")]
18    pub error_message: ::core::option::Option<::prost::alloc::string::String>,
19    #[prost(enumeration = "GcProtoBufMsgSrc", optional, tag = "200", default = "Unspecified")]
20    pub gc_msg_src: ::core::option::Option<i32>,
21    #[prost(int32, optional, tag = "201", default = "-1")]
22    pub gc_dir_index_source: ::core::option::Option<i32>,
23}
24#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
25pub struct CGcSystemMsgGetAccountDetails {
26    #[prost(fixed64, optional, tag = "1")]
27    pub steamid: ::core::option::Option<u64>,
28    #[prost(uint32, optional, tag = "2")]
29    pub appid: ::core::option::Option<u32>,
30}
31#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
32pub struct CGcSystemMsgGetAccountDetailsResponse {
33    #[prost(uint32, optional, tag = "1", default = "2")]
34    pub eresult_deprecated: ::core::option::Option<u32>,
35    #[prost(string, optional, tag = "2")]
36    pub account_name: ::core::option::Option<::prost::alloc::string::String>,
37    #[prost(string, optional, tag = "3")]
38    pub persona_name: ::core::option::Option<::prost::alloc::string::String>,
39    #[prost(bool, optional, tag = "26")]
40    pub is_profile_created: ::core::option::Option<bool>,
41    #[prost(bool, optional, tag = "4")]
42    pub is_profile_public: ::core::option::Option<bool>,
43    #[prost(bool, optional, tag = "5")]
44    pub is_inventory_public: ::core::option::Option<bool>,
45    #[prost(bool, optional, tag = "7")]
46    pub is_vac_banned: ::core::option::Option<bool>,
47    #[prost(bool, optional, tag = "8")]
48    pub is_cyber_cafe: ::core::option::Option<bool>,
49    #[prost(bool, optional, tag = "9")]
50    pub is_school_account: ::core::option::Option<bool>,
51    #[prost(bool, optional, tag = "10")]
52    pub is_limited: ::core::option::Option<bool>,
53    #[prost(bool, optional, tag = "11")]
54    pub is_subscribed: ::core::option::Option<bool>,
55    #[prost(uint32, optional, tag = "12")]
56    pub package: ::core::option::Option<u32>,
57    #[prost(bool, optional, tag = "13")]
58    pub is_free_trial_account: ::core::option::Option<bool>,
59    #[prost(uint32, optional, tag = "14")]
60    pub free_trial_expiration: ::core::option::Option<u32>,
61    #[prost(bool, optional, tag = "15")]
62    pub is_low_violence: ::core::option::Option<bool>,
63    #[prost(bool, optional, tag = "16")]
64    pub is_account_locked_down: ::core::option::Option<bool>,
65    #[prost(bool, optional, tag = "17")]
66    pub is_community_banned: ::core::option::Option<bool>,
67    #[prost(bool, optional, tag = "18")]
68    pub is_trade_banned: ::core::option::Option<bool>,
69    #[prost(uint32, optional, tag = "19")]
70    pub trade_ban_expiration: ::core::option::Option<u32>,
71    #[prost(uint32, optional, tag = "20")]
72    pub accountid: ::core::option::Option<u32>,
73    #[prost(uint32, optional, tag = "21")]
74    pub suspension_end_time: ::core::option::Option<u32>,
75    #[prost(string, optional, tag = "22")]
76    pub currency: ::core::option::Option<::prost::alloc::string::String>,
77    #[prost(uint32, optional, tag = "23")]
78    pub steam_level: ::core::option::Option<u32>,
79    #[prost(uint32, optional, tag = "24")]
80    pub friend_count: ::core::option::Option<u32>,
81    #[prost(uint32, optional, tag = "25")]
82    pub account_creation_time: ::core::option::Option<u32>,
83    #[prost(bool, optional, tag = "27")]
84    pub is_steamguard_enabled: ::core::option::Option<bool>,
85    #[prost(bool, optional, tag = "28")]
86    pub is_phone_verified: ::core::option::Option<bool>,
87    #[prost(bool, optional, tag = "29")]
88    pub is_two_factor_auth_enabled: ::core::option::Option<bool>,
89    #[prost(uint32, optional, tag = "30")]
90    pub two_factor_enabled_time: ::core::option::Option<u32>,
91    #[prost(uint32, optional, tag = "31")]
92    pub phone_verification_time: ::core::option::Option<u32>,
93    #[prost(uint64, optional, tag = "33")]
94    pub phone_id: ::core::option::Option<u64>,
95    #[prost(bool, optional, tag = "34")]
96    pub is_phone_identifying: ::core::option::Option<bool>,
97    #[prost(uint32, optional, tag = "35")]
98    pub rt_identity_linked: ::core::option::Option<u32>,
99    #[prost(uint32, optional, tag = "36")]
100    pub rt_birth_date: ::core::option::Option<u32>,
101    #[prost(string, optional, tag = "37")]
102    pub txn_country_code: ::core::option::Option<::prost::alloc::string::String>,
103    #[prost(bool, optional, tag = "38")]
104    pub has_accepted_china_ssa: ::core::option::Option<bool>,
105    #[prost(bool, optional, tag = "39")]
106    pub is_banned_steam_china: ::core::option::Option<bool>,
107}
108#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
109pub struct CIpLocationInfo {
110    #[prost(uint32, optional, tag = "1")]
111    pub ip: ::core::option::Option<u32>,
112    #[prost(float, optional, tag = "2")]
113    pub latitude: ::core::option::Option<f32>,
114    #[prost(float, optional, tag = "3")]
115    pub longitude: ::core::option::Option<f32>,
116    #[prost(string, optional, tag = "4")]
117    pub country: ::core::option::Option<::prost::alloc::string::String>,
118    #[prost(string, optional, tag = "5")]
119    pub state: ::core::option::Option<::prost::alloc::string::String>,
120    #[prost(string, optional, tag = "6")]
121    pub city: ::core::option::Option<::prost::alloc::string::String>,
122}
123#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
124pub struct CGcMsgGetIpLocationResponse {
125    #[prost(message, repeated, tag = "1")]
126    pub infos: ::prost::alloc::vec::Vec<CIpLocationInfo>,
127}
128#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
129#[repr(i32)]
130pub enum EgcPlatform {
131    KEGcPlatformNone = 0,
132    KEGcPlatformPc = 1,
133    KEGcPlatformMac = 2,
134    KEGcPlatformLinux = 3,
135}
136#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
137#[repr(i32)]
138pub enum GcProtoBufMsgSrc {
139    Unspecified = 0,
140    FromSystem = 1,
141    FromSteamId = 2,
142    FromGc = 3,
143    ReplySystem = 4,
144    SpoofedSteamId = 5,
145}
146#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
147#[repr(i32)]
148pub enum EProtoDebugVisiblity {
149    KEProtoDebugVisibilityAlways = 0,
150    KEProtoDebugVisibilityServer = 70,
151    KEProtoDebugVisibilityValveServer = 80,
152    KEProtoDebugVisibilityGc = 90,
153    KEProtoDebugVisibilityNever = 100,
154}
155#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
156#[repr(i32)]
157pub enum EProtoExecutionSite {
158    KEProtoExecutionSiteUnknown = 0,
159    KEProtoExecutionSiteSteamClient = 3,
160}
161#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
162pub struct CMsgSteamLearnDataSourceDescObject {
163    #[prost(message, repeated, tag = "1")]
164    pub elements: ::prost::alloc::vec::Vec<CMsgSteamLearnDataSourceDescElement>,
165}
166#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
167pub struct CMsgSteamLearnDataSourceDescElement {
168    #[prost(string, optional, tag = "1")]
169    pub name: ::core::option::Option<::prost::alloc::string::String>,
170    #[prost(enumeration = "ESteamLearnDataType", optional, tag = "2", default = "SteamlearnDatatypeInvalid")]
171    pub data_type: ::core::option::Option<i32>,
172    #[prost(message, optional, tag = "3")]
173    pub object: ::core::option::Option<CMsgSteamLearnDataSourceDescObject>,
174    #[prost(uint32, optional, tag = "4")]
175    pub count: ::core::option::Option<u32>,
176}
177#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
178pub struct CMsgSteamLearnDataSource {
179    #[prost(uint32, optional, tag = "1")]
180    pub id: ::core::option::Option<u32>,
181    #[prost(string, optional, tag = "2")]
182    pub name: ::core::option::Option<::prost::alloc::string::String>,
183    #[prost(uint32, optional, tag = "3")]
184    pub version: ::core::option::Option<u32>,
185    #[prost(string, optional, tag = "4")]
186    pub source_description: ::core::option::Option<::prost::alloc::string::String>,
187    #[prost(message, optional, tag = "5")]
188    pub structure: ::core::option::Option<CMsgSteamLearnDataSourceDescObject>,
189    #[prost(uint32, optional, tag = "6")]
190    pub structure_crc: ::core::option::Option<u32>,
191    #[prost(uint32, optional, tag = "7")]
192    pub cache_duration_seconds: ::core::option::Option<u32>,
193}
194#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
195pub struct CMsgSteamLearnDataObject {
196    #[prost(message, repeated, tag = "1")]
197    pub elements: ::prost::alloc::vec::Vec<CMsgSteamLearnDataElement>,
198}
199#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
200pub struct CMsgSteamLearnDataElement {
201    #[prost(string, optional, tag = "1")]
202    pub name: ::core::option::Option<::prost::alloc::string::String>,
203    #[prost(int32, repeated, packed = "false", tag = "20")]
204    pub data_int32s: ::prost::alloc::vec::Vec<i32>,
205    #[prost(float, repeated, packed = "false", tag = "21")]
206    pub data_floats: ::prost::alloc::vec::Vec<f32>,
207    #[prost(bool, repeated, packed = "false", tag = "22")]
208    pub data_bools: ::prost::alloc::vec::Vec<bool>,
209    #[prost(string, repeated, tag = "23")]
210    pub data_strings: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
211    #[prost(message, repeated, tag = "24")]
212    pub data_objects: ::prost::alloc::vec::Vec<CMsgSteamLearnDataObject>,
213}
214#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
215pub struct CMsgSteamLearnData {
216    #[prost(uint32, optional, tag = "1")]
217    pub data_source_id: ::core::option::Option<u32>,
218    #[prost(uint64, repeated, packed = "false", tag = "2")]
219    pub keys: ::prost::alloc::vec::Vec<u64>,
220    #[prost(message, optional, tag = "3")]
221    pub data_object: ::core::option::Option<CMsgSteamLearnDataObject>,
222}
223#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
224pub struct CMsgSteamLearnDataList {
225    #[prost(message, repeated, tag = "1")]
226    pub data: ::prost::alloc::vec::Vec<CMsgSteamLearnData>,
227}
228#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
229pub struct CMsgSteamLearnRegisterDataSourceRequest {
230    #[prost(string, optional, tag = "1")]
231    pub access_token: ::core::option::Option<::prost::alloc::string::String>,
232    #[prost(message, optional, tag = "3")]
233    pub data_source: ::core::option::Option<CMsgSteamLearnDataSource>,
234}
235#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
236pub struct CMsgSteamLearnRegisterDataSourceResponse {
237    #[prost(
238        enumeration = "ESteammLearnRegisterDataSourceResult",
239        optional,
240        tag = "1",
241        default = "SteamlearnRegisterDataSourceResultError"
242    )]
243    pub result: ::core::option::Option<i32>,
244    #[prost(message, optional, tag = "2")]
245    pub data_source: ::core::option::Option<CMsgSteamLearnDataSource>,
246}
247#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
248pub struct CMsgSteamLearnCacheDataRequest {
249    #[prost(string, optional, tag = "1")]
250    pub access_token: ::core::option::Option<::prost::alloc::string::String>,
251    #[prost(message, optional, tag = "3")]
252    pub data: ::core::option::Option<CMsgSteamLearnData>,
253}
254#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
255pub struct CMsgSteamLearnCacheDataResponse {
256    #[prost(enumeration = "ESteamLearnCacheDataResult", optional, tag = "1", default = "SteamlearnCacheDataError")]
257    pub cache_data_result: ::core::option::Option<i32>,
258}
259#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
260pub struct CMsgSteamLearnSnapshotProjectRequest {
261    #[prost(string, optional, tag = "1")]
262    pub access_token: ::core::option::Option<::prost::alloc::string::String>,
263    #[prost(uint32, optional, tag = "3")]
264    pub project_id: ::core::option::Option<u32>,
265    #[prost(uint32, optional, tag = "7")]
266    pub published_version: ::core::option::Option<u32>,
267    #[prost(uint64, repeated, packed = "false", tag = "4")]
268    pub keys: ::prost::alloc::vec::Vec<u64>,
269    #[prost(message, repeated, tag = "5")]
270    pub data: ::prost::alloc::vec::Vec<CMsgSteamLearnData>,
271    #[prost(uint32, optional, tag = "6")]
272    pub pending_data_limit_seconds: ::core::option::Option<u32>,
273}
274#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
275pub struct CMsgSteamLearnSnapshotProjectResponse {
276    #[prost(
277        enumeration = "ESteamLearnSnapshotProjectResult",
278        optional,
279        tag = "1",
280        default = "SteamlearnSnapshotProjectError"
281    )]
282    pub snapshot_result: ::core::option::Option<i32>,
283}
284#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
285pub struct CMsgSteamLearnBatchOperationRequest {
286    #[prost(message, repeated, tag = "1")]
287    pub cache_data_requests: ::prost::alloc::vec::Vec<CMsgSteamLearnCacheDataRequest>,
288    #[prost(message, repeated, tag = "2")]
289    pub snapshot_requests: ::prost::alloc::vec::Vec<CMsgSteamLearnSnapshotProjectRequest>,
290    #[prost(message, repeated, tag = "3")]
291    pub inference_requests: ::prost::alloc::vec::Vec<CMsgSteamLearnInferenceRequest>,
292}
293#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
294pub struct CMsgSteamLearnBatchOperationResponse {
295    #[prost(message, repeated, tag = "1")]
296    pub cache_data_responses: ::prost::alloc::vec::Vec<CMsgSteamLearnCacheDataResponse>,
297    #[prost(message, repeated, tag = "2")]
298    pub snapshot_responses: ::prost::alloc::vec::Vec<CMsgSteamLearnSnapshotProjectResponse>,
299    #[prost(message, repeated, tag = "3")]
300    pub inference_responses: ::prost::alloc::vec::Vec<CMsgSteamLearnInferenceResponse>,
301}
302#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
303pub struct CMsgSteamLearnAccessTokens {
304    #[prost(string, optional, tag = "1")]
305    pub register_data_source_access_token: ::core::option::Option<::prost::alloc::string::String>,
306    #[prost(message, repeated, tag = "2")]
307    pub cache_data_access_tokens: ::prost::alloc::vec::Vec<c_msg_steam_learn_access_tokens::CacheDataAccessToken>,
308    #[prost(message, repeated, tag = "3")]
309    pub snapshot_project_access_tokens: ::prost::alloc::vec::Vec<c_msg_steam_learn_access_tokens::SnapshotProjectAccessToken>,
310    #[prost(message, repeated, tag = "4")]
311    pub inference_access_tokens: ::prost::alloc::vec::Vec<c_msg_steam_learn_access_tokens::InferenceAccessToken>,
312}
313pub mod c_msg_steam_learn_access_tokens {
314    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
315    pub struct CacheDataAccessToken {
316        #[prost(uint32, optional, tag = "1")]
317        pub data_source_id: ::core::option::Option<u32>,
318        #[prost(string, optional, tag = "2")]
319        pub access_token: ::core::option::Option<::prost::alloc::string::String>,
320    }
321    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
322    pub struct SnapshotProjectAccessToken {
323        #[prost(uint32, optional, tag = "1")]
324        pub project_id: ::core::option::Option<u32>,
325        #[prost(string, optional, tag = "2")]
326        pub access_token: ::core::option::Option<::prost::alloc::string::String>,
327    }
328    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
329    pub struct InferenceAccessToken {
330        #[prost(uint32, optional, tag = "1")]
331        pub project_id: ::core::option::Option<u32>,
332        #[prost(string, optional, tag = "2")]
333        pub access_token: ::core::option::Option<::prost::alloc::string::String>,
334    }
335}
336#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
337pub struct CMsgSteamLearnGetAccessTokensRequest {
338    #[prost(uint32, optional, tag = "1")]
339    pub appid: ::core::option::Option<u32>,
340}
341#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
342pub struct CMsgSteamLearnGetAccessTokensResponse {
343    #[prost(
344        enumeration = "ESteamLearnGetAccessTokensResult",
345        optional,
346        tag = "1",
347        default = "SteamlearnGetAccessTokensError"
348    )]
349    pub result: ::core::option::Option<i32>,
350    #[prost(message, optional, tag = "2")]
351    pub access_tokens: ::core::option::Option<CMsgSteamLearnAccessTokens>,
352}
353#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
354pub struct CMsgInferenceIterateBeamSearch {
355    #[prost(uint32, optional, tag = "1")]
356    pub beam_length: ::core::option::Option<u32>,
357    #[prost(uint32, optional, tag = "2")]
358    pub beam_width: ::core::option::Option<u32>,
359    #[prost(float, optional, tag = "3")]
360    pub item_decay: ::core::option::Option<f32>,
361    #[prost(uint32, optional, tag = "4")]
362    pub next_item_count: ::core::option::Option<u32>,
363    #[prost(message, repeated, tag = "5")]
364    pub item_scalars: ::prost::alloc::vec::Vec<c_msg_inference_iterate_beam_search::CustomItemScalar>,
365    #[prost(uint32, optional, tag = "7")]
366    pub item_sequence_end: ::core::option::Option<u32>,
367    #[prost(float, optional, tag = "8")]
368    pub item_sequence_end_threshold: ::core::option::Option<f32>,
369    #[prost(float, optional, tag = "9")]
370    pub repeat_multiplier: ::core::option::Option<f32>,
371}
372pub mod c_msg_inference_iterate_beam_search {
373    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
374    pub struct CustomItemScalar {
375        #[prost(uint32, optional, tag = "1")]
376        pub item: ::core::option::Option<u32>,
377        #[prost(float, optional, tag = "2")]
378        pub scale: ::core::option::Option<f32>,
379    }
380}
381#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
382pub struct CMsgSteamLearnInferenceRequest {
383    #[prost(string, optional, tag = "1")]
384    pub access_token: ::core::option::Option<::prost::alloc::string::String>,
385    #[prost(uint32, optional, tag = "3")]
386    pub project_id: ::core::option::Option<u32>,
387    #[prost(uint32, optional, tag = "4")]
388    pub published_version: ::core::option::Option<u32>,
389    #[prost(uint32, optional, tag = "5")]
390    pub override_train_id: ::core::option::Option<u32>,
391    #[prost(message, optional, tag = "6")]
392    pub data: ::core::option::Option<CMsgSteamLearnDataList>,
393    #[prost(float, repeated, packed = "false", tag = "7")]
394    pub additional_data: ::prost::alloc::vec::Vec<f32>,
395    #[prost(uint64, repeated, packed = "false", tag = "8")]
396    pub keys: ::prost::alloc::vec::Vec<u64>,
397    #[prost(string, optional, tag = "9")]
398    pub named_inference: ::core::option::Option<::prost::alloc::string::String>,
399    #[prost(message, optional, tag = "13")]
400    pub iterate_beam_search: ::core::option::Option<CMsgInferenceIterateBeamSearch>,
401    #[prost(uint32, optional, tag = "14")]
402    pub debug_spew: ::core::option::Option<u32>,
403}
404#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
405pub struct CMsgSteamLearnInferenceMetadataRequest {
406    #[prost(string, optional, tag = "1")]
407    pub access_token: ::core::option::Option<::prost::alloc::string::String>,
408    #[prost(uint32, optional, tag = "3")]
409    pub project_id: ::core::option::Option<u32>,
410    #[prost(uint32, optional, tag = "4")]
411    pub published_version: ::core::option::Option<u32>,
412    #[prost(uint32, optional, tag = "5")]
413    pub override_train_id: ::core::option::Option<u32>,
414}
415#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
416pub struct CMsgSteamLearnInferenceMetadataBackendRequest {
417    #[prost(uint32, optional, tag = "1")]
418    pub project_id: ::core::option::Option<u32>,
419    #[prost(uint32, optional, tag = "2")]
420    pub fetch_id: ::core::option::Option<u32>,
421}
422#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
423pub struct CMsgSteamLearnInferenceMetadataResponse {
424    #[prost(
425        enumeration = "ESteamLearnInferenceMetadataResult",
426        optional,
427        tag = "1",
428        default = "SteamlearnInferenceMetadataError"
429    )]
430    pub inference_metadata_result: ::core::option::Option<i32>,
431    #[prost(message, optional, tag = "2")]
432    pub row_range: ::core::option::Option<c_msg_steam_learn_inference_metadata_response::RowRange>,
433    #[prost(message, repeated, tag = "3")]
434    pub ranges: ::prost::alloc::vec::Vec<c_msg_steam_learn_inference_metadata_response::Range>,
435    #[prost(message, repeated, tag = "4")]
436    pub std_devs: ::prost::alloc::vec::Vec<c_msg_steam_learn_inference_metadata_response::StdDev>,
437    #[prost(message, repeated, tag = "5")]
438    pub compact_tables: ::prost::alloc::vec::Vec<c_msg_steam_learn_inference_metadata_response::CompactTable>,
439    #[prost(message, repeated, tag = "9")]
440    pub sequence_tables: ::prost::alloc::vec::Vec<c_msg_steam_learn_inference_metadata_response::SequenceTable>,
441    #[prost(message, repeated, tag = "6")]
442    pub kmeans: ::prost::alloc::vec::Vec<c_msg_steam_learn_inference_metadata_response::KMeans>,
443    #[prost(message, repeated, tag = "8")]
444    pub app_info: ::prost::alloc::vec::Vec<c_msg_steam_learn_inference_metadata_response::AppInfoEntry>,
445    #[prost(message, optional, tag = "7")]
446    pub snapshot_histogram: ::core::option::Option<c_msg_steam_learn_inference_metadata_response::SnapshotHistogram>,
447}
448pub mod c_msg_steam_learn_inference_metadata_response {
449    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
450    pub struct RowRange {
451        #[prost(uint64, optional, tag = "1")]
452        pub min_row: ::core::option::Option<u64>,
453        #[prost(uint64, optional, tag = "2")]
454        pub max_row: ::core::option::Option<u64>,
455    }
456    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
457    pub struct Range {
458        #[prost(string, optional, tag = "1")]
459        pub data_element_path: ::core::option::Option<::prost::alloc::string::String>,
460        #[prost(float, optional, tag = "2")]
461        pub min_value: ::core::option::Option<f32>,
462        #[prost(float, optional, tag = "3")]
463        pub max_value: ::core::option::Option<f32>,
464    }
465    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
466    pub struct StdDev {
467        #[prost(string, optional, tag = "1")]
468        pub data_element_path: ::core::option::Option<::prost::alloc::string::String>,
469        #[prost(float, optional, tag = "2")]
470        pub mean: ::core::option::Option<f32>,
471        #[prost(float, optional, tag = "3")]
472        pub std_dev: ::core::option::Option<f32>,
473    }
474    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
475    pub struct CompactTable {
476        #[prost(string, optional, tag = "1")]
477        pub name: ::core::option::Option<::prost::alloc::string::String>,
478        #[prost(message, repeated, tag = "2")]
479        pub map_values: ::prost::alloc::vec::Vec<compact_table::MapValuesEntry>,
480        #[prost(message, repeated, tag = "3")]
481        pub map_mappings: ::prost::alloc::vec::Vec<compact_table::MapMappingsEntry>,
482    }
483    pub mod compact_table {
484        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
485        pub struct Entry {
486            #[prost(uint32, optional, tag = "1")]
487            pub value: ::core::option::Option<u32>,
488            #[prost(uint32, optional, tag = "2")]
489            pub mapping: ::core::option::Option<u32>,
490            #[prost(uint64, optional, tag = "3")]
491            pub count: ::core::option::Option<u64>,
492        }
493        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
494        pub struct MapValuesEntry {
495            #[prost(uint32, optional, tag = "1")]
496            pub key: ::core::option::Option<u32>,
497            #[prost(message, optional, tag = "2")]
498            pub value: ::core::option::Option<Entry>,
499        }
500        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
501        pub struct MapMappingsEntry {
502            #[prost(uint32, optional, tag = "1")]
503            pub key: ::core::option::Option<u32>,
504            #[prost(message, optional, tag = "2")]
505            pub value: ::core::option::Option<Entry>,
506        }
507    }
508    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
509    pub struct SequenceTable {
510        #[prost(string, optional, tag = "1")]
511        pub name: ::core::option::Option<::prost::alloc::string::String>,
512        #[prost(message, repeated, tag = "2")]
513        pub map_values: ::prost::alloc::vec::Vec<sequence_table::MapValuesEntry>,
514        #[prost(message, repeated, tag = "3")]
515        pub map_mappings: ::prost::alloc::vec::Vec<sequence_table::MapMappingsEntry>,
516        #[prost(uint64, optional, tag = "4")]
517        pub total_count: ::core::option::Option<u64>,
518    }
519    pub mod sequence_table {
520        #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
521        pub struct Entry {
522            #[prost(uint32, repeated, packed = "false", tag = "1")]
523            pub values: ::prost::alloc::vec::Vec<u32>,
524            #[prost(uint32, optional, tag = "2")]
525            pub crc: ::core::option::Option<u32>,
526            #[prost(uint32, optional, tag = "3")]
527            pub count: ::core::option::Option<u32>,
528        }
529        #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
530        pub struct MapValuesEntry {
531            #[prost(uint32, optional, tag = "1")]
532            pub key: ::core::option::Option<u32>,
533            #[prost(message, optional, tag = "2")]
534            pub value: ::core::option::Option<Entry>,
535        }
536        #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
537        pub struct MapMappingsEntry {
538            #[prost(string, optional, tag = "1")]
539            pub key: ::core::option::Option<::prost::alloc::string::String>,
540            #[prost(message, optional, tag = "2")]
541            pub value: ::core::option::Option<Entry>,
542        }
543    }
544    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
545    pub struct KMeans {
546        #[prost(string, optional, tag = "1")]
547        pub name: ::core::option::Option<::prost::alloc::string::String>,
548        #[prost(message, repeated, tag = "2")]
549        pub clusters: ::prost::alloc::vec::Vec<k_means::Cluster>,
550    }
551    pub mod k_means {
552        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
553        pub struct Cluster {
554            #[prost(float, optional, tag = "1")]
555            pub x: ::core::option::Option<f32>,
556            #[prost(float, optional, tag = "2")]
557            pub y: ::core::option::Option<f32>,
558            #[prost(float, optional, tag = "3")]
559            pub radius: ::core::option::Option<f32>,
560            #[prost(float, optional, tag = "4")]
561            pub radius_75pct: ::core::option::Option<f32>,
562            #[prost(float, optional, tag = "5")]
563            pub radius_50pct: ::core::option::Option<f32>,
564            #[prost(float, optional, tag = "6")]
565            pub radius_25pct: ::core::option::Option<f32>,
566        }
567    }
568    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
569    pub struct SnapshotHistogram {
570        #[prost(float, optional, tag = "1")]
571        pub min_value: ::core::option::Option<f32>,
572        #[prost(float, optional, tag = "2")]
573        pub max_value: ::core::option::Option<f32>,
574        #[prost(uint32, optional, tag = "3")]
575        pub num_buckets: ::core::option::Option<u32>,
576        #[prost(uint32, repeated, packed = "false", tag = "4")]
577        pub bucket_counts: ::prost::alloc::vec::Vec<u32>,
578    }
579    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
580    pub struct AppInfo {
581        #[prost(string, optional, tag = "1")]
582        pub country_allow: ::core::option::Option<::prost::alloc::string::String>,
583        #[prost(string, optional, tag = "2")]
584        pub country_deny: ::core::option::Option<::prost::alloc::string::String>,
585        #[prost(bool, optional, tag = "3")]
586        pub platform_win: ::core::option::Option<bool>,
587        #[prost(bool, optional, tag = "4")]
588        pub platform_mac: ::core::option::Option<bool>,
589        #[prost(bool, optional, tag = "5")]
590        pub platform_linux: ::core::option::Option<bool>,
591        #[prost(bool, optional, tag = "6")]
592        pub adult_violence: ::core::option::Option<bool>,
593        #[prost(bool, optional, tag = "7")]
594        pub adult_sex: ::core::option::Option<bool>,
595    }
596    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
597    pub struct AppInfoEntry {
598        #[prost(uint32, optional, tag = "1")]
599        pub key: ::core::option::Option<u32>,
600        #[prost(message, optional, tag = "2")]
601        pub value: ::core::option::Option<AppInfo>,
602    }
603}
604#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
605pub struct CMsgSteamLearnInferenceBackendResponse {
606    #[prost(message, repeated, tag = "1")]
607    pub outputs: ::prost::alloc::vec::Vec<c_msg_steam_learn_inference_backend_response::Output>,
608}
609pub mod c_msg_steam_learn_inference_backend_response {
610    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
611    pub struct Sequence {
612        #[prost(float, repeated, packed = "false", tag = "1")]
613        pub value: ::prost::alloc::vec::Vec<f32>,
614    }
615    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
616    pub struct RegressionOutput {
617        #[prost(float, optional, tag = "2")]
618        pub value: ::core::option::Option<f32>,
619    }
620    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
621    pub struct NamedInferenceOutput {
622        #[prost(float, repeated, packed = "false", tag = "3")]
623        pub value: ::prost::alloc::vec::Vec<f32>,
624    }
625    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
626    pub struct BinaryCrossEntropyOutput {
627        #[prost(float, optional, tag = "1")]
628        pub value: ::core::option::Option<f32>,
629    }
630    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
631    pub struct MutliBinaryCrossEntropyOutput {
632        #[prost(float, repeated, packed = "false", tag = "1")]
633        pub weight: ::prost::alloc::vec::Vec<f32>,
634        #[prost(float, repeated, packed = "false", tag = "2")]
635        pub value: ::prost::alloc::vec::Vec<f32>,
636        #[prost(message, repeated, tag = "3")]
637        pub value_sequence: ::prost::alloc::vec::Vec<Sequence>,
638    }
639    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
640    pub struct CategoricalCrossEntropyOutput {
641        #[prost(float, repeated, packed = "false", tag = "1")]
642        pub weight: ::prost::alloc::vec::Vec<f32>,
643        #[prost(float, repeated, packed = "false", tag = "2")]
644        pub value: ::prost::alloc::vec::Vec<f32>,
645        #[prost(message, repeated, tag = "3")]
646        pub value_sequence: ::prost::alloc::vec::Vec<Sequence>,
647    }
648    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
649    pub struct Output {
650        #[prost(oneof = "output::ResponseType", tags = "1, 2, 3, 4, 5")]
651        pub response_type: ::core::option::Option<output::ResponseType>,
652    }
653    pub mod output {
654        #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Oneof)]
655        pub enum ResponseType {
656            #[prost(message, tag = "1")]
657            BinaryCrossentropy(super::BinaryCrossEntropyOutput),
658            #[prost(message, tag = "2")]
659            CategoricalCrossentropy(super::CategoricalCrossEntropyOutput),
660            #[prost(message, tag = "3")]
661            MultiBinaryCrossentropy(super::MutliBinaryCrossEntropyOutput),
662            #[prost(message, tag = "4")]
663            Regression(super::RegressionOutput),
664            #[prost(message, tag = "5")]
665            NamedInference(super::NamedInferenceOutput),
666        }
667    }
668}
669#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
670pub struct CMsgSteamLearnInferenceResponse {
671    #[prost(enumeration = "ESteamLearnInferenceResult", optional, tag = "1", default = "SteamlearnInferenceError")]
672    pub inference_result: ::core::option::Option<i32>,
673    #[prost(message, optional, tag = "2")]
674    pub backend_response: ::core::option::Option<CMsgSteamLearnInferenceBackendResponse>,
675    #[prost(uint64, repeated, packed = "false", tag = "3")]
676    pub keys: ::prost::alloc::vec::Vec<u64>,
677}
678#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
679#[repr(i32)]
680pub enum ESteamLearnDataType {
681    SteamlearnDatatypeInvalid = 0,
682    SteamlearnDatatypeInt32 = 1,
683    SteamlearnDatatypeFloat32 = 2,
684    SteamlearnDatatypeBool = 3,
685    SteamlearnDatatypeString = 4,
686    SteamlearnDatatypeObject = 5,
687}
688#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
689#[repr(i32)]
690pub enum ESteammLearnRegisterDataSourceResult {
691    SteamlearnRegisterDataSourceResultError = 0,
692    SteamlearnRegisterDataSourceResultSuccessCreated = 1,
693    SteamlearnRegisterDataSourceResultSuccessFound = 2,
694    SteamlearnRegisterDataSourceResultErrorGeneric = 3,
695    SteamlearnRegisterDataSourceResultErrorInvalidName = 4,
696    SteamlearnRegisterDataSourceResultErrorInvalidVersion = 5,
697    SteamlearnRegisterDataSourceResultErrorDataChanged = 6,
698    SteamlearnRegisterDataSourceResultErrorDataInvalid = 7,
699    SteamlearnRegisterDataSourceResultErrorForbidden = 8,
700    SteamlearnRegisterDataSourceResultErrorInvalidTimestamp = 9,
701    SteamlearnRegisterDataSourceResultDisabled = 10,
702}
703#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
704#[repr(i32)]
705pub enum ESteamLearnCacheDataResult {
706    SteamlearnCacheDataError = 0,
707    SteamlearnCacheDataSuccess = 1,
708    SteamlearnCacheDataErrorUnknownDataSource = 2,
709    SteamlearnCacheDataErrorUncachedDataSource = 3,
710    SteamlearnCacheDataErrorInvalidKeys = 4,
711    SteamlearnCacheDataErrorForbidden = 5,
712    SteamlearnCacheDataErrorInvalidTimestamp = 6,
713    SteamlearnCacheDataDisabled = 7,
714}
715#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
716#[repr(i32)]
717pub enum ESteamLearnSnapshotProjectResult {
718    SteamlearnSnapshotProjectError = 0,
719    SteamlearnSnapshotProjectSuccessStored = 1,
720    SteamlearnSnapshotProjectSuccessQueued = 2,
721    SteamlearnSnapshotProjectErrorInvalidProjectId = 3,
722    SteamlearnSnapshotProjectErrorUnknownDataSource = 4,
723    SteamlearnSnapshotProjectErrorInvalidDataSourceKey = 5,
724    SteamlearnSnapshotProjectErrorMissingCacheDuration = 6,
725    SteamlearnSnapshotProjectErrorNoPublishedConfig = 7,
726    SteamlearnSnapshotProjectErrorForbidden = 8,
727    SteamlearnSnapshotProjectErrorInvalidTimestamp = 9,
728    SteamlearnSnapshotProjectErrorInternalDataSourceError = 10,
729    SteamlearnSnapshotProjectDisabled = 11,
730    SteamlearnSnapshotProjectErrorInvalidPublishedVersion = 12,
731}
732#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
733#[repr(i32)]
734pub enum ESteamLearnGetAccessTokensResult {
735    SteamlearnGetAccessTokensError = 0,
736    SteamlearnGetAccessTokensSuccess = 1,
737}
738#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
739#[repr(i32)]
740pub enum ESteamLearnInferenceResult {
741    SteamlearnInferenceError = 0,
742    SteamlearnInferenceSuccess = 1,
743    SteamlearnInferenceErrorInvalidProjectId = 2,
744    SteamlearnInferenceErrorMissingCachedSchemaData = 3,
745    SteamlearnInferenceErrorNoPublishedConfig = 4,
746    SteamlearnInferenceErrorForbidden = 5,
747    SteamlearnInferenceErrorInvalidTimestamp = 6,
748    SteamlearnInferenceErrorInvalidPublishedVersion = 7,
749    SteamlearnInferenceErrorNoFetchIdFound = 8,
750    SteamlearnInferenceErrorTooBusy = 9,
751    SteamlearnInferenceErrorUnsuppliedDataFail = 10,
752    SteamlearnInferenceErrorUnsuppliedDataNoKeys = 11,
753    SteamlearnInferenceDisabled = 12,
754    SteamlearnInferenceErrorNoOutput = 13,
755    SteamlearnInferenceErrorInvalidNamedInference = 14,
756}
757#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
758#[repr(i32)]
759pub enum ESteamLearnInferenceMetadataResult {
760    SteamlearnInferenceMetadataError = 0,
761    SteamlearnInferenceMetadataSuccess = 1,
762    SteamlearnInferenceMetadataErrorInvalidProjectId = 2,
763    SteamlearnInferenceMetadataErrorNoPublishedConfig = 3,
764    SteamlearnInferenceMetadataErrorForbidden = 4,
765    SteamlearnInferenceMetadataErrorInvalidTimestamp = 5,
766    SteamlearnInferenceMetadataErrorInvalidPublishedVersion = 6,
767    SteamlearnInferenceMetadataErrorNoFetchIdFound = 7,
768}
769#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
770pub struct CExtraMsgBlock {
771    #[prost(uint32, optional, tag = "1")]
772    pub msg_type: ::core::option::Option<u32>,
773    #[prost(bytes = "vec", optional, tag = "2")]
774    pub contents: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
775    #[prost(uint64, optional, tag = "3")]
776    pub msg_key: ::core::option::Option<u64>,
777    #[prost(bool, optional, tag = "4")]
778    pub is_compressed: ::core::option::Option<bool>,
779}
780#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
781pub struct CMsgSteamLearnServerInfo {
782    #[prost(message, optional, tag = "4")]
783    pub access_tokens: ::core::option::Option<CMsgSteamLearnAccessTokens>,
784    #[prost(message, repeated, tag = "5")]
785    pub project_infos: ::prost::alloc::vec::Vec<c_msg_steam_learn_server_info::ProjectInfo>,
786}
787pub mod c_msg_steam_learn_server_info {
788    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
789    pub struct ProjectInfo {
790        #[prost(uint32, optional, tag = "1")]
791        pub project_id: ::core::option::Option<u32>,
792        #[prost(uint32, optional, tag = "2")]
793        pub snapshot_published_version: ::core::option::Option<u32>,
794        #[prost(uint32, optional, tag = "3")]
795        pub inference_published_version: ::core::option::Option<u32>,
796        #[prost(uint32, optional, tag = "6")]
797        pub snapshot_percentage: ::core::option::Option<u32>,
798        #[prost(bool, optional, tag = "7")]
799        pub snapshot_enabled: ::core::option::Option<bool>,
800    }
801}
802#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
803pub struct CMsgGcAssertJobData {
804    #[prost(string, optional, tag = "1")]
805    pub message_type: ::core::option::Option<::prost::alloc::string::String>,
806    #[prost(bytes = "vec", optional, tag = "2")]
807    pub message_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
808}
809#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
810pub struct CMsgGcConCommand {
811    #[prost(string, optional, tag = "1")]
812    pub command: ::core::option::Option<::prost::alloc::string::String>,
813}
814#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
815pub struct CMsgSdoAssert {
816    #[prost(int32, optional, tag = "1")]
817    pub sdo_type: ::core::option::Option<i32>,
818    #[prost(message, repeated, tag = "2")]
819    pub requests: ::prost::alloc::vec::Vec<c_msg_sdo_assert::Request>,
820}
821pub mod c_msg_sdo_assert {
822    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
823    pub struct Request {
824        #[prost(uint64, repeated, packed = "false", tag = "1")]
825        pub key: ::prost::alloc::vec::Vec<u64>,
826        #[prost(string, optional, tag = "2")]
827        pub requesting_job: ::core::option::Option<::prost::alloc::string::String>,
828    }
829}
830#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
831pub struct CMsgSoidOwner {
832    #[prost(uint32, optional, tag = "1")]
833    pub r#type: ::core::option::Option<u32>,
834    #[prost(uint64, optional, tag = "2")]
835    pub id: ::core::option::Option<u64>,
836}
837#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
838pub struct CMsgSoSingleObject {
839    #[prost(int32, optional, tag = "2")]
840    pub type_id: ::core::option::Option<i32>,
841    #[prost(bytes = "vec", optional, tag = "3")]
842    pub object_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
843    #[prost(fixed64, optional, tag = "4")]
844    pub version: ::core::option::Option<u64>,
845    #[prost(message, optional, tag = "5")]
846    pub owner_soid: ::core::option::Option<CMsgSoidOwner>,
847    #[prost(uint32, optional, tag = "6")]
848    pub service_id: ::core::option::Option<u32>,
849}
850#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
851pub struct CMsgSoMultipleObjects {
852    #[prost(message, repeated, tag = "2")]
853    pub objects_modified: ::prost::alloc::vec::Vec<c_msg_so_multiple_objects::SingleObject>,
854    #[prost(fixed64, optional, tag = "3")]
855    pub version: ::core::option::Option<u64>,
856    #[prost(message, repeated, tag = "4")]
857    pub objects_added: ::prost::alloc::vec::Vec<c_msg_so_multiple_objects::SingleObject>,
858    #[prost(message, repeated, tag = "5")]
859    pub objects_removed: ::prost::alloc::vec::Vec<c_msg_so_multiple_objects::SingleObject>,
860    #[prost(message, optional, tag = "6")]
861    pub owner_soid: ::core::option::Option<CMsgSoidOwner>,
862    #[prost(uint32, optional, tag = "7")]
863    pub service_id: ::core::option::Option<u32>,
864}
865pub mod c_msg_so_multiple_objects {
866    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
867    pub struct SingleObject {
868        #[prost(int32, optional, tag = "1")]
869        pub type_id: ::core::option::Option<i32>,
870        #[prost(bytes = "vec", optional, tag = "2")]
871        pub object_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
872    }
873}
874#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
875pub struct CMsgSoCacheSubscribed {
876    #[prost(message, repeated, tag = "2")]
877    pub objects: ::prost::alloc::vec::Vec<c_msg_so_cache_subscribed::SubscribedType>,
878    #[prost(fixed64, optional, tag = "3")]
879    pub version: ::core::option::Option<u64>,
880    #[prost(message, optional, tag = "4")]
881    pub owner_soid: ::core::option::Option<CMsgSoidOwner>,
882    #[prost(uint32, optional, tag = "5")]
883    pub service_id: ::core::option::Option<u32>,
884    #[prost(uint32, repeated, packed = "false", tag = "6")]
885    pub service_list: ::prost::alloc::vec::Vec<u32>,
886    #[prost(fixed64, optional, tag = "7")]
887    pub sync_version: ::core::option::Option<u64>,
888}
889pub mod c_msg_so_cache_subscribed {
890    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
891    pub struct SubscribedType {
892        #[prost(int32, optional, tag = "1")]
893        pub type_id: ::core::option::Option<i32>,
894        #[prost(bytes = "vec", repeated, tag = "2")]
895        pub object_data: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
896    }
897}
898#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
899pub struct CMsgSoCacheSubscribedUpToDate {
900    #[prost(fixed64, optional, tag = "1")]
901    pub version: ::core::option::Option<u64>,
902    #[prost(message, optional, tag = "2")]
903    pub owner_soid: ::core::option::Option<CMsgSoidOwner>,
904    #[prost(uint32, optional, tag = "3")]
905    pub service_id: ::core::option::Option<u32>,
906    #[prost(uint32, repeated, packed = "false", tag = "4")]
907    pub service_list: ::prost::alloc::vec::Vec<u32>,
908    #[prost(fixed64, optional, tag = "5")]
909    pub sync_version: ::core::option::Option<u64>,
910}
911#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
912pub struct CMsgSoCacheUnsubscribed {
913    #[prost(message, optional, tag = "2")]
914    pub owner_soid: ::core::option::Option<CMsgSoidOwner>,
915}
916#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
917pub struct CMsgSoCacheSubscriptionCheck {
918    #[prost(fixed64, optional, tag = "2")]
919    pub version: ::core::option::Option<u64>,
920    #[prost(message, optional, tag = "3")]
921    pub owner_soid: ::core::option::Option<CMsgSoidOwner>,
922    #[prost(uint32, optional, tag = "4")]
923    pub service_id: ::core::option::Option<u32>,
924    #[prost(uint32, repeated, packed = "false", tag = "5")]
925    pub service_list: ::prost::alloc::vec::Vec<u32>,
926    #[prost(fixed64, optional, tag = "6")]
927    pub sync_version: ::core::option::Option<u64>,
928}
929#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
930pub struct CMsgSoCacheSubscriptionRefresh {
931    #[prost(message, optional, tag = "2")]
932    pub owner_soid: ::core::option::Option<CMsgSoidOwner>,
933}
934#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
935pub struct CMsgSoCacheVersion {
936    #[prost(fixed64, optional, tag = "1")]
937    pub version: ::core::option::Option<u64>,
938}
939#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
940pub struct CMsgGcMultiplexMessage {
941    #[prost(uint32, optional, tag = "1")]
942    pub msgtype: ::core::option::Option<u32>,
943    #[prost(bytes = "vec", optional, tag = "2")]
944    pub payload: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
945    #[prost(fixed64, repeated, packed = "false", tag = "3")]
946    pub steamids: ::prost::alloc::vec::Vec<u64>,
947}
948#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
949pub struct CMsgGcToGcSubGcStarting {
950    #[prost(int32, optional, tag = "1", default = "-1")]
951    pub dir_index: ::core::option::Option<i32>,
952}
953#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
954pub struct CGcToGcMsgMasterAck {
955    #[prost(int32, optional, tag = "1", default = "-1")]
956    pub dir_index: ::core::option::Option<i32>,
957    #[prost(string, optional, tag = "3")]
958    pub machine_name: ::core::option::Option<::prost::alloc::string::String>,
959    #[prost(string, optional, tag = "4")]
960    pub process_name: ::core::option::Option<::prost::alloc::string::String>,
961    #[prost(message, repeated, tag = "6")]
962    pub directory: ::prost::alloc::vec::Vec<cgc_to_gc_msg_master_ack::Process>,
963}
964pub mod cgc_to_gc_msg_master_ack {
965    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
966    pub struct Process {
967        #[prost(int32, optional, tag = "1", default = "-1")]
968        pub dir_index: ::core::option::Option<i32>,
969        #[prost(uint32, repeated, packed = "false", tag = "2")]
970        pub type_instances: ::prost::alloc::vec::Vec<u32>,
971    }
972}
973#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
974pub struct CGcToGcMsgMasterAckResponse {
975    #[prost(int32, optional, tag = "1", default = "2")]
976    pub eresult: ::core::option::Option<i32>,
977}
978#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
979pub struct CMsgGcToGcUniverseStartup {
980    #[prost(bool, optional, tag = "1")]
981    pub is_initial_startup: ::core::option::Option<bool>,
982}
983#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
984pub struct CMsgGcToGcUniverseStartupResponse {
985    #[prost(int32, optional, tag = "1")]
986    pub eresult: ::core::option::Option<i32>,
987}
988#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
989pub struct CGcToGcMsgMasterStartupComplete {
990    #[prost(message, repeated, tag = "1")]
991    pub gc_info: ::prost::alloc::vec::Vec<cgc_to_gc_msg_master_startup_complete::GcInfo>,
992}
993pub mod cgc_to_gc_msg_master_startup_complete {
994    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
995    pub struct GcInfo {
996        #[prost(int32, optional, tag = "1", default = "-1")]
997        pub dir_index: ::core::option::Option<i32>,
998        #[prost(string, optional, tag = "2")]
999        pub machine_name: ::core::option::Option<::prost::alloc::string::String>,
1000    }
1001}
1002#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1003pub struct CGcToGcMsgRouted {
1004    #[prost(uint32, optional, tag = "1")]
1005    pub msg_type: ::core::option::Option<u32>,
1006    #[prost(fixed64, optional, tag = "2")]
1007    pub sender_id: ::core::option::Option<u64>,
1008    #[prost(bytes = "vec", optional, tag = "3")]
1009    pub net_message: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1010}
1011#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1012pub struct CGcToGcMsgRoutedReply {
1013    #[prost(uint32, optional, tag = "1")]
1014    pub msg_type: ::core::option::Option<u32>,
1015    #[prost(bytes = "vec", optional, tag = "2")]
1016    pub net_message: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1017}
1018#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1019pub struct CMsgGcUpdateSubGcSessionInfo {
1020    #[prost(message, repeated, tag = "1")]
1021    pub updates: ::prost::alloc::vec::Vec<c_msg_gc_update_sub_gc_session_info::CMsgUpdate>,
1022}
1023pub mod c_msg_gc_update_sub_gc_session_info {
1024    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1025    pub struct CMsgUpdate {
1026        #[prost(fixed64, optional, tag = "1")]
1027        pub steamid: ::core::option::Option<u64>,
1028        #[prost(fixed32, optional, tag = "2")]
1029        pub ip: ::core::option::Option<u32>,
1030        #[prost(bool, optional, tag = "3")]
1031        pub trusted: ::core::option::Option<bool>,
1032    }
1033}
1034#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1035pub struct CMsgGcRequestSubGcSessionInfo {
1036    #[prost(fixed64, optional, tag = "1")]
1037    pub steamid: ::core::option::Option<u64>,
1038}
1039#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1040pub struct CMsgGcRequestSubGcSessionInfoResponse {
1041    #[prost(fixed32, optional, tag = "1")]
1042    pub ip: ::core::option::Option<u32>,
1043    #[prost(bool, optional, tag = "2")]
1044    pub trusted: ::core::option::Option<bool>,
1045    #[prost(uint32, optional, tag = "3")]
1046    pub port: ::core::option::Option<u32>,
1047    #[prost(bool, optional, tag = "4")]
1048    pub success: ::core::option::Option<bool>,
1049}
1050#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1051pub struct CMsgSoCacheHaveVersion {
1052    #[prost(message, optional, tag = "1")]
1053    pub soid: ::core::option::Option<CMsgSoidOwner>,
1054    #[prost(fixed64, optional, tag = "2")]
1055    pub version: ::core::option::Option<u64>,
1056    #[prost(uint32, optional, tag = "3")]
1057    pub service_id: ::core::option::Option<u32>,
1058    #[prost(uint32, optional, tag = "4")]
1059    pub cached_file_version: ::core::option::Option<u32>,
1060}
1061#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1062pub struct CMsgClientHello {
1063    #[prost(uint32, optional, tag = "1")]
1064    pub version: ::core::option::Option<u32>,
1065    #[prost(message, repeated, tag = "2")]
1066    pub socache_have_versions: ::prost::alloc::vec::Vec<CMsgSoCacheHaveVersion>,
1067    #[prost(uint32, optional, tag = "3")]
1068    pub client_session_need: ::core::option::Option<u32>,
1069    #[prost(enumeration = "PartnerAccountType", optional, tag = "4", default = "PartnerNone")]
1070    pub client_launcher: ::core::option::Option<i32>,
1071    #[prost(string, optional, tag = "5")]
1072    pub secret_key: ::core::option::Option<::prost::alloc::string::String>,
1073    #[prost(uint32, optional, tag = "6")]
1074    pub client_language: ::core::option::Option<u32>,
1075    #[prost(enumeration = "ESourceEngine", optional, tag = "7", default = "KEseSource1")]
1076    pub engine: ::core::option::Option<i32>,
1077    #[prost(bytes = "vec", optional, tag = "8")]
1078    pub steamdatagram_login: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1079    #[prost(uint32, optional, tag = "9")]
1080    pub platform_id: ::core::option::Option<u32>,
1081    #[prost(bytes = "vec", optional, tag = "10")]
1082    pub game_msg: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1083    #[prost(int32, optional, tag = "11")]
1084    pub os_type: ::core::option::Option<i32>,
1085    #[prost(uint32, optional, tag = "12")]
1086    pub render_system: ::core::option::Option<u32>,
1087    #[prost(uint32, optional, tag = "13")]
1088    pub render_system_req: ::core::option::Option<u32>,
1089    #[prost(uint32, optional, tag = "14")]
1090    pub screen_width: ::core::option::Option<u32>,
1091    #[prost(uint32, optional, tag = "15")]
1092    pub screen_height: ::core::option::Option<u32>,
1093    #[prost(uint32, optional, tag = "16")]
1094    pub screen_refresh: ::core::option::Option<u32>,
1095    #[prost(uint32, optional, tag = "17")]
1096    pub render_width: ::core::option::Option<u32>,
1097    #[prost(uint32, optional, tag = "18")]
1098    pub render_height: ::core::option::Option<u32>,
1099    #[prost(uint32, optional, tag = "19")]
1100    pub swap_width: ::core::option::Option<u32>,
1101    #[prost(uint32, optional, tag = "20")]
1102    pub swap_height: ::core::option::Option<u32>,
1103    #[prost(bool, optional, tag = "22")]
1104    pub is_steam_china: ::core::option::Option<bool>,
1105    #[prost(bool, optional, tag = "24")]
1106    pub is_steam_china_client: ::core::option::Option<bool>,
1107    #[prost(string, optional, tag = "23")]
1108    pub platform_name: ::core::option::Option<::prost::alloc::string::String>,
1109}
1110#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1111pub struct CMsgClientWelcome {
1112    #[prost(uint32, optional, tag = "1")]
1113    pub version: ::core::option::Option<u32>,
1114    #[prost(bytes = "vec", optional, tag = "2")]
1115    pub game_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1116    #[prost(message, repeated, tag = "3")]
1117    pub outofdate_subscribed_caches: ::prost::alloc::vec::Vec<CMsgSoCacheSubscribed>,
1118    #[prost(message, repeated, tag = "4")]
1119    pub uptodate_subscribed_caches: ::prost::alloc::vec::Vec<CMsgSoCacheSubscriptionCheck>,
1120    #[prost(message, optional, tag = "5")]
1121    pub location: ::core::option::Option<c_msg_client_welcome::Location>,
1122    #[prost(uint32, optional, tag = "9")]
1123    pub gc_socache_file_version: ::core::option::Option<u32>,
1124    #[prost(string, optional, tag = "10")]
1125    pub txn_country_code: ::core::option::Option<::prost::alloc::string::String>,
1126    #[prost(bytes = "vec", optional, tag = "11")]
1127    pub game_data2: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1128    #[prost(uint32, optional, tag = "12")]
1129    pub rtime32_gc_welcome_timestamp: ::core::option::Option<u32>,
1130    #[prost(uint32, optional, tag = "13")]
1131    pub currency: ::core::option::Option<u32>,
1132    #[prost(uint32, optional, tag = "14")]
1133    pub balance: ::core::option::Option<u32>,
1134    #[prost(string, optional, tag = "15")]
1135    pub balance_url: ::core::option::Option<::prost::alloc::string::String>,
1136    #[prost(bool, optional, tag = "16")]
1137    pub has_accepted_china_ssa: ::core::option::Option<bool>,
1138    #[prost(bool, optional, tag = "17")]
1139    pub is_banned_steam_china: ::core::option::Option<bool>,
1140    #[prost(message, optional, tag = "18")]
1141    pub additional_welcome_msgs: ::core::option::Option<CExtraMsgBlock>,
1142    #[prost(message, optional, tag = "20")]
1143    pub steam_learn_server_info: ::core::option::Option<CMsgSteamLearnServerInfo>,
1144}
1145pub mod c_msg_client_welcome {
1146    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1147    pub struct Location {
1148        #[prost(float, optional, tag = "1")]
1149        pub latitude: ::core::option::Option<f32>,
1150        #[prost(float, optional, tag = "2")]
1151        pub longitude: ::core::option::Option<f32>,
1152        #[prost(string, optional, tag = "3")]
1153        pub country: ::core::option::Option<::prost::alloc::string::String>,
1154    }
1155}
1156#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1157pub struct CMsgConnectionStatus {
1158    #[prost(enumeration = "GcConnectionStatus", optional, tag = "1", default = "HaveSession")]
1159    pub status: ::core::option::Option<i32>,
1160    #[prost(uint32, optional, tag = "2")]
1161    pub client_session_need: ::core::option::Option<u32>,
1162    #[prost(int32, optional, tag = "3")]
1163    pub queue_position: ::core::option::Option<i32>,
1164    #[prost(int32, optional, tag = "4")]
1165    pub queue_size: ::core::option::Option<i32>,
1166    #[prost(int32, optional, tag = "5")]
1167    pub wait_seconds: ::core::option::Option<i32>,
1168    #[prost(int32, optional, tag = "6")]
1169    pub estimated_wait_seconds_remaining: ::core::option::Option<i32>,
1170}
1171#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1172pub struct CMsgGcToGcsoCacheSubscribe {
1173    #[prost(fixed64, optional, tag = "1")]
1174    pub subscriber: ::core::option::Option<u64>,
1175    #[prost(fixed64, optional, tag = "2")]
1176    pub subscribe_to_id: ::core::option::Option<u64>,
1177    #[prost(fixed64, optional, tag = "3")]
1178    pub sync_version: ::core::option::Option<u64>,
1179    #[prost(message, repeated, tag = "4")]
1180    pub have_versions: ::prost::alloc::vec::Vec<c_msg_gc_to_gcso_cache_subscribe::CMsgHaveVersions>,
1181    #[prost(uint32, optional, tag = "5")]
1182    pub subscribe_to_type: ::core::option::Option<u32>,
1183}
1184pub mod c_msg_gc_to_gcso_cache_subscribe {
1185    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1186    pub struct CMsgHaveVersions {
1187        #[prost(uint32, optional, tag = "1")]
1188        pub service_id: ::core::option::Option<u32>,
1189        #[prost(uint64, optional, tag = "2")]
1190        pub version: ::core::option::Option<u64>,
1191    }
1192}
1193#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1194pub struct CMsgGcToGcsoCacheUnsubscribe {
1195    #[prost(fixed64, optional, tag = "1")]
1196    pub subscriber: ::core::option::Option<u64>,
1197    #[prost(fixed64, optional, tag = "2")]
1198    pub unsubscribe_from_id: ::core::option::Option<u64>,
1199    #[prost(uint32, optional, tag = "3")]
1200    pub unsubscribe_from_type: ::core::option::Option<u32>,
1201}
1202#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1203pub struct CMsgGcClientPing {}
1204#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1205pub struct CMsgGcToGcForwardAccountDetails {
1206    #[prost(fixed64, optional, tag = "1")]
1207    pub steamid: ::core::option::Option<u64>,
1208    #[prost(message, optional, tag = "2")]
1209    pub account_details: ::core::option::Option<CGcSystemMsgGetAccountDetailsResponse>,
1210    #[prost(uint32, optional, tag = "3")]
1211    pub age_seconds: ::core::option::Option<u32>,
1212}
1213#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1214pub struct CMsgGcToGcLoadSessionSoCache {
1215    #[prost(uint32, optional, tag = "1")]
1216    pub account_id: ::core::option::Option<u32>,
1217    #[prost(message, optional, tag = "2")]
1218    pub forward_account_details: ::core::option::Option<CMsgGcToGcForwardAccountDetails>,
1219}
1220#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1221pub struct CMsgGcToGcLoadSessionSoCacheResponse {}
1222#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1223pub struct CMsgGcToGcUpdateSessionStats {
1224    #[prost(uint32, optional, tag = "1")]
1225    pub user_sessions: ::core::option::Option<u32>,
1226    #[prost(uint32, optional, tag = "2")]
1227    pub server_sessions: ::core::option::Option<u32>,
1228    #[prost(bool, optional, tag = "3")]
1229    pub in_logon_surge: ::core::option::Option<bool>,
1230}
1231#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1232pub struct CMsgGcToClientRequestDropped {}
1233#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1234pub struct CWorkshopPopulateItemDescriptionsRequest {
1235    #[prost(uint32, optional, tag = "1")]
1236    pub appid: ::core::option::Option<u32>,
1237    #[prost(message, repeated, tag = "2")]
1238    pub languages: ::prost::alloc::vec::Vec<c_workshop_populate_item_descriptions_request::ItemDescriptionsLanguageBlock>,
1239}
1240pub mod c_workshop_populate_item_descriptions_request {
1241    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1242    pub struct SingleItemDescription {
1243        #[prost(uint32, optional, tag = "1")]
1244        pub gameitemid: ::core::option::Option<u32>,
1245        #[prost(string, optional, tag = "2")]
1246        pub item_description: ::core::option::Option<::prost::alloc::string::String>,
1247    }
1248    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1249    pub struct ItemDescriptionsLanguageBlock {
1250        #[prost(string, optional, tag = "1")]
1251        pub language: ::core::option::Option<::prost::alloc::string::String>,
1252        #[prost(message, repeated, tag = "2")]
1253        pub descriptions: ::prost::alloc::vec::Vec<SingleItemDescription>,
1254    }
1255}
1256#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1257pub struct CWorkshopGetContributorsRequest {
1258    #[prost(uint32, optional, tag = "1")]
1259    pub appid: ::core::option::Option<u32>,
1260    #[prost(uint32, optional, tag = "2")]
1261    pub gameitemid: ::core::option::Option<u32>,
1262}
1263#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1264pub struct CWorkshopGetContributorsResponse {
1265    #[prost(fixed64, repeated, packed = "false", tag = "1")]
1266    pub contributors: ::prost::alloc::vec::Vec<u64>,
1267}
1268#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1269pub struct CWorkshopSetItemPaymentRulesRequest {
1270    #[prost(uint32, optional, tag = "1")]
1271    pub appid: ::core::option::Option<u32>,
1272    #[prost(uint32, optional, tag = "2")]
1273    pub gameitemid: ::core::option::Option<u32>,
1274    #[prost(message, repeated, tag = "3")]
1275    pub associated_workshop_files: ::prost::alloc::vec::Vec<c_workshop_set_item_payment_rules_request::WorkshopItemPaymentRule>,
1276    #[prost(message, repeated, tag = "4")]
1277    pub partner_accounts: ::prost::alloc::vec::Vec<c_workshop_set_item_payment_rules_request::PartnerItemPaymentRule>,
1278    #[prost(bool, optional, tag = "5")]
1279    pub validate_only: ::core::option::Option<bool>,
1280    #[prost(bool, optional, tag = "6")]
1281    pub make_workshop_files_subscribable: ::core::option::Option<bool>,
1282    #[prost(message, optional, tag = "7")]
1283    pub associated_workshop_file_for_direct_payments: ::core::option::Option<c_workshop_set_item_payment_rules_request::WorkshopDirectPaymentRule>,
1284}
1285pub mod c_workshop_set_item_payment_rules_request {
1286    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1287    pub struct WorkshopItemPaymentRule {
1288        #[prost(uint64, optional, tag = "1")]
1289        pub workshop_file_id: ::core::option::Option<u64>,
1290        #[prost(float, optional, tag = "2")]
1291        pub revenue_percentage: ::core::option::Option<f32>,
1292        #[prost(string, optional, tag = "3")]
1293        pub rule_description: ::core::option::Option<::prost::alloc::string::String>,
1294        #[prost(uint32, optional, tag = "4", default = "1")]
1295        pub rule_type: ::core::option::Option<u32>,
1296    }
1297    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1298    pub struct WorkshopDirectPaymentRule {
1299        #[prost(uint64, optional, tag = "1")]
1300        pub workshop_file_id: ::core::option::Option<u64>,
1301        #[prost(string, optional, tag = "2")]
1302        pub rule_description: ::core::option::Option<::prost::alloc::string::String>,
1303    }
1304    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1305    pub struct PartnerItemPaymentRule {
1306        #[prost(uint32, optional, tag = "1")]
1307        pub account_id: ::core::option::Option<u32>,
1308        #[prost(float, optional, tag = "2")]
1309        pub revenue_percentage: ::core::option::Option<f32>,
1310        #[prost(string, optional, tag = "3")]
1311        pub rule_description: ::core::option::Option<::prost::alloc::string::String>,
1312    }
1313}
1314#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1315pub struct CWorkshopSetItemPaymentRulesResponse {
1316    #[prost(string, repeated, tag = "1")]
1317    pub validation_errors: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1318}
1319#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1320pub struct CCommunityClanAnnouncementInfo {
1321    #[prost(uint64, optional, tag = "1")]
1322    pub gid: ::core::option::Option<u64>,
1323    #[prost(uint64, optional, tag = "2")]
1324    pub clanid: ::core::option::Option<u64>,
1325    #[prost(uint64, optional, tag = "3")]
1326    pub posterid: ::core::option::Option<u64>,
1327    #[prost(string, optional, tag = "4")]
1328    pub headline: ::core::option::Option<::prost::alloc::string::String>,
1329    #[prost(uint32, optional, tag = "5")]
1330    pub posttime: ::core::option::Option<u32>,
1331    #[prost(uint32, optional, tag = "6")]
1332    pub updatetime: ::core::option::Option<u32>,
1333    #[prost(string, optional, tag = "7")]
1334    pub body: ::core::option::Option<::prost::alloc::string::String>,
1335    #[prost(int32, optional, tag = "8")]
1336    pub commentcount: ::core::option::Option<i32>,
1337    #[prost(string, repeated, tag = "9")]
1338    pub tags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1339    #[prost(int32, optional, tag = "10")]
1340    pub language: ::core::option::Option<i32>,
1341    #[prost(bool, optional, tag = "11")]
1342    pub hidden: ::core::option::Option<bool>,
1343    #[prost(fixed64, optional, tag = "12")]
1344    pub forum_topic_id: ::core::option::Option<u64>,
1345}
1346#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1347pub struct CCommunityGetClanAnnouncementsRequest {
1348    #[prost(uint64, optional, tag = "1")]
1349    pub steamid: ::core::option::Option<u64>,
1350    #[prost(uint32, optional, tag = "2")]
1351    pub offset: ::core::option::Option<u32>,
1352    #[prost(uint32, optional, tag = "3")]
1353    pub count: ::core::option::Option<u32>,
1354    #[prost(uint32, optional, tag = "4")]
1355    pub maxchars: ::core::option::Option<u32>,
1356    #[prost(bool, optional, tag = "5")]
1357    pub strip_html: ::core::option::Option<bool>,
1358    #[prost(string, repeated, tag = "6")]
1359    pub required_tags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1360    #[prost(bool, optional, tag = "7")]
1361    pub require_no_tags: ::core::option::Option<bool>,
1362    #[prost(uint32, repeated, packed = "false", tag = "8")]
1363    pub language_preference: ::prost::alloc::vec::Vec<u32>,
1364    #[prost(bool, optional, tag = "9")]
1365    pub hidden_only: ::core::option::Option<bool>,
1366    #[prost(bool, optional, tag = "10")]
1367    pub only_gid: ::core::option::Option<bool>,
1368    #[prost(uint32, optional, tag = "11")]
1369    pub rtime_oldest_date: ::core::option::Option<u32>,
1370    #[prost(bool, optional, tag = "12")]
1371    pub include_hidden: ::core::option::Option<bool>,
1372    #[prost(bool, optional, tag = "13")]
1373    pub include_partner_events: ::core::option::Option<bool>,
1374}
1375#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1376pub struct CCommunityGetClanAnnouncementsResponse {
1377    #[prost(uint32, optional, tag = "1")]
1378    pub maxchars: ::core::option::Option<u32>,
1379    #[prost(bool, optional, tag = "2")]
1380    pub strip_html: ::core::option::Option<bool>,
1381    #[prost(message, repeated, tag = "3")]
1382    pub announcements: ::prost::alloc::vec::Vec<CCommunityClanAnnouncementInfo>,
1383}
1384#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1385pub struct CBroadcastPostGameDataFrameRequest {
1386    #[prost(uint32, optional, tag = "1")]
1387    pub appid: ::core::option::Option<u32>,
1388    #[prost(fixed64, optional, tag = "2")]
1389    pub steamid: ::core::option::Option<u64>,
1390    #[prost(fixed64, optional, tag = "3")]
1391    pub broadcast_id: ::core::option::Option<u64>,
1392    #[prost(bytes = "vec", optional, tag = "4")]
1393    pub frame_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1394}
1395#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1396pub struct CMsgSerializedSoCache {
1397    #[prost(uint32, optional, tag = "1")]
1398    pub file_version: ::core::option::Option<u32>,
1399    #[prost(message, repeated, tag = "2")]
1400    pub caches: ::prost::alloc::vec::Vec<c_msg_serialized_so_cache::Cache>,
1401    #[prost(uint32, optional, tag = "3")]
1402    pub gc_socache_file_version: ::core::option::Option<u32>,
1403}
1404pub mod c_msg_serialized_so_cache {
1405    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1406    pub struct TypeCache {
1407        #[prost(uint32, optional, tag = "1")]
1408        pub r#type: ::core::option::Option<u32>,
1409        #[prost(bytes = "vec", repeated, tag = "2")]
1410        pub objects: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
1411        #[prost(uint32, optional, tag = "3")]
1412        pub service_id: ::core::option::Option<u32>,
1413    }
1414    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1415    pub struct Cache {
1416        #[prost(uint32, optional, tag = "1")]
1417        pub r#type: ::core::option::Option<u32>,
1418        #[prost(uint64, optional, tag = "2")]
1419        pub id: ::core::option::Option<u64>,
1420        #[prost(message, repeated, tag = "3")]
1421        pub versions: ::prost::alloc::vec::Vec<cache::Version>,
1422        #[prost(message, repeated, tag = "4")]
1423        pub type_caches: ::prost::alloc::vec::Vec<TypeCache>,
1424    }
1425    pub mod cache {
1426        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1427        pub struct Version {
1428            #[prost(uint32, optional, tag = "1")]
1429            pub service: ::core::option::Option<u32>,
1430            #[prost(uint64, optional, tag = "2")]
1431            pub version: ::core::option::Option<u64>,
1432        }
1433    }
1434}
1435#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1436pub struct CMsgGcToClientPollConvarRequest {
1437    #[prost(string, optional, tag = "1")]
1438    pub convar_name: ::core::option::Option<::prost::alloc::string::String>,
1439    #[prost(uint32, optional, tag = "2")]
1440    pub poll_id: ::core::option::Option<u32>,
1441}
1442#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1443pub struct CMsgGcToClientPollConvarResponse {
1444    #[prost(uint32, optional, tag = "1")]
1445    pub poll_id: ::core::option::Option<u32>,
1446    #[prost(string, optional, tag = "2")]
1447    pub convar_value: ::core::option::Option<::prost::alloc::string::String>,
1448}
1449#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1450pub struct CGcMsgCompressedMsgToClient {
1451    #[prost(uint32, optional, tag = "1")]
1452    pub msg_id: ::core::option::Option<u32>,
1453    #[prost(bytes = "vec", optional, tag = "2")]
1454    pub compressed_msg: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1455}
1456#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1457pub struct CMsgGcToGcMasterBroadcastMessage {
1458    #[prost(uint32, optional, tag = "1")]
1459    pub users_per_second: ::core::option::Option<u32>,
1460    #[prost(bool, optional, tag = "2")]
1461    pub send_to_users: ::core::option::Option<bool>,
1462    #[prost(bool, optional, tag = "3")]
1463    pub send_to_servers: ::core::option::Option<bool>,
1464    #[prost(uint32, optional, tag = "4")]
1465    pub msg_id: ::core::option::Option<u32>,
1466    #[prost(bytes = "vec", optional, tag = "5")]
1467    pub msg_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1468    #[prost(bool, optional, tag = "6")]
1469    pub trusted_servers_only: ::core::option::Option<bool>,
1470}
1471#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1472pub struct CMsgGcToGcMasterSubscribeToCache {
1473    #[prost(uint32, optional, tag = "1")]
1474    pub soid_type: ::core::option::Option<u32>,
1475    #[prost(fixed64, optional, tag = "2")]
1476    pub soid_id: ::core::option::Option<u64>,
1477    #[prost(uint32, repeated, packed = "false", tag = "3")]
1478    pub account_ids: ::prost::alloc::vec::Vec<u32>,
1479    #[prost(fixed64, repeated, packed = "false", tag = "4")]
1480    pub steam_ids: ::prost::alloc::vec::Vec<u64>,
1481}
1482#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1483pub struct CMsgGcToGcMasterSubscribeToCacheResponse {}
1484#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1485pub struct CMsgGcToGcMasterSubscribeToCacheAsync {
1486    #[prost(message, optional, tag = "1")]
1487    pub subscribe_msg: ::core::option::Option<CMsgGcToGcMasterSubscribeToCache>,
1488}
1489#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1490pub struct CMsgGcToGcMasterUnsubscribeFromCache {
1491    #[prost(uint32, optional, tag = "1")]
1492    pub soid_type: ::core::option::Option<u32>,
1493    #[prost(fixed64, optional, tag = "2")]
1494    pub soid_id: ::core::option::Option<u64>,
1495    #[prost(uint32, repeated, packed = "false", tag = "3")]
1496    pub account_ids: ::prost::alloc::vec::Vec<u32>,
1497    #[prost(fixed64, repeated, packed = "false", tag = "4")]
1498    pub steam_ids: ::prost::alloc::vec::Vec<u64>,
1499}
1500#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1501pub struct CMsgGcToGcMasterDestroyCache {
1502    #[prost(uint32, optional, tag = "1")]
1503    pub soid_type: ::core::option::Option<u32>,
1504    #[prost(fixed64, optional, tag = "2")]
1505    pub soid_id: ::core::option::Option<u64>,
1506}
1507#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1508#[repr(i32)]
1509pub enum ESourceEngine {
1510    KEseSource1 = 0,
1511    KEseSource2 = 1,
1512}
1513#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1514#[repr(i32)]
1515pub enum PartnerAccountType {
1516    PartnerNone = 0,
1517    PartnerPerfectWorld = 1,
1518    PartnerInvalid = 3,
1519}
1520#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1521#[repr(i32)]
1522pub enum GcConnectionStatus {
1523    HaveSession = 0,
1524    GcGoingDown = 1,
1525    NoSession = 2,
1526    NoSessionInLogonQueue = 3,
1527    NoSteam = 4,
1528    Suspended = 5,
1529    SteamGoingDown = 6,
1530}
1531#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1532pub struct CGcStorePurchaseInitLineItem {
1533    #[prost(uint32, optional, tag = "1")]
1534    pub item_def_id: ::core::option::Option<u32>,
1535    #[prost(uint32, optional, tag = "2")]
1536    pub quantity: ::core::option::Option<u32>,
1537    #[prost(uint32, optional, tag = "3")]
1538    pub cost_in_local_currency: ::core::option::Option<u32>,
1539    #[prost(uint32, optional, tag = "4")]
1540    pub purchase_type: ::core::option::Option<u32>,
1541    #[prost(uint64, optional, tag = "5")]
1542    pub source_reference_id: ::core::option::Option<u64>,
1543    #[prost(int32, optional, tag = "6")]
1544    pub price_index: ::core::option::Option<i32>,
1545}
1546#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1547pub struct CMsgGcStorePurchaseInit {
1548    #[prost(string, optional, tag = "1")]
1549    pub country: ::core::option::Option<::prost::alloc::string::String>,
1550    #[prost(int32, optional, tag = "2")]
1551    pub language: ::core::option::Option<i32>,
1552    #[prost(int32, optional, tag = "3")]
1553    pub currency: ::core::option::Option<i32>,
1554    #[prost(message, repeated, tag = "4")]
1555    pub line_items: ::prost::alloc::vec::Vec<CGcStorePurchaseInitLineItem>,
1556}
1557#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1558pub struct CMsgGcStorePurchaseInitResponse {
1559    #[prost(int32, optional, tag = "1")]
1560    pub result: ::core::option::Option<i32>,
1561    #[prost(uint64, optional, tag = "2")]
1562    pub txn_id: ::core::option::Option<u64>,
1563}
1564#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1565pub struct CMsgClientPingData {
1566    #[prost(fixed32, repeated, tag = "4")]
1567    pub relay_codes: ::prost::alloc::vec::Vec<u32>,
1568    #[prost(uint32, repeated, tag = "5")]
1569    pub relay_pings: ::prost::alloc::vec::Vec<u32>,
1570    #[prost(uint32, repeated, tag = "8")]
1571    pub region_codes: ::prost::alloc::vec::Vec<u32>,
1572    #[prost(uint32, repeated, tag = "9")]
1573    pub region_pings: ::prost::alloc::vec::Vec<u32>,
1574    #[prost(uint32, optional, tag = "10")]
1575    pub region_ping_failed_bitmask: ::core::option::Option<u32>,
1576}
1577#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1578pub struct CMsgInviteToParty {
1579    #[prost(fixed64, optional, tag = "1")]
1580    pub steam_id: ::core::option::Option<u64>,
1581    #[prost(uint32, optional, tag = "2")]
1582    pub client_version: ::core::option::Option<u32>,
1583    #[prost(uint32, optional, tag = "3")]
1584    pub team_id: ::core::option::Option<u32>,
1585    #[prost(bool, optional, tag = "4")]
1586    pub as_coach: ::core::option::Option<bool>,
1587    #[prost(message, optional, tag = "5")]
1588    pub ping_data: ::core::option::Option<CMsgClientPingData>,
1589}
1590#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1591pub struct CMsgInviteToLobby {
1592    #[prost(fixed64, optional, tag = "1")]
1593    pub steam_id: ::core::option::Option<u64>,
1594    #[prost(uint32, optional, tag = "2")]
1595    pub client_version: ::core::option::Option<u32>,
1596}
1597#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1598pub struct CMsgInvitationCreated {
1599    #[prost(uint64, optional, tag = "1")]
1600    pub group_id: ::core::option::Option<u64>,
1601    #[prost(fixed64, optional, tag = "2")]
1602    pub steam_id: ::core::option::Option<u64>,
1603    #[prost(bool, optional, tag = "3")]
1604    pub user_offline: ::core::option::Option<bool>,
1605}
1606#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1607pub struct CMsgPartyInviteResponse {
1608    #[prost(uint64, optional, tag = "1")]
1609    pub party_id: ::core::option::Option<u64>,
1610    #[prost(bool, optional, tag = "2")]
1611    pub accept: ::core::option::Option<bool>,
1612    #[prost(uint32, optional, tag = "3")]
1613    pub client_version: ::core::option::Option<u32>,
1614    #[prost(message, optional, tag = "8")]
1615    pub ping_data: ::core::option::Option<CMsgClientPingData>,
1616}
1617#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1618pub struct CMsgLobbyInviteResponse {
1619    #[prost(fixed64, optional, tag = "1")]
1620    pub lobby_id: ::core::option::Option<u64>,
1621    #[prost(bool, optional, tag = "2")]
1622    pub accept: ::core::option::Option<bool>,
1623    #[prost(uint32, optional, tag = "3")]
1624    pub client_version: ::core::option::Option<u32>,
1625    #[prost(fixed64, optional, tag = "6")]
1626    pub custom_game_crc: ::core::option::Option<u64>,
1627    #[prost(fixed32, optional, tag = "7")]
1628    pub custom_game_timestamp: ::core::option::Option<u32>,
1629}
1630#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1631pub struct CMsgKickFromParty {
1632    #[prost(fixed64, optional, tag = "1")]
1633    pub steam_id: ::core::option::Option<u64>,
1634}
1635#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1636pub struct CMsgLeaveParty {}
1637#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1638pub struct CMsgCustomGameInstallStatus {
1639    #[prost(
1640        enumeration = "ECustomGameInstallStatus",
1641        optional,
1642        tag = "1",
1643        default = "KECustomGameInstallStatusUnknown"
1644    )]
1645    pub status: ::core::option::Option<i32>,
1646    #[prost(string, optional, tag = "2")]
1647    pub message: ::core::option::Option<::prost::alloc::string::String>,
1648    #[prost(fixed32, optional, tag = "3")]
1649    pub latest_timestamp_from_steam: ::core::option::Option<u32>,
1650}
1651#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1652pub struct CMsgServerAvailable {
1653    #[prost(message, optional, tag = "1")]
1654    pub custom_game_install_status: ::core::option::Option<CMsgCustomGameInstallStatus>,
1655}
1656#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1657pub struct CMsgLanServerAvailable {
1658    #[prost(fixed64, optional, tag = "1")]
1659    pub lobby_id: ::core::option::Option<u64>,
1660}
1661#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1662pub struct CSoEconGameAccountClient {
1663    #[prost(uint32, optional, tag = "1", default = "0")]
1664    pub additional_backpack_slots: ::core::option::Option<u32>,
1665    #[prost(bool, optional, tag = "2", default = "false")]
1666    pub trial_account: ::core::option::Option<bool>,
1667    #[prost(bool, optional, tag = "3", default = "true")]
1668    pub eligible_for_online_play: ::core::option::Option<bool>,
1669    #[prost(bool, optional, tag = "4")]
1670    pub need_to_choose_most_helpful_friend: ::core::option::Option<bool>,
1671    #[prost(bool, optional, tag = "5")]
1672    pub in_coaches_list: ::core::option::Option<bool>,
1673    #[prost(fixed32, optional, tag = "6")]
1674    pub trade_ban_expiration: ::core::option::Option<u32>,
1675    #[prost(fixed32, optional, tag = "7")]
1676    pub duel_ban_expiration: ::core::option::Option<u32>,
1677    #[prost(bool, optional, tag = "9", default = "false")]
1678    pub made_first_purchase: ::core::option::Option<bool>,
1679}
1680#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1681pub struct CMsgApplyStrangePart {
1682    #[prost(uint64, optional, tag = "1")]
1683    pub strange_part_item_id: ::core::option::Option<u64>,
1684    #[prost(uint64, optional, tag = "2")]
1685    pub item_item_id: ::core::option::Option<u64>,
1686}
1687#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1688pub struct CMsgApplyPennantUpgrade {
1689    #[prost(uint64, optional, tag = "1")]
1690    pub upgrade_item_id: ::core::option::Option<u64>,
1691    #[prost(uint64, optional, tag = "2")]
1692    pub pennant_item_id: ::core::option::Option<u64>,
1693}
1694#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1695pub struct CMsgApplyEggEssence {
1696    #[prost(uint64, optional, tag = "1")]
1697    pub essence_item_id: ::core::option::Option<u64>,
1698    #[prost(uint64, optional, tag = "2")]
1699    pub egg_item_id: ::core::option::Option<u64>,
1700}
1701#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1702pub struct CSoEconItemAttribute {
1703    #[prost(uint32, optional, tag = "1", default = "65535")]
1704    pub def_index: ::core::option::Option<u32>,
1705    #[prost(uint32, optional, tag = "2")]
1706    pub value: ::core::option::Option<u32>,
1707    #[prost(bytes = "vec", optional, tag = "3")]
1708    pub value_bytes: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1709}
1710#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1711pub struct CSoEconItemEquipped {
1712    #[prost(uint32, optional, tag = "1")]
1713    pub new_class: ::core::option::Option<u32>,
1714    #[prost(uint32, optional, tag = "2")]
1715    pub new_slot: ::core::option::Option<u32>,
1716}
1717#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1718pub struct CSoEconItem {
1719    #[prost(uint64, optional, tag = "1")]
1720    pub id: ::core::option::Option<u64>,
1721    #[prost(uint32, optional, tag = "2")]
1722    pub account_id: ::core::option::Option<u32>,
1723    #[prost(uint32, optional, tag = "3")]
1724    pub inventory: ::core::option::Option<u32>,
1725    #[prost(uint32, optional, tag = "4")]
1726    pub def_index: ::core::option::Option<u32>,
1727    #[prost(uint32, optional, tag = "5", default = "1")]
1728    pub quantity: ::core::option::Option<u32>,
1729    #[prost(uint32, optional, tag = "6", default = "1")]
1730    pub level: ::core::option::Option<u32>,
1731    #[prost(uint32, optional, tag = "7", default = "4")]
1732    pub quality: ::core::option::Option<u32>,
1733    #[prost(uint32, optional, tag = "8", default = "0")]
1734    pub flags: ::core::option::Option<u32>,
1735    #[prost(uint32, optional, tag = "9", default = "0")]
1736    pub origin: ::core::option::Option<u32>,
1737    #[prost(message, repeated, tag = "12")]
1738    pub attribute: ::prost::alloc::vec::Vec<CSoEconItemAttribute>,
1739    #[prost(message, optional, boxed, tag = "13")]
1740    pub interior_item: ::core::option::Option<::prost::alloc::boxed::Box<CSoEconItem>>,
1741    #[prost(uint32, optional, tag = "15", default = "0")]
1742    pub style: ::core::option::Option<u32>,
1743    #[prost(uint64, optional, tag = "16")]
1744    pub original_id: ::core::option::Option<u64>,
1745    #[prost(message, repeated, tag = "18")]
1746    pub equipped_state: ::prost::alloc::vec::Vec<CSoEconItemEquipped>,
1747}
1748#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1749pub struct CMsgSortItems {
1750    #[prost(uint32, optional, tag = "1")]
1751    pub sort_type: ::core::option::Option<u32>,
1752}
1753#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1754pub struct CMsgItemAcknowledged {
1755    #[prost(uint32, optional, tag = "1")]
1756    pub account_id: ::core::option::Option<u32>,
1757    #[prost(uint32, optional, tag = "2")]
1758    pub inventory: ::core::option::Option<u32>,
1759    #[prost(uint32, optional, tag = "3")]
1760    pub def_index: ::core::option::Option<u32>,
1761    #[prost(uint32, optional, tag = "4")]
1762    pub quality: ::core::option::Option<u32>,
1763    #[prost(uint32, optional, tag = "5")]
1764    pub rarity: ::core::option::Option<u32>,
1765    #[prost(uint32, optional, tag = "6")]
1766    pub origin: ::core::option::Option<u32>,
1767}
1768#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1769pub struct CMsgSetItemPositions {
1770    #[prost(message, repeated, tag = "1")]
1771    pub item_positions: ::prost::alloc::vec::Vec<c_msg_set_item_positions::ItemPosition>,
1772}
1773pub mod c_msg_set_item_positions {
1774    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1775    pub struct ItemPosition {
1776        #[prost(uint64, optional, tag = "1")]
1777        pub item_id: ::core::option::Option<u64>,
1778        #[prost(uint32, optional, tag = "2")]
1779        pub position: ::core::option::Option<u32>,
1780    }
1781}
1782#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1783pub struct CMsgGcStorePurchaseCancel {
1784    #[prost(uint64, optional, tag = "1")]
1785    pub txn_id: ::core::option::Option<u64>,
1786}
1787#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1788pub struct CMsgGcStorePurchaseCancelResponse {
1789    #[prost(uint32, optional, tag = "1")]
1790    pub result: ::core::option::Option<u32>,
1791}
1792#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1793pub struct CMsgGcStorePurchaseFinalize {
1794    #[prost(uint64, optional, tag = "1")]
1795    pub txn_id: ::core::option::Option<u64>,
1796}
1797#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1798pub struct CMsgGcStorePurchaseFinalizeResponse {
1799    #[prost(uint32, optional, tag = "1")]
1800    pub result: ::core::option::Option<u32>,
1801    #[prost(uint64, repeated, packed = "false", tag = "2")]
1802    pub item_ids: ::prost::alloc::vec::Vec<u64>,
1803}
1804#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1805pub struct CMsgGcToGcBannedWordListUpdated {
1806    #[prost(uint32, optional, tag = "1")]
1807    pub group_id: ::core::option::Option<u32>,
1808}
1809#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1810pub struct CMsgGcToGcDirtySdoCache {
1811    #[prost(uint32, optional, tag = "1")]
1812    pub sdo_type: ::core::option::Option<u32>,
1813    #[prost(uint64, optional, tag = "2")]
1814    pub key_uint64: ::core::option::Option<u64>,
1815}
1816#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1817pub struct CMsgSdoNoMemcached {}
1818#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1819pub struct CMsgGcToGcUpdateSqlKeyValue {
1820    #[prost(string, optional, tag = "1")]
1821    pub key_name: ::core::option::Option<::prost::alloc::string::String>,
1822}
1823#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1824pub struct CMsgGcServerVersionUpdated {
1825    #[prost(uint32, optional, tag = "1")]
1826    pub server_version: ::core::option::Option<u32>,
1827}
1828#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1829pub struct CMsgGcClientVersionUpdated {
1830    #[prost(uint32, optional, tag = "1")]
1831    pub client_version: ::core::option::Option<u32>,
1832}
1833#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1834pub struct CMsgGcToGcWebApiAccountChanged {}
1835#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1836pub struct CMsgExtractGems {
1837    #[prost(uint64, optional, tag = "1")]
1838    pub tool_item_id: ::core::option::Option<u64>,
1839    #[prost(uint64, optional, tag = "2")]
1840    pub item_item_id: ::core::option::Option<u64>,
1841    #[prost(uint32, optional, tag = "3", default = "65535")]
1842    pub item_socket_id: ::core::option::Option<u32>,
1843}
1844#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1845pub struct CMsgExtractGemsResponse {
1846    #[prost(uint64, optional, tag = "1")]
1847    pub item_id: ::core::option::Option<u64>,
1848    #[prost(
1849        enumeration = "c_msg_extract_gems_response::EExtractGems",
1850        optional,
1851        tag = "2",
1852        default = "KExtractGemsSucceeded"
1853    )]
1854    pub response: ::core::option::Option<i32>,
1855}
1856pub mod c_msg_extract_gems_response {
1857    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1858    #[repr(i32)]
1859    pub enum EExtractGems {
1860        KExtractGemsSucceeded = 0,
1861        KExtractGemsFailedToolIsInvalid = 1,
1862        KExtractGemsFailedItemIsInvalid = 2,
1863        KExtractGemsFailedToolCannotRemoveGem = 3,
1864        KExtractGemsFailedFailedToRemoveGem = 4,
1865    }
1866}
1867#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1868pub struct CMsgAddSocket {
1869    #[prost(uint64, optional, tag = "1")]
1870    pub tool_item_id: ::core::option::Option<u64>,
1871    #[prost(uint64, optional, tag = "2")]
1872    pub item_item_id: ::core::option::Option<u64>,
1873    #[prost(bool, optional, tag = "3")]
1874    pub unusual: ::core::option::Option<bool>,
1875}
1876#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1877pub struct CMsgAddSocketResponse {
1878    #[prost(uint64, optional, tag = "1")]
1879    pub item_id: ::core::option::Option<u64>,
1880    #[prost(uint32, repeated, packed = "false", tag = "2")]
1881    pub updated_socket_index: ::prost::alloc::vec::Vec<u32>,
1882    #[prost(
1883        enumeration = "c_msg_add_socket_response::EAddSocket",
1884        optional,
1885        tag = "3",
1886        default = "KAddSocketSucceeded"
1887    )]
1888    pub response: ::core::option::Option<i32>,
1889}
1890pub mod c_msg_add_socket_response {
1891    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1892    #[repr(i32)]
1893    pub enum EAddSocket {
1894        KAddSocketSucceeded = 0,
1895        KAddSocketFailedToolIsInvalid = 1,
1896        KAddSocketFailedItemCannotBeSocketed = 2,
1897        KAddSocketFailedFailedToAddSocket = 3,
1898    }
1899}
1900#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1901pub struct CMsgAddItemToSocketData {
1902    #[prost(uint64, optional, tag = "1")]
1903    pub gem_item_id: ::core::option::Option<u64>,
1904    #[prost(uint32, optional, tag = "2", default = "65535")]
1905    pub socket_index: ::core::option::Option<u32>,
1906}
1907#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
1908pub struct CMsgAddItemToSocket {
1909    #[prost(uint64, optional, tag = "1")]
1910    pub item_item_id: ::core::option::Option<u64>,
1911    #[prost(message, repeated, tag = "2")]
1912    pub gems_to_socket: ::prost::alloc::vec::Vec<CMsgAddItemToSocketData>,
1913}
1914#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1915pub struct CMsgAddItemToSocketResponse {
1916    #[prost(uint64, optional, tag = "1")]
1917    pub item_item_id: ::core::option::Option<u64>,
1918    #[prost(uint32, repeated, packed = "false", tag = "2")]
1919    pub updated_socket_index: ::prost::alloc::vec::Vec<u32>,
1920    #[prost(
1921        enumeration = "c_msg_add_item_to_socket_response::EAddGem",
1922        optional,
1923        tag = "3",
1924        default = "KAddGemSucceeded"
1925    )]
1926    pub response: ::core::option::Option<i32>,
1927}
1928pub mod c_msg_add_item_to_socket_response {
1929    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1930    #[repr(i32)]
1931    pub enum EAddGem {
1932        KAddGemSucceeded = 0,
1933        KAddGemFailedGemIsInvalid = 1,
1934        KAddGemFailedItemIsInvalid = 2,
1935        KAddGemFailedFailedToAddGem = 3,
1936        KAddGemFailedInvalidGemTypeForSocket = 4,
1937        KAddGemFailedInvalidGemTypeForHero = 5,
1938        KAddGemFailedInvalidGemTypeForSlot = 6,
1939        KAddGemFailedSocketContainsUnremovableGem = 7,
1940    }
1941}
1942#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1943pub struct CMsgResetStrangeGemCount {
1944    #[prost(uint64, optional, tag = "1")]
1945    pub item_item_id: ::core::option::Option<u64>,
1946    #[prost(uint32, optional, tag = "2", default = "65535")]
1947    pub socket_index: ::core::option::Option<u32>,
1948}
1949#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1950pub struct CMsgResetStrangeGemCountResponse {
1951    #[prost(
1952        enumeration = "c_msg_reset_strange_gem_count_response::EResetGem",
1953        optional,
1954        tag = "1",
1955        default = "KResetGemSucceeded"
1956    )]
1957    pub response: ::core::option::Option<i32>,
1958}
1959pub mod c_msg_reset_strange_gem_count_response {
1960    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1961    #[repr(i32)]
1962    pub enum EResetGem {
1963        KResetGemSucceeded = 0,
1964        KResetGemFailedFailedToResetGem = 1,
1965        KResetGemFailedItemIsInvalid = 2,
1966        KResetGemFailedInvalidSocketId = 3,
1967        KResetGemFailedSocketCannotBeReset = 4,
1968    }
1969}
1970#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
1971pub struct CMsgGcToClientPollFileRequest {
1972    #[prost(string, optional, tag = "1")]
1973    pub file_name: ::core::option::Option<::prost::alloc::string::String>,
1974    #[prost(uint32, optional, tag = "2")]
1975    pub client_version: ::core::option::Option<u32>,
1976    #[prost(uint32, optional, tag = "3")]
1977    pub poll_id: ::core::option::Option<u32>,
1978}
1979#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1980pub struct CMsgGcToClientPollFileResponse {
1981    #[prost(uint32, optional, tag = "1")]
1982    pub poll_id: ::core::option::Option<u32>,
1983    #[prost(uint32, optional, tag = "2")]
1984    pub file_size: ::core::option::Option<u32>,
1985    #[prost(uint32, optional, tag = "3")]
1986    pub file_crc: ::core::option::Option<u32>,
1987}
1988#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1989pub struct CMsgGcToGcPerformManualOp {
1990    #[prost(uint64, optional, tag = "1")]
1991    pub op_id: ::core::option::Option<u64>,
1992    #[prost(uint32, optional, tag = "2")]
1993    pub group_code: ::core::option::Option<u32>,
1994}
1995#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1996pub struct CMsgGcToGcPerformManualOpCompleted {
1997    #[prost(bool, optional, tag = "1")]
1998    pub success: ::core::option::Option<bool>,
1999    #[prost(int32, optional, tag = "2", default = "-1")]
2000    pub source_gc: ::core::option::Option<i32>,
2001}
2002#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2003pub struct CMsgGcToGcReloadServerRegionSettings {}
2004#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2005pub struct CMsgGcAdditionalWelcomeMsgList {
2006    #[prost(message, repeated, tag = "1")]
2007    pub welcome_messages: ::prost::alloc::vec::Vec<CExtraMsgBlock>,
2008}
2009#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2010pub struct CMsgApplyRemoteConVars {
2011    #[prost(message, repeated, tag = "1")]
2012    pub con_vars: ::prost::alloc::vec::Vec<c_msg_apply_remote_con_vars::ConVar>,
2013}
2014pub mod c_msg_apply_remote_con_vars {
2015    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2016    pub struct ConVar {
2017        #[prost(string, optional, tag = "1")]
2018        pub name: ::core::option::Option<::prost::alloc::string::String>,
2019        #[prost(string, optional, tag = "2")]
2020        pub value: ::core::option::Option<::prost::alloc::string::String>,
2021        #[prost(uint32, optional, tag = "3")]
2022        pub version_min: ::core::option::Option<u32>,
2023        #[prost(uint32, optional, tag = "4")]
2024        pub version_max: ::core::option::Option<u32>,
2025        #[prost(enumeration = "super::EgcPlatform", optional, tag = "5", default = "KEGcPlatformNone")]
2026        pub platform: ::core::option::Option<i32>,
2027    }
2028}
2029#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2030pub struct CMsgGcToClientApplyRemoteConVars {
2031    #[prost(message, optional, tag = "1")]
2032    pub msg: ::core::option::Option<CMsgApplyRemoteConVars>,
2033}
2034#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2035pub struct CMsgGcToServerApplyRemoteConVars {
2036    #[prost(message, optional, tag = "1")]
2037    pub msg: ::core::option::Option<CMsgApplyRemoteConVars>,
2038}
2039#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2040pub struct CMsgClientToGcIntegrityStatus {
2041    #[prost(string, optional, tag = "1")]
2042    pub report: ::core::option::Option<::prost::alloc::string::String>,
2043    #[prost(bool, optional, tag = "2")]
2044    pub secure_allowed: ::core::option::Option<bool>,
2045    #[prost(message, repeated, tag = "3")]
2046    pub diagnostics: ::prost::alloc::vec::Vec<c_msg_client_to_gc_integrity_status::Keyvalue>,
2047}
2048pub mod c_msg_client_to_gc_integrity_status {
2049    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2050    pub struct Keyvalue {
2051        #[prost(uint32, optional, tag = "1")]
2052        pub id: ::core::option::Option<u32>,
2053        #[prost(uint32, optional, tag = "2")]
2054        pub extended: ::core::option::Option<u32>,
2055        #[prost(uint64, optional, tag = "3")]
2056        pub value: ::core::option::Option<u64>,
2057        #[prost(string, optional, tag = "4")]
2058        pub string_value: ::core::option::Option<::prost::alloc::string::String>,
2059    }
2060}
2061#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2062pub struct CMsgClientToGcAggregateMetrics {
2063    #[prost(message, repeated, tag = "1")]
2064    pub metrics: ::prost::alloc::vec::Vec<c_msg_client_to_gc_aggregate_metrics::SingleMetric>,
2065}
2066pub mod c_msg_client_to_gc_aggregate_metrics {
2067    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2068    pub struct SingleMetric {
2069        #[prost(string, optional, tag = "1")]
2070        pub metric_name: ::core::option::Option<::prost::alloc::string::String>,
2071        #[prost(uint32, optional, tag = "2")]
2072        pub metric_count: ::core::option::Option<u32>,
2073    }
2074}
2075#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
2076pub struct CMsgGcToClientAggregateMetricsBackoff {
2077    #[prost(float, optional, tag = "1")]
2078    pub upload_rate_modifier: ::core::option::Option<f32>,
2079}
2080#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2081pub struct CMsgGcToServerSteamLearnAccessTokensChanged {
2082    #[prost(message, optional, tag = "1")]
2083    pub access_tokens: ::core::option::Option<CMsgSteamLearnAccessTokens>,
2084}
2085#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2086pub struct CMsgGcToServerSteamLearnUseHttp {
2087    #[prost(bool, optional, tag = "1")]
2088    pub use_http: ::core::option::Option<bool>,
2089}
2090#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2091#[repr(i32)]
2092pub enum EgcBaseMsg {
2093    KEMsgGcInviteToParty = 4501,
2094    KEMsgGcInvitationCreated = 4502,
2095    KEMsgGcPartyInviteResponse = 4503,
2096    KEMsgGcKickFromParty = 4504,
2097    KEMsgGcLeaveParty = 4505,
2098    KEMsgGcServerAvailable = 4506,
2099    KEMsgGcClientConnectToServer = 4507,
2100    KEMsgGcGameServerInfo = 4508,
2101    KEMsgGclanServerAvailable = 4511,
2102    KEMsgGcInviteToLobby = 4512,
2103    KEMsgGcLobbyInviteResponse = 4513,
2104    KEMsgGcToClientPollFileRequest = 4514,
2105    KEMsgGcToClientPollFileResponse = 4515,
2106    KEMsgGcToGcPerformManualOp = 4516,
2107    KEMsgGcToGcPerformManualOpCompleted = 4517,
2108    KEMsgGcToGcReloadServerRegionSettings = 4518,
2109    KEMsgGcAdditionalWelcomeMsgList = 4519,
2110    KEMsgGcToClientApplyRemoteConVars = 4520,
2111    KEMsgGcToServerApplyRemoteConVars = 4521,
2112    KEMsgClientToGcIntegrityStatus = 4522,
2113    KEMsgClientToGcAggregateMetrics = 4523,
2114    KEMsgGcToClientAggregateMetricsBackoff = 4524,
2115    KEMsgGcToServerSteamLearnAccessTokensChanged = 4525,
2116    KEMsgGcToServerSteamLearnUseHttp = 4526,
2117}
2118#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2119#[repr(i32)]
2120pub enum ECustomGameInstallStatus {
2121    KECustomGameInstallStatusUnknown = 0,
2122    KECustomGameInstallStatusReady = 1,
2123    KECustomGameInstallStatusBusy = 2,
2124    KECustomGameInstallStatusFailedGeneric = 101,
2125    KECustomGameInstallStatusFailedInternalError = 102,
2126    KECustomGameInstallStatusRequestedTimestampTooOld = 103,
2127    KECustomGameInstallStatusRequestedTimestampTooNew = 104,
2128    KECustomGameInstallStatusCrcMismatch = 105,
2129    KECustomGameInstallStatusFailedSteam = 106,
2130    KECustomGameInstallStatusFailedCanceled = 107,
2131}
2132#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2133pub struct CDemoFileHeader {
2134    #[prost(string, required, tag = "1")]
2135    pub demo_file_stamp: ::prost::alloc::string::String,
2136    #[prost(int32, optional, tag = "2")]
2137    pub patch_version: ::core::option::Option<i32>,
2138    #[prost(string, optional, tag = "3")]
2139    pub server_name: ::core::option::Option<::prost::alloc::string::String>,
2140    #[prost(string, optional, tag = "4")]
2141    pub client_name: ::core::option::Option<::prost::alloc::string::String>,
2142    #[prost(string, optional, tag = "5")]
2143    pub map_name: ::core::option::Option<::prost::alloc::string::String>,
2144    #[prost(string, optional, tag = "6")]
2145    pub game_directory: ::core::option::Option<::prost::alloc::string::String>,
2146    #[prost(int32, optional, tag = "7")]
2147    pub fullpackets_version: ::core::option::Option<i32>,
2148    #[prost(bool, optional, tag = "8")]
2149    pub allow_clientside_entities: ::core::option::Option<bool>,
2150    #[prost(bool, optional, tag = "9")]
2151    pub allow_clientside_particles: ::core::option::Option<bool>,
2152    #[prost(string, optional, tag = "10")]
2153    pub addons: ::core::option::Option<::prost::alloc::string::String>,
2154    #[prost(string, optional, tag = "11")]
2155    pub demo_version_name: ::core::option::Option<::prost::alloc::string::String>,
2156    #[prost(string, optional, tag = "12")]
2157    pub demo_version_guid: ::core::option::Option<::prost::alloc::string::String>,
2158    #[prost(int32, optional, tag = "13")]
2159    pub build_num: ::core::option::Option<i32>,
2160    #[prost(string, optional, tag = "14")]
2161    pub game: ::core::option::Option<::prost::alloc::string::String>,
2162    #[prost(int32, optional, tag = "15")]
2163    pub server_start_tick: ::core::option::Option<i32>,
2164}
2165#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2166pub struct CGameInfo {
2167    #[prost(message, optional, tag = "4")]
2168    pub dota: ::core::option::Option<c_game_info::CDotaGameInfo>,
2169    #[prost(message, optional, tag = "5")]
2170    pub cs: ::core::option::Option<c_game_info::CCsGameInfo>,
2171}
2172pub mod c_game_info {
2173    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2174    pub struct CDotaGameInfo {
2175        #[prost(uint64, optional, tag = "1")]
2176        pub match_id: ::core::option::Option<u64>,
2177        #[prost(int32, optional, tag = "2")]
2178        pub game_mode: ::core::option::Option<i32>,
2179        #[prost(int32, optional, tag = "3")]
2180        pub game_winner: ::core::option::Option<i32>,
2181        #[prost(message, repeated, tag = "4")]
2182        pub player_info: ::prost::alloc::vec::Vec<c_dota_game_info::CPlayerInfo>,
2183        #[prost(uint32, optional, tag = "5")]
2184        pub leagueid: ::core::option::Option<u32>,
2185        #[prost(message, repeated, tag = "6")]
2186        pub picks_bans: ::prost::alloc::vec::Vec<c_dota_game_info::CHeroSelectEvent>,
2187        #[prost(uint32, optional, tag = "7")]
2188        pub radiant_team_id: ::core::option::Option<u32>,
2189        #[prost(uint32, optional, tag = "8")]
2190        pub dire_team_id: ::core::option::Option<u32>,
2191        #[prost(string, optional, tag = "9")]
2192        pub radiant_team_tag: ::core::option::Option<::prost::alloc::string::String>,
2193        #[prost(string, optional, tag = "10")]
2194        pub dire_team_tag: ::core::option::Option<::prost::alloc::string::String>,
2195        #[prost(uint32, optional, tag = "11")]
2196        pub end_time: ::core::option::Option<u32>,
2197    }
2198    pub mod c_dota_game_info {
2199        #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2200        pub struct CPlayerInfo {
2201            #[prost(string, optional, tag = "1")]
2202            pub hero_name: ::core::option::Option<::prost::alloc::string::String>,
2203            #[prost(bytes = "vec", optional, tag = "2")]
2204            pub player_name: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2205            #[prost(bool, optional, tag = "3")]
2206            pub is_fake_client: ::core::option::Option<bool>,
2207            #[prost(uint64, optional, tag = "4")]
2208            pub steamid: ::core::option::Option<u64>,
2209            #[prost(int32, optional, tag = "5")]
2210            pub game_team: ::core::option::Option<i32>,
2211        }
2212        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2213        pub struct CHeroSelectEvent {
2214            #[prost(bool, optional, tag = "1")]
2215            pub is_pick: ::core::option::Option<bool>,
2216            #[prost(uint32, optional, tag = "2")]
2217            pub team: ::core::option::Option<u32>,
2218            #[prost(int32, optional, tag = "3")]
2219            pub hero_id: ::core::option::Option<i32>,
2220        }
2221    }
2222    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2223    pub struct CCsGameInfo {
2224        #[prost(int32, repeated, packed = "false", tag = "1")]
2225        pub round_start_ticks: ::prost::alloc::vec::Vec<i32>,
2226    }
2227}
2228#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2229pub struct CDemoFileInfo {
2230    #[prost(float, optional, tag = "1")]
2231    pub playback_time: ::core::option::Option<f32>,
2232    #[prost(int32, optional, tag = "2")]
2233    pub playback_ticks: ::core::option::Option<i32>,
2234    #[prost(int32, optional, tag = "3")]
2235    pub playback_frames: ::core::option::Option<i32>,
2236    #[prost(message, optional, tag = "4")]
2237    pub game_info: ::core::option::Option<CGameInfo>,
2238}
2239#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2240pub struct CDemoPacket {
2241    #[prost(bytes = "vec", optional, tag = "3")]
2242    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2243}
2244#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2245pub struct CDemoFullPacket {
2246    #[prost(message, optional, tag = "1")]
2247    pub string_table: ::core::option::Option<CDemoStringTables>,
2248    #[prost(message, optional, tag = "2")]
2249    pub packet: ::core::option::Option<CDemoPacket>,
2250}
2251#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2252pub struct CDemoSaveGame {
2253    #[prost(bytes = "vec", optional, tag = "1")]
2254    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2255    #[prost(fixed64, optional, tag = "2")]
2256    pub steam_id: ::core::option::Option<u64>,
2257    #[prost(fixed64, optional, tag = "3")]
2258    pub signature: ::core::option::Option<u64>,
2259    #[prost(int32, optional, tag = "4")]
2260    pub version: ::core::option::Option<i32>,
2261}
2262#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2263pub struct CDemoSyncTick {}
2264#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2265pub struct CDemoConsoleCmd {
2266    #[prost(string, optional, tag = "1")]
2267    pub cmdstring: ::core::option::Option<::prost::alloc::string::String>,
2268}
2269#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2270pub struct CDemoSendTables {
2271    #[prost(bytes = "vec", optional, tag = "1")]
2272    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2273}
2274#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2275pub struct CDemoClassInfo {
2276    #[prost(message, repeated, tag = "1")]
2277    pub classes: ::prost::alloc::vec::Vec<c_demo_class_info::ClassT>,
2278}
2279pub mod c_demo_class_info {
2280    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2281    pub struct ClassT {
2282        #[prost(int32, optional, tag = "1")]
2283        pub class_id: ::core::option::Option<i32>,
2284        #[prost(string, optional, tag = "2")]
2285        pub network_name: ::core::option::Option<::prost::alloc::string::String>,
2286        #[prost(string, optional, tag = "3")]
2287        pub table_name: ::core::option::Option<::prost::alloc::string::String>,
2288    }
2289}
2290#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2291pub struct CDemoCustomData {
2292    #[prost(int32, optional, tag = "1")]
2293    pub callback_index: ::core::option::Option<i32>,
2294    #[prost(bytes = "vec", optional, tag = "2")]
2295    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2296}
2297#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2298pub struct CDemoCustomDataCallbacks {
2299    #[prost(string, repeated, tag = "1")]
2300    pub save_id: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2301}
2302#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2303pub struct CDemoAnimationHeader {
2304    #[prost(sint32, optional, tag = "1")]
2305    pub entity_id: ::core::option::Option<i32>,
2306    #[prost(int32, optional, tag = "2")]
2307    pub tick: ::core::option::Option<i32>,
2308    #[prost(bytes = "vec", optional, tag = "3")]
2309    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2310}
2311#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2312pub struct CDemoAnimationData {
2313    #[prost(sint32, optional, tag = "1")]
2314    pub entity_id: ::core::option::Option<i32>,
2315    #[prost(int32, optional, tag = "2")]
2316    pub start_tick: ::core::option::Option<i32>,
2317    #[prost(int32, optional, tag = "3")]
2318    pub end_tick: ::core::option::Option<i32>,
2319    #[prost(bytes = "vec", optional, tag = "4")]
2320    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2321    #[prost(int64, optional, tag = "5")]
2322    pub data_checksum: ::core::option::Option<i64>,
2323}
2324#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2325pub struct CDemoStringTables {
2326    #[prost(message, repeated, tag = "1")]
2327    pub tables: ::prost::alloc::vec::Vec<c_demo_string_tables::TableT>,
2328}
2329pub mod c_demo_string_tables {
2330    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2331    pub struct ItemsT {
2332        #[prost(string, optional, tag = "1")]
2333        pub str: ::core::option::Option<::prost::alloc::string::String>,
2334        #[prost(bytes = "vec", optional, tag = "2")]
2335        pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2336    }
2337    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2338    pub struct TableT {
2339        #[prost(string, optional, tag = "1")]
2340        pub table_name: ::core::option::Option<::prost::alloc::string::String>,
2341        #[prost(message, repeated, tag = "2")]
2342        pub items: ::prost::alloc::vec::Vec<ItemsT>,
2343        #[prost(message, repeated, tag = "3")]
2344        pub items_clientside: ::prost::alloc::vec::Vec<ItemsT>,
2345        #[prost(int32, optional, tag = "4")]
2346        pub table_flags: ::core::option::Option<i32>,
2347    }
2348}
2349#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2350pub struct CDemoStop {}
2351#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2352pub struct CDemoUserCmd {
2353    #[prost(int32, optional, tag = "1")]
2354    pub cmd_number: ::core::option::Option<i32>,
2355    #[prost(bytes = "vec", optional, tag = "2")]
2356    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2357}
2358#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2359pub struct CDemoSpawnGroups {
2360    #[prost(bytes = "vec", repeated, tag = "3")]
2361    pub msgs: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
2362}
2363#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2364pub struct CDemoSpawnGroupsHltvBroadcast {
2365    #[prost(bytes = "vec", optional, tag = "1")]
2366    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2367}
2368#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2369pub struct CDemoRecovery {
2370    #[prost(message, optional, tag = "1")]
2371    pub initial_spawn_group: ::core::option::Option<c_demo_recovery::DemoInitialSpawnGroupEntry>,
2372    #[prost(bytes = "vec", optional, tag = "2")]
2373    pub spawn_group_message: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2374}
2375pub mod c_demo_recovery {
2376    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2377    pub struct DemoInitialSpawnGroupEntry {
2378        #[prost(uint32, optional, tag = "1")]
2379        pub spawngrouphandle: ::core::option::Option<u32>,
2380        #[prost(bool, optional, tag = "2")]
2381        pub was_created: ::core::option::Option<bool>,
2382    }
2383}
2384#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2385#[repr(i32)]
2386pub enum EDemoCommands {
2387    DemError = -1,
2388    DemStop = 0,
2389    DemFileHeader = 1,
2390    DemFileInfo = 2,
2391    DemSyncTick = 3,
2392    DemSendTables = 4,
2393    DemClassInfo = 5,
2394    DemStringTables = 6,
2395    DemPacket = 7,
2396    DemSignonPacket = 8,
2397    DemConsoleCmd = 9,
2398    DemCustomData = 10,
2399    DemCustomDataCallbacks = 11,
2400    DemUserCmd = 12,
2401    DemFullPacket = 13,
2402    DemSaveGame = 14,
2403    DemSpawnGroups = 15,
2404    DemAnimationData = 16,
2405    DemAnimationHeader = 17,
2406    DemRecovery = 18,
2407    DemMax = 19,
2408    DemIsCompressed = 64,
2409}
2410#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2411#[repr(i32)]
2412pub enum ENetworkDisconnectionReason {
2413    NetworkDisconnectInvalid = 0,
2414    NetworkDisconnectShutdown = 1,
2415    NetworkDisconnectDisconnectByUser = 2,
2416    NetworkDisconnectDisconnectByServer = 3,
2417    NetworkDisconnectLost = 4,
2418    NetworkDisconnectOverflow = 5,
2419    NetworkDisconnectSteamBanned = 6,
2420    NetworkDisconnectSteamInuse = 7,
2421    NetworkDisconnectSteamTicket = 8,
2422    NetworkDisconnectSteamLogon = 9,
2423    NetworkDisconnectSteamAuthcancelled = 10,
2424    NetworkDisconnectSteamAuthalreadyused = 11,
2425    NetworkDisconnectSteamAuthinvalid = 12,
2426    NetworkDisconnectSteamVacbanstate = 13,
2427    NetworkDisconnectSteamLoggedInElsewhere = 14,
2428    NetworkDisconnectSteamVacCheckTimedout = 15,
2429    NetworkDisconnectSteamDropped = 16,
2430    NetworkDisconnectSteamOwnership = 17,
2431    NetworkDisconnectServerinfoOverflow = 18,
2432    NetworkDisconnectTickmsgOverflow = 19,
2433    NetworkDisconnectStringtablemsgOverflow = 20,
2434    NetworkDisconnectDeltaentmsgOverflow = 21,
2435    NetworkDisconnectTempentmsgOverflow = 22,
2436    NetworkDisconnectSoundsmsgOverflow = 23,
2437    NetworkDisconnectSnapshotoverflow = 24,
2438    NetworkDisconnectSnapshoterror = 25,
2439    NetworkDisconnectReliableoverflow = 26,
2440    NetworkDisconnectBaddeltatick = 27,
2441    NetworkDisconnectNomoresplits = 28,
2442    NetworkDisconnectTimedout = 29,
2443    NetworkDisconnectDisconnected = 30,
2444    NetworkDisconnectLeavingsplit = 31,
2445    NetworkDisconnectDifferentclasstables = 32,
2446    NetworkDisconnectBadrelaypassword = 33,
2447    NetworkDisconnectBadspectatorpassword = 34,
2448    NetworkDisconnectHltvrestricted = 35,
2449    NetworkDisconnectNospectators = 36,
2450    NetworkDisconnectHltvunavailable = 37,
2451    NetworkDisconnectHltvstop = 38,
2452    NetworkDisconnectKicked = 39,
2453    NetworkDisconnectBanadded = 40,
2454    NetworkDisconnectKickbanadded = 41,
2455    NetworkDisconnectHltvdirect = 42,
2456    NetworkDisconnectPureserverClientextra = 43,
2457    NetworkDisconnectPureserverMismatch = 44,
2458    NetworkDisconnectUsercmd = 45,
2459    NetworkDisconnectRejectedByGame = 46,
2460    NetworkDisconnectMessageParseError = 47,
2461    NetworkDisconnectInvalidMessageError = 48,
2462    NetworkDisconnectBadServerPassword = 49,
2463    NetworkDisconnectDirectConnectReservation = 50,
2464    NetworkDisconnectConnectionFailure = 51,
2465    NetworkDisconnectNoPeerGroupHandlers = 52,
2466    NetworkDisconnectReconnection = 53,
2467    NetworkDisconnectLoopshutdown = 54,
2468    NetworkDisconnectLoopdeactivate = 55,
2469    NetworkDisconnectHostEndgame = 56,
2470    NetworkDisconnectLoopLevelloadActivate = 57,
2471    NetworkDisconnectCreateServerFailed = 58,
2472    NetworkDisconnectExiting = 59,
2473    NetworkDisconnectRequestHoststateIdle = 60,
2474    NetworkDisconnectRequestHoststateHltvrelay = 61,
2475    NetworkDisconnectClientConsistencyFail = 62,
2476    NetworkDisconnectClientUnableToCrcMap = 63,
2477    NetworkDisconnectClientNoMap = 64,
2478    NetworkDisconnectClientDifferentMap = 65,
2479    NetworkDisconnectServerRequiresSteam = 66,
2480    NetworkDisconnectSteamDenyMisc = 67,
2481    NetworkDisconnectSteamDenyBadAntiCheat = 68,
2482    NetworkDisconnectServerShutdown = 69,
2483    NetworkDisconnectReplayIncompatible = 71,
2484    NetworkDisconnectConnectRequestTimedout = 72,
2485    NetworkDisconnectServerIncompatible = 73,
2486    NetworkDisconnectLocalproblemManyrelays = 74,
2487    NetworkDisconnectLocalproblemHostedserverprimaryrelay = 75,
2488    NetworkDisconnectLocalproblemNetworkconfig = 76,
2489    NetworkDisconnectLocalproblemOther = 77,
2490    NetworkDisconnectRemoteTimeout = 79,
2491    NetworkDisconnectRemoteTimeoutConnecting = 80,
2492    NetworkDisconnectRemoteOther = 81,
2493    NetworkDisconnectRemoteBadcrypt = 82,
2494    NetworkDisconnectRemoteCertnottrusted = 83,
2495    NetworkDisconnectUnusual = 84,
2496    NetworkDisconnectInternalError = 85,
2497    NetworkDisconnectRejectBadchallenge = 128,
2498    NetworkDisconnectRejectNolobby = 129,
2499    NetworkDisconnectRejectBackgroundMap = 130,
2500    NetworkDisconnectRejectSinglePlayer = 131,
2501    NetworkDisconnectRejectHiddenGame = 132,
2502    NetworkDisconnectRejectLanrestrict = 133,
2503    NetworkDisconnectRejectBadpassword = 134,
2504    NetworkDisconnectRejectServerfull = 135,
2505    NetworkDisconnectRejectInvalidreservation = 136,
2506    NetworkDisconnectRejectFailedchannel = 137,
2507    NetworkDisconnectRejectConnectFromLobby = 138,
2508    NetworkDisconnectRejectReservedForLobby = 139,
2509    NetworkDisconnectRejectInvalidkeylength = 140,
2510    NetworkDisconnectRejectOldprotocol = 141,
2511    NetworkDisconnectRejectNewprotocol = 142,
2512    NetworkDisconnectRejectInvalidconnection = 143,
2513    NetworkDisconnectRejectInvalidcertlen = 144,
2514    NetworkDisconnectRejectInvalidsteamcertlen = 145,
2515    NetworkDisconnectRejectSteam = 146,
2516    NetworkDisconnectRejectServerauthdisabled = 147,
2517    NetworkDisconnectRejectServercdkeyauthinvalid = 148,
2518    NetworkDisconnectRejectBanned = 149,
2519    NetworkDisconnectKickedTeamkilling = 150,
2520    NetworkDisconnectKickedTkStart = 151,
2521    NetworkDisconnectKickedUntrustedaccount = 152,
2522    NetworkDisconnectKickedConvictedaccount = 153,
2523    NetworkDisconnectKickedCompetitivecooldown = 154,
2524    NetworkDisconnectKickedTeamhurting = 155,
2525    NetworkDisconnectKickedHostagekilling = 156,
2526    NetworkDisconnectKickedVotedoff = 157,
2527    NetworkDisconnectKickedIdle = 158,
2528    NetworkDisconnectKickedSuicide = 159,
2529    NetworkDisconnectKickedNosteamlogin = 160,
2530    NetworkDisconnectKickedNosteamticket = 161,
2531    NetworkDisconnectKickedInputautomation = 162,
2532    NetworkDisconnectKickedVacnetabnormalbehavior = 163,
2533    NetworkDisconnectKickedInsecureclient = 164,
2534}
2535#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
2536pub struct CMsgVector {
2537    #[prost(float, optional, tag = "1")]
2538    pub x: ::core::option::Option<f32>,
2539    #[prost(float, optional, tag = "2")]
2540    pub y: ::core::option::Option<f32>,
2541    #[prost(float, optional, tag = "3")]
2542    pub z: ::core::option::Option<f32>,
2543    #[prost(float, optional, tag = "4")]
2544    pub w: ::core::option::Option<f32>,
2545}
2546#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
2547pub struct CMsgVector2D {
2548    #[prost(float, optional, tag = "1")]
2549    pub x: ::core::option::Option<f32>,
2550    #[prost(float, optional, tag = "2")]
2551    pub y: ::core::option::Option<f32>,
2552}
2553#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
2554pub struct CMsgQAngle {
2555    #[prost(float, optional, tag = "1")]
2556    pub x: ::core::option::Option<f32>,
2557    #[prost(float, optional, tag = "2")]
2558    pub y: ::core::option::Option<f32>,
2559    #[prost(float, optional, tag = "3")]
2560    pub z: ::core::option::Option<f32>,
2561}
2562#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
2563pub struct CMsgQuaternion {
2564    #[prost(float, optional, tag = "1")]
2565    pub x: ::core::option::Option<f32>,
2566    #[prost(float, optional, tag = "2")]
2567    pub y: ::core::option::Option<f32>,
2568    #[prost(float, optional, tag = "3")]
2569    pub z: ::core::option::Option<f32>,
2570    #[prost(float, optional, tag = "4")]
2571    pub w: ::core::option::Option<f32>,
2572}
2573#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
2574pub struct CMsgTransform {
2575    #[prost(message, optional, tag = "1")]
2576    pub position: ::core::option::Option<CMsgVector>,
2577    #[prost(float, optional, tag = "2")]
2578    pub scale: ::core::option::Option<f32>,
2579    #[prost(message, optional, tag = "3")]
2580    pub orientation: ::core::option::Option<CMsgQuaternion>,
2581}
2582#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2583pub struct CMsgRgba {
2584    #[prost(int32, optional, tag = "1")]
2585    pub r: ::core::option::Option<i32>,
2586    #[prost(int32, optional, tag = "2")]
2587    pub g: ::core::option::Option<i32>,
2588    #[prost(int32, optional, tag = "3")]
2589    pub b: ::core::option::Option<i32>,
2590    #[prost(int32, optional, tag = "4")]
2591    pub a: ::core::option::Option<i32>,
2592}
2593#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2594pub struct CMsgPlayerInfo {
2595    #[prost(string, optional, tag = "1")]
2596    pub name: ::core::option::Option<::prost::alloc::string::String>,
2597    #[prost(fixed64, optional, tag = "2")]
2598    pub xuid: ::core::option::Option<u64>,
2599    #[prost(int32, optional, tag = "3")]
2600    pub userid: ::core::option::Option<i32>,
2601    #[prost(fixed64, optional, tag = "4")]
2602    pub steamid: ::core::option::Option<u64>,
2603    #[prost(bool, optional, tag = "5")]
2604    pub fakeplayer: ::core::option::Option<bool>,
2605    #[prost(bool, optional, tag = "6")]
2606    pub ishltv: ::core::option::Option<bool>,
2607}
2608#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2609pub struct CEntityMsg {
2610    #[prost(uint32, optional, tag = "1", default = "16777215")]
2611    pub target_entity: ::core::option::Option<u32>,
2612}
2613#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2614pub struct CMsgCVars {
2615    #[prost(message, repeated, tag = "1")]
2616    pub cvars: ::prost::alloc::vec::Vec<c_msg_c_vars::CVar>,
2617}
2618pub mod c_msg_c_vars {
2619    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2620    pub struct CVar {
2621        #[prost(string, optional, tag = "1")]
2622        pub name: ::core::option::Option<::prost::alloc::string::String>,
2623        #[prost(string, optional, tag = "2")]
2624        pub value: ::core::option::Option<::prost::alloc::string::String>,
2625    }
2626}
2627#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2628pub struct CNetMsgNop {}
2629#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2630pub struct CNetMsgSplitScreenUser {
2631    #[prost(int32, optional, tag = "1")]
2632    pub slot: ::core::option::Option<i32>,
2633}
2634#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2635pub struct CNetMsgTick {
2636    #[prost(uint32, optional, tag = "1")]
2637    pub tick: ::core::option::Option<u32>,
2638    #[prost(uint32, optional, tag = "4")]
2639    pub host_computationtime: ::core::option::Option<u32>,
2640    #[prost(uint32, optional, tag = "5")]
2641    pub host_computationtime_std_deviation: ::core::option::Option<u32>,
2642    #[prost(uint32, optional, tag = "7")]
2643    pub legacy_host_loss: ::core::option::Option<u32>,
2644    #[prost(uint32, optional, tag = "8")]
2645    pub host_unfiltered_frametime: ::core::option::Option<u32>,
2646    #[prost(uint32, optional, tag = "9")]
2647    pub hltv_replay_flags: ::core::option::Option<u32>,
2648    #[prost(uint32, optional, tag = "10")]
2649    pub expected_long_tick: ::core::option::Option<u32>,
2650    #[prost(string, optional, tag = "11")]
2651    pub expected_long_tick_reason: ::core::option::Option<::prost::alloc::string::String>,
2652    #[prost(uint32, optional, tag = "12")]
2653    pub host_frame_dropped_pct_x10: ::core::option::Option<u32>,
2654    #[prost(uint32, optional, tag = "13")]
2655    pub host_frame_irregular_arrival_pct_x10: ::core::option::Option<u32>,
2656}
2657#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2658pub struct CNetMsgStringCmd {
2659    #[prost(string, optional, tag = "1")]
2660    pub command: ::core::option::Option<::prost::alloc::string::String>,
2661    #[prost(uint32, optional, tag = "2")]
2662    pub prediction_sync: ::core::option::Option<u32>,
2663}
2664#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2665pub struct CNetMsgSetConVar {
2666    #[prost(message, optional, tag = "1")]
2667    pub convars: ::core::option::Option<CMsgCVars>,
2668}
2669#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2670pub struct CNetMsgSignonState {
2671    #[prost(enumeration = "SignonStateT", optional, tag = "1", default = "SignonstateNone")]
2672    pub signon_state: ::core::option::Option<i32>,
2673    #[prost(uint32, optional, tag = "2")]
2674    pub spawn_count: ::core::option::Option<u32>,
2675    #[prost(uint32, optional, tag = "3")]
2676    pub num_server_players: ::core::option::Option<u32>,
2677    #[prost(string, repeated, tag = "4")]
2678    pub players_networkids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2679    #[prost(string, optional, tag = "5")]
2680    pub map_name: ::core::option::Option<::prost::alloc::string::String>,
2681    #[prost(string, optional, tag = "6")]
2682    pub addons: ::core::option::Option<::prost::alloc::string::String>,
2683}
2684#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2685pub struct CSvcMsgGameEvent {
2686    #[prost(string, optional, tag = "1")]
2687    pub event_name: ::core::option::Option<::prost::alloc::string::String>,
2688    #[prost(int32, optional, tag = "2")]
2689    pub eventid: ::core::option::Option<i32>,
2690    #[prost(message, repeated, tag = "3")]
2691    pub keys: ::prost::alloc::vec::Vec<csvc_msg_game_event::KeyT>,
2692}
2693pub mod csvc_msg_game_event {
2694    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2695    pub struct KeyT {
2696        #[prost(int32, optional, tag = "1")]
2697        pub r#type: ::core::option::Option<i32>,
2698        #[prost(string, optional, tag = "2")]
2699        pub val_string: ::core::option::Option<::prost::alloc::string::String>,
2700        #[prost(float, optional, tag = "3")]
2701        pub val_float: ::core::option::Option<f32>,
2702        #[prost(int32, optional, tag = "4")]
2703        pub val_long: ::core::option::Option<i32>,
2704        #[prost(int32, optional, tag = "5")]
2705        pub val_short: ::core::option::Option<i32>,
2706        #[prost(int32, optional, tag = "6")]
2707        pub val_byte: ::core::option::Option<i32>,
2708        #[prost(bool, optional, tag = "7")]
2709        pub val_bool: ::core::option::Option<bool>,
2710        #[prost(uint64, optional, tag = "8")]
2711        pub val_uint64: ::core::option::Option<u64>,
2712    }
2713}
2714#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2715pub struct CSvcMsgListGameEvents {
2716    #[prost(message, repeated, tag = "1")]
2717    pub events: ::prost::alloc::vec::Vec<csvc_msg_list_game_events::EventT>,
2718}
2719pub mod csvc_msg_list_game_events {
2720    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2721    pub struct EventT {
2722        #[prost(int32, optional, tag = "1")]
2723        pub tick: ::core::option::Option<i32>,
2724        #[prost(message, optional, tag = "2")]
2725        pub event: ::core::option::Option<super::CSvcMsgGameEvent>,
2726    }
2727}
2728#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2729pub struct CNetMsgSpawnGroupLoad {
2730    #[prost(string, optional, tag = "1")]
2731    pub worldname: ::core::option::Option<::prost::alloc::string::String>,
2732    #[prost(string, optional, tag = "2")]
2733    pub entitylumpname: ::core::option::Option<::prost::alloc::string::String>,
2734    #[prost(string, optional, tag = "3")]
2735    pub entityfiltername: ::core::option::Option<::prost::alloc::string::String>,
2736    #[prost(uint32, optional, tag = "4")]
2737    pub spawngrouphandle: ::core::option::Option<u32>,
2738    #[prost(uint32, optional, tag = "5")]
2739    pub spawngroupownerhandle: ::core::option::Option<u32>,
2740    #[prost(message, optional, tag = "6")]
2741    pub world_offset_pos: ::core::option::Option<CMsgVector>,
2742    #[prost(message, optional, tag = "7")]
2743    pub world_offset_angle: ::core::option::Option<CMsgQAngle>,
2744    #[prost(bytes = "vec", optional, tag = "8")]
2745    pub spawngroupmanifest: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2746    #[prost(uint32, optional, tag = "9")]
2747    pub flags: ::core::option::Option<u32>,
2748    #[prost(int32, optional, tag = "10")]
2749    pub tickcount: ::core::option::Option<i32>,
2750    #[prost(bool, optional, tag = "11")]
2751    pub manifestincomplete: ::core::option::Option<bool>,
2752    #[prost(string, optional, tag = "12")]
2753    pub localnamefixup: ::core::option::Option<::prost::alloc::string::String>,
2754    #[prost(string, optional, tag = "13")]
2755    pub parentnamefixup: ::core::option::Option<::prost::alloc::string::String>,
2756    #[prost(int32, optional, tag = "14")]
2757    pub manifestloadpriority: ::core::option::Option<i32>,
2758    #[prost(uint32, optional, tag = "15")]
2759    pub worldgroupid: ::core::option::Option<u32>,
2760    #[prost(uint32, optional, tag = "16")]
2761    pub creationsequence: ::core::option::Option<u32>,
2762    #[prost(string, optional, tag = "17")]
2763    pub savegamefilename: ::core::option::Option<::prost::alloc::string::String>,
2764    #[prost(uint32, optional, tag = "18")]
2765    pub spawngroupparenthandle: ::core::option::Option<u32>,
2766    #[prost(bool, optional, tag = "19")]
2767    pub leveltransition: ::core::option::Option<bool>,
2768    #[prost(string, optional, tag = "20")]
2769    pub worldgroupname: ::core::option::Option<::prost::alloc::string::String>,
2770}
2771#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2772pub struct CNetMsgSpawnGroupManifestUpdate {
2773    #[prost(uint32, optional, tag = "1")]
2774    pub spawngrouphandle: ::core::option::Option<u32>,
2775    #[prost(bytes = "vec", optional, tag = "2")]
2776    pub spawngroupmanifest: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2777    #[prost(bool, optional, tag = "3")]
2778    pub manifestincomplete: ::core::option::Option<bool>,
2779}
2780#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2781pub struct CNetMsgSpawnGroupSetCreationTick {
2782    #[prost(uint32, optional, tag = "1")]
2783    pub spawngrouphandle: ::core::option::Option<u32>,
2784    #[prost(int32, optional, tag = "2")]
2785    pub tickcount: ::core::option::Option<i32>,
2786    #[prost(uint32, optional, tag = "3")]
2787    pub creationsequence: ::core::option::Option<u32>,
2788}
2789#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2790pub struct CNetMsgSpawnGroupUnload {
2791    #[prost(uint32, optional, tag = "1")]
2792    pub spawngrouphandle: ::core::option::Option<u32>,
2793    #[prost(uint32, optional, tag = "2")]
2794    pub flags: ::core::option::Option<u32>,
2795    #[prost(int32, optional, tag = "3")]
2796    pub tickcount: ::core::option::Option<i32>,
2797}
2798#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2799pub struct CNetMsgSpawnGroupLoadCompleted {
2800    #[prost(uint32, optional, tag = "1")]
2801    pub spawngrouphandle: ::core::option::Option<u32>,
2802}
2803#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2804pub struct CSvcMsgGameSessionConfiguration {
2805    #[prost(bool, optional, tag = "1")]
2806    pub is_multiplayer: ::core::option::Option<bool>,
2807    #[prost(bool, optional, tag = "2")]
2808    pub is_loadsavegame: ::core::option::Option<bool>,
2809    #[prost(bool, optional, tag = "3")]
2810    pub is_background_map: ::core::option::Option<bool>,
2811    #[prost(bool, optional, tag = "4")]
2812    pub is_headless: ::core::option::Option<bool>,
2813    #[prost(uint32, optional, tag = "5")]
2814    pub min_client_limit: ::core::option::Option<u32>,
2815    #[prost(uint32, optional, tag = "6")]
2816    pub max_client_limit: ::core::option::Option<u32>,
2817    #[prost(uint32, optional, tag = "7")]
2818    pub max_clients: ::core::option::Option<u32>,
2819    #[prost(fixed32, optional, tag = "8")]
2820    pub tick_interval: ::core::option::Option<u32>,
2821    #[prost(string, optional, tag = "9")]
2822    pub hostname: ::core::option::Option<::prost::alloc::string::String>,
2823    #[prost(string, optional, tag = "10")]
2824    pub savegamename: ::core::option::Option<::prost::alloc::string::String>,
2825    #[prost(string, optional, tag = "11")]
2826    pub s1_mapname: ::core::option::Option<::prost::alloc::string::String>,
2827    #[prost(string, optional, tag = "12")]
2828    pub gamemode: ::core::option::Option<::prost::alloc::string::String>,
2829    #[prost(string, optional, tag = "13")]
2830    pub server_ip_address: ::core::option::Option<::prost::alloc::string::String>,
2831    #[prost(bytes = "vec", optional, tag = "14")]
2832    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2833    #[prost(bool, optional, tag = "15")]
2834    pub is_localonly: ::core::option::Option<bool>,
2835    #[prost(bool, optional, tag = "19")]
2836    pub no_steam_server: ::core::option::Option<bool>,
2837    #[prost(bool, optional, tag = "16")]
2838    pub is_transition: ::core::option::Option<bool>,
2839    #[prost(string, optional, tag = "17")]
2840    pub previouslevel: ::core::option::Option<::prost::alloc::string::String>,
2841    #[prost(string, optional, tag = "18")]
2842    pub landmarkname: ::core::option::Option<::prost::alloc::string::String>,
2843}
2844#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2845pub struct CNetMsgDebugOverlay {
2846    #[prost(int32, optional, tag = "1")]
2847    pub etype: ::core::option::Option<i32>,
2848    #[prost(message, repeated, tag = "2")]
2849    pub vectors: ::prost::alloc::vec::Vec<CMsgVector>,
2850    #[prost(message, repeated, tag = "3")]
2851    pub colors: ::prost::alloc::vec::Vec<CMsgRgba>,
2852    #[prost(float, repeated, packed = "false", tag = "4")]
2853    pub dimensions: ::prost::alloc::vec::Vec<f32>,
2854    #[prost(float, repeated, packed = "false", tag = "5")]
2855    pub times: ::prost::alloc::vec::Vec<f32>,
2856    #[prost(bool, repeated, packed = "false", tag = "6")]
2857    pub bools: ::prost::alloc::vec::Vec<bool>,
2858    #[prost(uint64, repeated, packed = "false", tag = "7")]
2859    pub uint64s: ::prost::alloc::vec::Vec<u64>,
2860    #[prost(string, repeated, tag = "8")]
2861    pub strings: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2862}
2863#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2864#[repr(i32)]
2865pub enum SignonStateT {
2866    SignonstateNone = 0,
2867    SignonstateChallenge = 1,
2868    SignonstateConnected = 2,
2869    SignonstateNew = 3,
2870    SignonstatePrespawn = 4,
2871    SignonstateSpawn = 5,
2872    SignonstateFull = 6,
2873    SignonstateChangelevel = 7,
2874}
2875#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2876#[repr(i32)]
2877pub enum NetMessages {
2878    NetNop = 0,
2879    NetDisconnectLegacy = 1,
2880    NetSplitScreenUser = 3,
2881    NetTick = 4,
2882    NetStringCmd = 5,
2883    NetSetConVar = 6,
2884    NetSignonState = 7,
2885    NetSpawnGroupLoad = 8,
2886    NetSpawnGroupManifestUpdate = 9,
2887    NetSpawnGroupSetCreationTick = 11,
2888    NetSpawnGroupUnload = 12,
2889    NetSpawnGroupLoadCompleted = 13,
2890    NetDebugOverlay = 15,
2891}
2892#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2893#[repr(i32)]
2894pub enum SpawnGroupFlagsT {
2895    SpawnGroupLoadEntitiesFromSave = 1,
2896    SpawnGroupDontSpawnEntities = 2,
2897    SpawnGroupSynchronousSpawn = 4,
2898    SpawnGroupIsInitialSpawnGroup = 8,
2899    SpawnGroupCreateClientOnlyEntities = 16,
2900    SpawnGroupBlockUntilLoaded = 64,
2901    SpawnGroupLoadStreamingData = 128,
2902    SpawnGroupCreateNewSceneWorld = 256,
2903}
2904#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2905pub struct CMsgVDebugGameSessionIdEvent {
2906    #[prost(int32, optional, tag = "1")]
2907    pub clientid: ::core::option::Option<i32>,
2908    #[prost(string, optional, tag = "2")]
2909    pub gamesessionid: ::core::option::Option<::prost::alloc::string::String>,
2910}
2911#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
2912pub struct CMsgPlaceDecalEvent {
2913    #[prost(message, optional, tag = "1")]
2914    pub position: ::core::option::Option<CMsgVector>,
2915    #[prost(message, optional, tag = "2")]
2916    pub normal: ::core::option::Option<CMsgVector>,
2917    #[prost(message, optional, tag = "3")]
2918    pub saxis: ::core::option::Option<CMsgVector>,
2919    #[prost(int32, optional, tag = "4")]
2920    pub boneindex: ::core::option::Option<i32>,
2921    #[prost(int32, optional, tag = "13")]
2922    pub triangleindex: ::core::option::Option<i32>,
2923    #[prost(uint32, optional, tag = "5")]
2924    pub flags: ::core::option::Option<u32>,
2925    #[prost(fixed32, optional, tag = "6")]
2926    pub color: ::core::option::Option<u32>,
2927    #[prost(int32, optional, tag = "7")]
2928    pub random_seed: ::core::option::Option<i32>,
2929    #[prost(uint32, optional, tag = "8")]
2930    pub decal_group_name: ::core::option::Option<u32>,
2931    #[prost(float, optional, tag = "9")]
2932    pub size_override: ::core::option::Option<f32>,
2933    #[prost(uint32, optional, tag = "10", default = "16777215")]
2934    pub entityhandle: ::core::option::Option<u32>,
2935    #[prost(uint64, optional, tag = "11")]
2936    pub material_id: ::core::option::Option<u64>,
2937    #[prost(uint32, optional, tag = "12")]
2938    pub sequence_name: ::core::option::Option<u32>,
2939    #[prost(message, optional, tag = "14")]
2940    pub position_objectspace: ::core::option::Option<CMsgVector>,
2941    #[prost(message, optional, tag = "15")]
2942    pub normal_objectspace: ::core::option::Option<CMsgVector>,
2943}
2944#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2945pub struct CMsgClearWorldDecalsEvent {
2946    #[prost(uint32, optional, tag = "1")]
2947    pub flagstoclear: ::core::option::Option<u32>,
2948}
2949#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2950pub struct CMsgClearEntityDecalsEvent {
2951    #[prost(uint32, optional, tag = "1")]
2952    pub flagstoclear: ::core::option::Option<u32>,
2953}
2954#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2955pub struct CMsgClearDecalsForEntityEvent {
2956    #[prost(uint32, optional, tag = "1")]
2957    pub flagstoclear: ::core::option::Option<u32>,
2958    #[prost(uint32, optional, tag = "2", default = "16777215")]
2959    pub entityhandle: ::core::option::Option<u32>,
2960}
2961#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2962pub struct CMsgSource1LegacyGameEventList {
2963    #[prost(message, repeated, tag = "1")]
2964    pub descriptors: ::prost::alloc::vec::Vec<c_msg_source1_legacy_game_event_list::DescriptorT>,
2965}
2966pub mod c_msg_source1_legacy_game_event_list {
2967    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2968    pub struct KeyT {
2969        #[prost(int32, optional, tag = "1")]
2970        pub r#type: ::core::option::Option<i32>,
2971        #[prost(string, optional, tag = "2")]
2972        pub name: ::core::option::Option<::prost::alloc::string::String>,
2973    }
2974    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2975    pub struct DescriptorT {
2976        #[prost(int32, optional, tag = "1")]
2977        pub eventid: ::core::option::Option<i32>,
2978        #[prost(string, optional, tag = "2")]
2979        pub name: ::core::option::Option<::prost::alloc::string::String>,
2980        #[prost(message, repeated, tag = "3")]
2981        pub keys: ::prost::alloc::vec::Vec<KeyT>,
2982    }
2983}
2984#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
2985pub struct CMsgSource1LegacyListenEvents {
2986    #[prost(int32, optional, tag = "1")]
2987    pub playerslot: ::core::option::Option<i32>,
2988    #[prost(uint32, repeated, packed = "false", tag = "2")]
2989    pub eventarraybits: ::prost::alloc::vec::Vec<u32>,
2990}
2991#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
2992pub struct CMsgSource1LegacyGameEvent {
2993    #[prost(string, optional, tag = "1")]
2994    pub event_name: ::core::option::Option<::prost::alloc::string::String>,
2995    #[prost(int32, optional, tag = "2")]
2996    pub eventid: ::core::option::Option<i32>,
2997    #[prost(message, repeated, tag = "3")]
2998    pub keys: ::prost::alloc::vec::Vec<c_msg_source1_legacy_game_event::KeyT>,
2999    #[prost(int32, optional, tag = "4")]
3000    pub server_tick: ::core::option::Option<i32>,
3001    #[prost(int32, optional, tag = "5")]
3002    pub passthrough: ::core::option::Option<i32>,
3003}
3004pub mod c_msg_source1_legacy_game_event {
3005    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3006    pub struct KeyT {
3007        #[prost(int32, optional, tag = "1")]
3008        pub r#type: ::core::option::Option<i32>,
3009        #[prost(string, optional, tag = "2")]
3010        pub val_string: ::core::option::Option<::prost::alloc::string::String>,
3011        #[prost(float, optional, tag = "3")]
3012        pub val_float: ::core::option::Option<f32>,
3013        #[prost(int32, optional, tag = "4")]
3014        pub val_long: ::core::option::Option<i32>,
3015        #[prost(int32, optional, tag = "5")]
3016        pub val_short: ::core::option::Option<i32>,
3017        #[prost(int32, optional, tag = "6")]
3018        pub val_byte: ::core::option::Option<i32>,
3019        #[prost(bool, optional, tag = "7")]
3020        pub val_bool: ::core::option::Option<bool>,
3021        #[prost(uint64, optional, tag = "8")]
3022        pub val_uint64: ::core::option::Option<u64>,
3023    }
3024}
3025#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3026pub struct CMsgSosStartSoundEvent {
3027    #[prost(int32, optional, tag = "1")]
3028    pub soundevent_guid: ::core::option::Option<i32>,
3029    #[prost(fixed32, optional, tag = "2")]
3030    pub soundevent_hash: ::core::option::Option<u32>,
3031    #[prost(int32, optional, tag = "3", default = "-1")]
3032    pub source_entity_index: ::core::option::Option<i32>,
3033    #[prost(int32, optional, tag = "4")]
3034    pub seed: ::core::option::Option<i32>,
3035    #[prost(bytes = "vec", optional, tag = "5")]
3036    pub packed_params: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3037    #[prost(float, optional, tag = "6")]
3038    pub start_time: ::core::option::Option<f32>,
3039}
3040#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3041pub struct CMsgSosStopSoundEvent {
3042    #[prost(int32, optional, tag = "1")]
3043    pub soundevent_guid: ::core::option::Option<i32>,
3044}
3045#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3046pub struct CMsgSosStopSoundEventHash {
3047    #[prost(fixed32, optional, tag = "1")]
3048    pub soundevent_hash: ::core::option::Option<u32>,
3049    #[prost(int32, optional, tag = "2", default = "-1")]
3050    pub source_entity_index: ::core::option::Option<i32>,
3051}
3052#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3053pub struct CMsgSosSetSoundEventParams {
3054    #[prost(int32, optional, tag = "1")]
3055    pub soundevent_guid: ::core::option::Option<i32>,
3056    #[prost(bytes = "vec", optional, tag = "5")]
3057    pub packed_params: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3058}
3059#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3060pub struct CMsgSosSetLibraryStackFields {
3061    #[prost(fixed32, optional, tag = "1")]
3062    pub stack_hash: ::core::option::Option<u32>,
3063    #[prost(bytes = "vec", optional, tag = "5")]
3064    pub packed_fields: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3065}
3066#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
3067pub struct CMsgClothStiffenAnimEvent {
3068    #[prost(int32, optional, tag = "1", default = "-1")]
3069    pub source_entity_index: ::core::option::Option<i32>,
3070    #[prost(int32, optional, tag = "2")]
3071    pub vertex_set_hash: ::core::option::Option<i32>,
3072    #[prost(float, optional, tag = "3")]
3073    pub intensity: ::core::option::Option<f32>,
3074    #[prost(float, optional, tag = "4")]
3075    pub length: ::core::option::Option<f32>,
3076    #[prost(float, optional, tag = "5")]
3077    pub speed_in: ::core::option::Option<f32>,
3078    #[prost(float, optional, tag = "6")]
3079    pub speed_out: ::core::option::Option<f32>,
3080}
3081#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3082pub struct CMsgClothEffectAnimEvent {
3083    #[prost(int32, optional, tag = "1", default = "-1")]
3084    pub source_entity_index: ::core::option::Option<i32>,
3085    #[prost(int32, optional, tag = "2")]
3086    pub effect_name_hash: ::core::option::Option<i32>,
3087    #[prost(int32, optional, tag = "3")]
3088    pub operation: ::core::option::Option<i32>,
3089    #[prost(int32, optional, tag = "4")]
3090    pub flags: ::core::option::Option<i32>,
3091    #[prost(string, optional, tag = "5")]
3092    pub tags: ::core::option::Option<::prost::alloc::string::String>,
3093    #[prost(message, optional, tag = "6")]
3094    pub pte: ::core::option::Option<CMsgVector>,
3095}
3096#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3097#[repr(i32)]
3098pub enum EBaseGameEvents {
3099    GeVDebugGameSessionIdEvent = 200,
3100    GePlaceDecalEvent = 201,
3101    GeClearWorldDecalsEvent = 202,
3102    GeClearEntityDecalsEvent = 203,
3103    GeClearDecalsForEntityEvent = 204,
3104    GeSource1LegacyGameEventList = 205,
3105    GeSource1LegacyListenEvents = 206,
3106    GeSource1LegacyGameEvent = 207,
3107    GeSosStartSoundEvent = 208,
3108    GeSosStopSoundEvent = 209,
3109    GeSosSetSoundEventParams = 210,
3110    GeSosSetLibraryStackFields = 211,
3111    GeSosStopSoundEventHash = 212,
3112    GeClothStiffenAnimEvent = 213,
3113    GeClothEffectAnimEvent = 214,
3114}
3115#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3116pub struct CMsgSource2SystemSpecs {
3117    #[prost(string, optional, tag = "1")]
3118    pub cpu_id: ::core::option::Option<::prost::alloc::string::String>,
3119    #[prost(string, optional, tag = "2")]
3120    pub cpu_brand: ::core::option::Option<::prost::alloc::string::String>,
3121    #[prost(uint32, optional, tag = "3")]
3122    pub cpu_model: ::core::option::Option<u32>,
3123    #[prost(uint32, optional, tag = "4")]
3124    pub cpu_num_physical: ::core::option::Option<u32>,
3125    #[prost(uint32, optional, tag = "21")]
3126    pub ram_physical_total_mb: ::core::option::Option<u32>,
3127    #[prost(string, optional, tag = "41")]
3128    pub gpu_rendersystem_dll_name: ::core::option::Option<::prost::alloc::string::String>,
3129    #[prost(uint32, optional, tag = "42")]
3130    pub gpu_vendor_id: ::core::option::Option<u32>,
3131    #[prost(string, optional, tag = "43")]
3132    pub gpu_driver_name: ::core::option::Option<::prost::alloc::string::String>,
3133    #[prost(uint32, optional, tag = "44")]
3134    pub gpu_driver_version_high: ::core::option::Option<u32>,
3135    #[prost(uint32, optional, tag = "45")]
3136    pub gpu_driver_version_low: ::core::option::Option<u32>,
3137    #[prost(uint32, optional, tag = "46")]
3138    pub gpu_dx_support_level: ::core::option::Option<u32>,
3139    #[prost(uint32, optional, tag = "47")]
3140    pub gpu_texture_memory_size_mb: ::core::option::Option<u32>,
3141    #[prost(uint32, optional, tag = "51")]
3142    pub backbuffer_width: ::core::option::Option<u32>,
3143    #[prost(uint32, optional, tag = "52")]
3144    pub backbuffer_height: ::core::option::Option<u32>,
3145}
3146#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3147pub struct CMsgSource2VProfLiteReportItem {
3148    #[prost(string, optional, tag = "1")]
3149    pub name: ::core::option::Option<::prost::alloc::string::String>,
3150    #[prost(uint32, optional, tag = "2")]
3151    pub active_samples: ::core::option::Option<u32>,
3152    #[prost(uint32, optional, tag = "4")]
3153    pub active_samples_1secmax: ::core::option::Option<u32>,
3154    #[prost(uint32, optional, tag = "3")]
3155    pub usec_max: ::core::option::Option<u32>,
3156    #[prost(uint32, optional, tag = "11")]
3157    pub usec_avg_active: ::core::option::Option<u32>,
3158    #[prost(uint32, optional, tag = "12")]
3159    pub usec_p50_active: ::core::option::Option<u32>,
3160    #[prost(uint32, optional, tag = "13")]
3161    pub usec_p99_active: ::core::option::Option<u32>,
3162    #[prost(uint32, optional, tag = "21")]
3163    pub usec_avg_all: ::core::option::Option<u32>,
3164    #[prost(uint32, optional, tag = "22")]
3165    pub usec_p50_all: ::core::option::Option<u32>,
3166    #[prost(uint32, optional, tag = "23")]
3167    pub usec_p99_all: ::core::option::Option<u32>,
3168    #[prost(uint32, optional, tag = "31")]
3169    pub usec_1secmax_avg_active: ::core::option::Option<u32>,
3170    #[prost(uint32, optional, tag = "32")]
3171    pub usec_1secmax_p50_active: ::core::option::Option<u32>,
3172    #[prost(uint32, optional, tag = "33")]
3173    pub usec_1secmax_p95_active: ::core::option::Option<u32>,
3174    #[prost(uint32, optional, tag = "34")]
3175    pub usec_1secmax_p99_active: ::core::option::Option<u32>,
3176    #[prost(uint32, optional, tag = "41")]
3177    pub usec_1secmax_avg_all: ::core::option::Option<u32>,
3178    #[prost(uint32, optional, tag = "42")]
3179    pub usec_1secmax_p50_all: ::core::option::Option<u32>,
3180    #[prost(uint32, optional, tag = "43")]
3181    pub usec_1secmax_p95_all: ::core::option::Option<u32>,
3182    #[prost(uint32, optional, tag = "44")]
3183    pub usec_1secmax_p99_all: ::core::option::Option<u32>,
3184}
3185#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3186pub struct CMsgSource2VProfLiteReport {
3187    #[prost(message, optional, tag = "1")]
3188    pub total: ::core::option::Option<CMsgSource2VProfLiteReportItem>,
3189    #[prost(message, repeated, tag = "2")]
3190    pub items: ::prost::alloc::vec::Vec<CMsgSource2VProfLiteReportItem>,
3191    #[prost(uint32, optional, tag = "3")]
3192    pub discarded_frames: ::core::option::Option<u32>,
3193}
3194#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3195pub struct CMsgSource2NetworkFlowQuality {
3196    #[prost(uint32, optional, tag = "1")]
3197    pub duration: ::core::option::Option<u32>,
3198    #[prost(uint64, optional, tag = "5")]
3199    pub bytes_total: ::core::option::Option<u64>,
3200    #[prost(uint64, optional, tag = "6")]
3201    pub bytes_total_reliable: ::core::option::Option<u64>,
3202    #[prost(uint64, optional, tag = "7")]
3203    pub bytes_total_voice: ::core::option::Option<u64>,
3204    #[prost(uint32, optional, tag = "10")]
3205    pub bytes_sec_p95: ::core::option::Option<u32>,
3206    #[prost(uint32, optional, tag = "11")]
3207    pub bytes_sec_p99: ::core::option::Option<u32>,
3208    #[prost(uint32, optional, tag = "20")]
3209    pub enginemsgs_total: ::core::option::Option<u32>,
3210    #[prost(uint32, optional, tag = "21")]
3211    pub enginemsgs_sec_p95: ::core::option::Option<u32>,
3212    #[prost(uint32, optional, tag = "22")]
3213    pub enginemsgs_sec_p99: ::core::option::Option<u32>,
3214    #[prost(uint32, optional, tag = "30")]
3215    pub netframes_total: ::core::option::Option<u32>,
3216    #[prost(uint32, optional, tag = "31")]
3217    pub netframes_dropped: ::core::option::Option<u32>,
3218    #[prost(uint32, optional, tag = "32")]
3219    pub netframes_outoforder: ::core::option::Option<u32>,
3220    #[prost(uint32, optional, tag = "34")]
3221    pub netframes_size_exceeds_mtu: ::core::option::Option<u32>,
3222    #[prost(uint32, optional, tag = "35")]
3223    pub netframes_size_p95: ::core::option::Option<u32>,
3224    #[prost(uint32, optional, tag = "36")]
3225    pub netframes_size_p99: ::core::option::Option<u32>,
3226    #[prost(uint32, optional, tag = "40")]
3227    pub ticks_total: ::core::option::Option<u32>,
3228    #[prost(uint32, optional, tag = "41")]
3229    pub ticks_good: ::core::option::Option<u32>,
3230    #[prost(uint32, optional, tag = "42")]
3231    pub ticks_good_almost_late: ::core::option::Option<u32>,
3232    #[prost(uint32, optional, tag = "43")]
3233    pub ticks_fixed_dropped: ::core::option::Option<u32>,
3234    #[prost(uint32, optional, tag = "44")]
3235    pub ticks_fixed_late: ::core::option::Option<u32>,
3236    #[prost(uint32, optional, tag = "45")]
3237    pub ticks_bad_dropped: ::core::option::Option<u32>,
3238    #[prost(uint32, optional, tag = "46")]
3239    pub ticks_bad_late: ::core::option::Option<u32>,
3240    #[prost(uint32, optional, tag = "47")]
3241    pub ticks_bad_other: ::core::option::Option<u32>,
3242    #[prost(uint32, optional, tag = "50")]
3243    pub tick_missrate_samples_total: ::core::option::Option<u32>,
3244    #[prost(uint32, optional, tag = "51")]
3245    pub tick_missrate_samples_perfect: ::core::option::Option<u32>,
3246    #[prost(uint32, optional, tag = "52")]
3247    pub tick_missrate_samples_perfectnet: ::core::option::Option<u32>,
3248    #[prost(uint32, optional, tag = "53")]
3249    pub tick_missratenet_p75_x10: ::core::option::Option<u32>,
3250    #[prost(uint32, optional, tag = "54")]
3251    pub tick_missratenet_p95_x10: ::core::option::Option<u32>,
3252    #[prost(uint32, optional, tag = "55")]
3253    pub tick_missratenet_p99_x10: ::core::option::Option<u32>,
3254    #[prost(sint32, optional, tag = "61")]
3255    pub recvmargin_p1: ::core::option::Option<i32>,
3256    #[prost(sint32, optional, tag = "62")]
3257    pub recvmargin_p5: ::core::option::Option<i32>,
3258    #[prost(sint32, optional, tag = "63")]
3259    pub recvmargin_p25: ::core::option::Option<i32>,
3260    #[prost(sint32, optional, tag = "64")]
3261    pub recvmargin_p50: ::core::option::Option<i32>,
3262    #[prost(sint32, optional, tag = "65")]
3263    pub recvmargin_p75: ::core::option::Option<i32>,
3264    #[prost(sint32, optional, tag = "66")]
3265    pub recvmargin_p95: ::core::option::Option<i32>,
3266    #[prost(uint32, optional, tag = "70")]
3267    pub netframe_jitter_p50: ::core::option::Option<u32>,
3268    #[prost(uint32, optional, tag = "71")]
3269    pub netframe_jitter_p99: ::core::option::Option<u32>,
3270    #[prost(uint32, optional, tag = "72")]
3271    pub interval_peakjitter_p50: ::core::option::Option<u32>,
3272    #[prost(uint32, optional, tag = "73")]
3273    pub interval_peakjitter_p95: ::core::option::Option<u32>,
3274    #[prost(uint32, optional, tag = "74")]
3275    pub packet_misdelivery_rate_p50_x4: ::core::option::Option<u32>,
3276    #[prost(uint32, optional, tag = "75")]
3277    pub packet_misdelivery_rate_p95_x4: ::core::option::Option<u32>,
3278    #[prost(uint32, optional, tag = "80")]
3279    pub net_ping_p5: ::core::option::Option<u32>,
3280    #[prost(uint32, optional, tag = "81")]
3281    pub net_ping_p50: ::core::option::Option<u32>,
3282    #[prost(uint32, optional, tag = "82")]
3283    pub net_ping_p95: ::core::option::Option<u32>,
3284}
3285#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3286pub struct CMsgSource2PerfIntervalSample {
3287    #[prost(float, optional, tag = "1")]
3288    pub frame_time_max_ms: ::core::option::Option<f32>,
3289    #[prost(float, optional, tag = "2")]
3290    pub frame_time_avg_ms: ::core::option::Option<f32>,
3291    #[prost(float, optional, tag = "3")]
3292    pub frame_time_min_ms: ::core::option::Option<f32>,
3293    #[prost(int32, optional, tag = "4")]
3294    pub frame_count: ::core::option::Option<i32>,
3295    #[prost(float, optional, tag = "5")]
3296    pub frame_time_total_ms: ::core::option::Option<f32>,
3297    #[prost(message, repeated, tag = "6")]
3298    pub tags: ::prost::alloc::vec::Vec<c_msg_source2_perf_interval_sample::Tag>,
3299}
3300pub mod c_msg_source2_perf_interval_sample {
3301    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3302    pub struct Tag {
3303        #[prost(string, optional, tag = "1")]
3304        pub tag: ::core::option::Option<::prost::alloc::string::String>,
3305        #[prost(uint32, optional, tag = "2")]
3306        pub max_value: ::core::option::Option<u32>,
3307    }
3308}
3309#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3310pub struct CSource2MetricsMatchPerfSummaryNotification {
3311    #[prost(uint32, optional, tag = "1")]
3312    pub appid: ::core::option::Option<u32>,
3313    #[prost(string, optional, tag = "2")]
3314    pub game_mode: ::core::option::Option<::prost::alloc::string::String>,
3315    #[prost(uint32, optional, tag = "3")]
3316    pub server_build_id: ::core::option::Option<u32>,
3317    #[prost(fixed32, optional, tag = "4")]
3318    pub server_popid: ::core::option::Option<u32>,
3319    #[prost(message, optional, tag = "10")]
3320    pub server_profile: ::core::option::Option<CMsgSource2VProfLiteReport>,
3321    #[prost(message, repeated, tag = "11")]
3322    pub clients: ::prost::alloc::vec::Vec<c_source2_metrics_match_perf_summary_notification::Client>,
3323    #[prost(string, optional, tag = "20")]
3324    pub map: ::core::option::Option<::prost::alloc::string::String>,
3325}
3326pub mod c_source2_metrics_match_perf_summary_notification {
3327    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3328    pub struct Client {
3329        #[prost(message, optional, tag = "1")]
3330        pub system_specs: ::core::option::Option<super::CMsgSource2SystemSpecs>,
3331        #[prost(message, optional, tag = "2")]
3332        pub profile: ::core::option::Option<super::CMsgSource2VProfLiteReport>,
3333        #[prost(uint32, optional, tag = "3")]
3334        pub build_id: ::core::option::Option<u32>,
3335        #[prost(message, optional, tag = "4")]
3336        pub downstream_flow: ::core::option::Option<super::CMsgSource2NetworkFlowQuality>,
3337        #[prost(message, optional, tag = "5")]
3338        pub upstream_flow: ::core::option::Option<super::CMsgSource2NetworkFlowQuality>,
3339        #[prost(fixed64, optional, tag = "10")]
3340        pub steamid: ::core::option::Option<u64>,
3341        #[prost(message, repeated, tag = "11")]
3342        pub perf_samples: ::prost::alloc::vec::Vec<super::CMsgSource2PerfIntervalSample>,
3343    }
3344}
3345#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3346pub struct CMsgSource2PlayStatsPackedRecordList {
3347    #[prost(string, optional, tag = "1")]
3348    pub record_name: ::core::option::Option<::prost::alloc::string::String>,
3349    #[prost(message, repeated, tag = "2")]
3350    pub field_defs: ::prost::alloc::vec::Vec<c_msg_source2_play_stats_packed_record_list::FieldDef>,
3351    #[prost(uint32, optional, tag = "3")]
3352    pub record_count: ::core::option::Option<u32>,
3353    #[prost(uint64, repeated, tag = "4")]
3354    pub uint64_vals: ::prost::alloc::vec::Vec<u64>,
3355    #[prost(uint32, repeated, tag = "5")]
3356    pub uint32_vals: ::prost::alloc::vec::Vec<u32>,
3357    #[prost(uint32, repeated, tag = "6")]
3358    pub uint16_vals: ::prost::alloc::vec::Vec<u32>,
3359    #[prost(uint32, repeated, tag = "7")]
3360    pub uint8_vals: ::prost::alloc::vec::Vec<u32>,
3361    #[prost(int64, repeated, tag = "8")]
3362    pub int64_vals: ::prost::alloc::vec::Vec<i64>,
3363    #[prost(int32, repeated, tag = "9")]
3364    pub int32_vals: ::prost::alloc::vec::Vec<i32>,
3365    #[prost(int32, repeated, tag = "10")]
3366    pub int16_vals: ::prost::alloc::vec::Vec<i32>,
3367    #[prost(int32, repeated, tag = "11")]
3368    pub int8_vals: ::prost::alloc::vec::Vec<i32>,
3369    #[prost(double, repeated, tag = "12")]
3370    pub float64_vals: ::prost::alloc::vec::Vec<f64>,
3371    #[prost(float, repeated, tag = "13")]
3372    pub float32_vals: ::prost::alloc::vec::Vec<f32>,
3373    #[prost(bool, repeated, tag = "14")]
3374    pub bool_vals: ::prost::alloc::vec::Vec<bool>,
3375    #[prost(string, repeated, tag = "15")]
3376    pub string_vals: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3377    #[prost(string, repeated, tag = "16")]
3378    pub low_cardinality_string_vals: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3379    #[prost(fixed32, repeated, tag = "17")]
3380    pub utcdatetime_vals: ::prost::alloc::vec::Vec<u32>,
3381    #[prost(fixed64, repeated, tag = "18")]
3382    pub steamidtrustbucket_vals: ::prost::alloc::vec::Vec<u64>,
3383    #[prost(message, repeated, tag = "19")]
3384    pub trustbucket_vals: ::prost::alloc::vec::Vec<c_msg_source2_play_stats_packed_record_list::SteamIdList>,
3385    #[prost(uint64, repeated, tag = "20")]
3386    pub steamid_vals: ::prost::alloc::vec::Vec<u64>,
3387}
3388pub mod c_msg_source2_play_stats_packed_record_list {
3389    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3390    pub struct FieldDef {
3391        #[prost(string, optional, tag = "1")]
3392        pub field_name: ::core::option::Option<::prost::alloc::string::String>,
3393        #[prost(
3394            enumeration = "super::ESource2PlayStatsFieldType",
3395            optional,
3396            tag = "2",
3397            default = "Source2PlayStatsInvalid"
3398        )]
3399        pub field_type: ::core::option::Option<i32>,
3400    }
3401    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3402    pub struct SteamIdList {
3403        #[prost(fixed64, repeated, tag = "1")]
3404        pub steamid: ::prost::alloc::vec::Vec<u64>,
3405    }
3406}
3407#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3408pub struct CSource2MetricsRecordPlayStatsNotification {
3409    #[prost(message, repeated, tag = "1")]
3410    pub record_types: ::prost::alloc::vec::Vec<CMsgSource2PlayStatsPackedRecordList>,
3411    #[prost(uint32, optional, tag = "2")]
3412    pub appid: ::core::option::Option<u32>,
3413}
3414#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3415pub struct CSource2MetricsFetchMapDataRequest {
3416    #[prost(uint32, optional, tag = "1")]
3417    pub appid: ::core::option::Option<u32>,
3418    #[prost(string, optional, tag = "2")]
3419    pub map_name: ::core::option::Option<::prost::alloc::string::String>,
3420    #[prost(uint32, optional, tag = "3")]
3421    pub game_type: ::core::option::Option<u32>,
3422    #[prost(uint32, optional, tag = "4")]
3423    pub game_mode: ::core::option::Option<u32>,
3424    #[prost(string, optional, tag = "5")]
3425    pub param: ::core::option::Option<::prost::alloc::string::String>,
3426    #[prost(uint32, optional, tag = "6")]
3427    pub time_span: ::core::option::Option<u32>,
3428}
3429#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3430pub struct CSource2MetricsFetchMapDataResponse {
3431    #[prost(message, repeated, tag = "1")]
3432    pub results: ::prost::alloc::vec::Vec<c_source2_metrics_fetch_map_data_response::MapData>,
3433}
3434pub mod c_source2_metrics_fetch_map_data_response {
3435    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3436    pub struct MapData {
3437        #[prost(string, optional, tag = "1")]
3438        pub name: ::core::option::Option<::prost::alloc::string::String>,
3439        #[prost(string, optional, tag = "2")]
3440        pub r#type: ::core::option::Option<::prost::alloc::string::String>,
3441        #[prost(string, optional, tag = "3")]
3442        pub data: ::core::option::Option<::prost::alloc::string::String>,
3443    }
3444}
3445#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3446pub struct CUserMessageUserSentBugBug {
3447    #[prost(string, optional, tag = "1")]
3448    pub command_line: ::core::option::Option<::prost::alloc::string::String>,
3449    #[prost(string, optional, tag = "2")]
3450    pub autoexec_cfg: ::core::option::Option<::prost::alloc::string::String>,
3451    #[prost(message, optional, tag = "3")]
3452    pub system_specs: ::core::option::Option<CMsgSource2SystemSpecs>,
3453    #[prost(uint32, optional, tag = "4")]
3454    pub build_id: ::core::option::Option<u32>,
3455    #[prost(int32, optional, tag = "5")]
3456    pub osversion: ::core::option::Option<i32>,
3457    #[prost(string, optional, tag = "6")]
3458    pub command_logs: ::core::option::Option<::prost::alloc::string::String>,
3459    #[prost(int32, optional, tag = "7")]
3460    pub bugbug_no: ::core::option::Option<i32>,
3461}
3462#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3463#[repr(i32)]
3464pub enum ESource2PlayStatsFieldType {
3465    Source2PlayStatsInvalid = 0,
3466    Source2PlayStatsUInt64 = 1,
3467    Source2PlayStatsUInt32 = 2,
3468    Source2PlayStatsUInt16 = 3,
3469    Source2PlayStatsUInt8 = 4,
3470    Source2PlayStatsInt64 = 5,
3471    Source2PlayStatsInt32 = 6,
3472    Source2PlayStatsInt16 = 7,
3473    Source2PlayStatsInt8 = 8,
3474    Source2PlayStatsFloat64 = 9,
3475    Source2PlayStatsFloat32 = 10,
3476    Source2PlayStatsBool = 11,
3477    Source2PlayStatsString = 12,
3478    Source2PlayStatsLowCardinalityString = 13,
3479    Source2PlayStatsUtcDateTime = 14,
3480    Source2PlayStatsSteamIdTrustBucket = 15,
3481    Source2PlayStatsSteamIdTrustBucketMin = 16,
3482    Source2PlayStatsSteamId = 17,
3483}
3484#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3485pub struct CclcMsgClientInfo {
3486    #[prost(fixed32, optional, tag = "1")]
3487    pub send_table_crc: ::core::option::Option<u32>,
3488    #[prost(uint32, optional, tag = "2")]
3489    pub server_count: ::core::option::Option<u32>,
3490    #[prost(bool, optional, tag = "3")]
3491    pub is_hltv: ::core::option::Option<bool>,
3492    #[prost(uint32, optional, tag = "5")]
3493    pub friends_id: ::core::option::Option<u32>,
3494    #[prost(string, optional, tag = "6")]
3495    pub friends_name: ::core::option::Option<::prost::alloc::string::String>,
3496}
3497#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3498pub struct CclcMsgMove {
3499    #[prost(bytes = "vec", optional, tag = "3")]
3500    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3501    #[prost(uint32, optional, tag = "4")]
3502    pub last_command_number: ::core::option::Option<u32>,
3503}
3504#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3505pub struct CMsgVoiceAudio {
3506    #[prost(enumeration = "VoiceDataFormatT", optional, tag = "1", default = "VoicedataFormatSteam")]
3507    pub format: ::core::option::Option<i32>,
3508    #[prost(bytes = "vec", optional, tag = "2")]
3509    pub voice_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3510    #[prost(int32, optional, tag = "3")]
3511    pub sequence_bytes: ::core::option::Option<i32>,
3512    #[prost(uint32, optional, tag = "4")]
3513    pub section_number: ::core::option::Option<u32>,
3514    #[prost(uint32, optional, tag = "5")]
3515    pub sample_rate: ::core::option::Option<u32>,
3516    #[prost(uint32, optional, tag = "6")]
3517    pub uncompressed_sample_offset: ::core::option::Option<u32>,
3518    #[prost(uint32, optional, tag = "7")]
3519    pub num_packets: ::core::option::Option<u32>,
3520    #[prost(uint32, repeated, tag = "8")]
3521    pub packet_offsets: ::prost::alloc::vec::Vec<u32>,
3522    #[prost(float, optional, tag = "9")]
3523    pub voice_level: ::core::option::Option<f32>,
3524}
3525#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3526pub struct CclcMsgVoiceData {
3527    #[prost(message, optional, tag = "1")]
3528    pub audio: ::core::option::Option<CMsgVoiceAudio>,
3529    #[prost(fixed64, optional, tag = "2")]
3530    pub xuid: ::core::option::Option<u64>,
3531    #[prost(uint32, optional, tag = "3")]
3532    pub tick: ::core::option::Option<u32>,
3533}
3534#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3535pub struct CclcMsgBaselineAck {
3536    #[prost(int32, optional, tag = "1")]
3537    pub baseline_tick: ::core::option::Option<i32>,
3538    #[prost(int32, optional, tag = "2")]
3539    pub baseline_nr: ::core::option::Option<i32>,
3540}
3541#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3542pub struct CclcMsgListenEvents {
3543    #[prost(fixed32, repeated, packed = "false", tag = "1")]
3544    pub event_mask: ::prost::alloc::vec::Vec<u32>,
3545}
3546#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3547pub struct CclcMsgRespondCvarValue {
3548    #[prost(int32, optional, tag = "1")]
3549    pub cookie: ::core::option::Option<i32>,
3550    #[prost(int32, optional, tag = "2")]
3551    pub status_code: ::core::option::Option<i32>,
3552    #[prost(string, optional, tag = "3")]
3553    pub name: ::core::option::Option<::prost::alloc::string::String>,
3554    #[prost(string, optional, tag = "4")]
3555    pub value: ::core::option::Option<::prost::alloc::string::String>,
3556}
3557#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3558pub struct CclcMsgLoadingProgress {
3559    #[prost(int32, optional, tag = "1")]
3560    pub progress: ::core::option::Option<i32>,
3561}
3562#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3563pub struct CclcMsgSplitPlayerConnect {
3564    #[prost(string, optional, tag = "1")]
3565    pub playername: ::core::option::Option<::prost::alloc::string::String>,
3566}
3567#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3568pub struct CclcMsgSplitPlayerDisconnect {
3569    #[prost(int32, optional, tag = "1")]
3570    pub slot: ::core::option::Option<i32>,
3571}
3572#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3573pub struct CclcMsgServerStatus {
3574    #[prost(bool, optional, tag = "1")]
3575    pub simplified: ::core::option::Option<bool>,
3576}
3577#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3578pub struct CclcMsgRequestPause {
3579    #[prost(enumeration = "RequestPauseT", optional, tag = "1", default = "RpPause")]
3580    pub pause_type: ::core::option::Option<i32>,
3581    #[prost(int32, optional, tag = "2")]
3582    pub pause_group: ::core::option::Option<i32>,
3583}
3584#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3585pub struct CclcMsgCmdKeyValues {
3586    #[prost(bytes = "vec", optional, tag = "1")]
3587    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3588}
3589#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3590pub struct CclcMsgRconServerDetails {
3591    #[prost(bytes = "vec", optional, tag = "1")]
3592    pub token: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3593}
3594#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3595pub struct CclcMsgDiagnostic {
3596    #[prost(message, optional, tag = "1")]
3597    pub system_specs: ::core::option::Option<CMsgSource2SystemSpecs>,
3598    #[prost(message, optional, tag = "2")]
3599    pub vprof_report: ::core::option::Option<CMsgSource2VProfLiteReport>,
3600    #[prost(message, optional, tag = "3")]
3601    pub downstream_flow: ::core::option::Option<CMsgSource2NetworkFlowQuality>,
3602    #[prost(message, optional, tag = "4")]
3603    pub upstream_flow: ::core::option::Option<CMsgSource2NetworkFlowQuality>,
3604    #[prost(message, repeated, tag = "5")]
3605    pub perf_samples: ::prost::alloc::vec::Vec<CMsgSource2PerfIntervalSample>,
3606}
3607#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3608pub struct CSvcMsgServerInfo {
3609    #[prost(int32, optional, tag = "1")]
3610    pub protocol: ::core::option::Option<i32>,
3611    #[prost(int32, optional, tag = "2")]
3612    pub server_count: ::core::option::Option<i32>,
3613    #[prost(bool, optional, tag = "3")]
3614    pub is_dedicated: ::core::option::Option<bool>,
3615    #[prost(bool, optional, tag = "4")]
3616    pub is_hltv: ::core::option::Option<bool>,
3617    #[prost(int32, optional, tag = "6")]
3618    pub c_os: ::core::option::Option<i32>,
3619    #[prost(int32, optional, tag = "10")]
3620    pub max_clients: ::core::option::Option<i32>,
3621    #[prost(int32, optional, tag = "11")]
3622    pub max_classes: ::core::option::Option<i32>,
3623    #[prost(int32, optional, tag = "12", default = "-1")]
3624    pub player_slot: ::core::option::Option<i32>,
3625    #[prost(float, optional, tag = "13")]
3626    pub tick_interval: ::core::option::Option<f32>,
3627    #[prost(string, optional, tag = "14")]
3628    pub game_dir: ::core::option::Option<::prost::alloc::string::String>,
3629    #[prost(string, optional, tag = "15")]
3630    pub map_name: ::core::option::Option<::prost::alloc::string::String>,
3631    #[prost(string, optional, tag = "16")]
3632    pub sky_name: ::core::option::Option<::prost::alloc::string::String>,
3633    #[prost(string, optional, tag = "17")]
3634    pub host_name: ::core::option::Option<::prost::alloc::string::String>,
3635    #[prost(string, optional, tag = "18")]
3636    pub addon_name: ::core::option::Option<::prost::alloc::string::String>,
3637    #[prost(message, optional, tag = "19")]
3638    pub game_session_config: ::core::option::Option<CSvcMsgGameSessionConfiguration>,
3639    #[prost(bytes = "vec", optional, tag = "20")]
3640    pub game_session_manifest: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3641}
3642#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3643pub struct CSvcMsgClassInfo {
3644    #[prost(bool, optional, tag = "1")]
3645    pub create_on_client: ::core::option::Option<bool>,
3646    #[prost(message, repeated, tag = "2")]
3647    pub classes: ::prost::alloc::vec::Vec<csvc_msg_class_info::ClassT>,
3648}
3649pub mod csvc_msg_class_info {
3650    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3651    pub struct ClassT {
3652        #[prost(int32, optional, tag = "1")]
3653        pub class_id: ::core::option::Option<i32>,
3654        #[prost(string, optional, tag = "3")]
3655        pub class_name: ::core::option::Option<::prost::alloc::string::String>,
3656    }
3657}
3658#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3659pub struct CSvcMsgSetPause {
3660    #[prost(bool, optional, tag = "1")]
3661    pub paused: ::core::option::Option<bool>,
3662}
3663#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3664pub struct CSvcMsgVoiceInit {
3665    #[prost(int32, optional, tag = "1")]
3666    pub quality: ::core::option::Option<i32>,
3667    #[prost(string, optional, tag = "2")]
3668    pub codec: ::core::option::Option<::prost::alloc::string::String>,
3669    #[prost(int32, optional, tag = "3", default = "0")]
3670    pub version: ::core::option::Option<i32>,
3671}
3672#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3673pub struct CSvcMsgPrint {
3674    #[prost(string, optional, tag = "1")]
3675    pub text: ::core::option::Option<::prost::alloc::string::String>,
3676}
3677#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3678pub struct CSvcMsgSounds {
3679    #[prost(bool, optional, tag = "1")]
3680    pub reliable_sound: ::core::option::Option<bool>,
3681    #[prost(message, repeated, tag = "2")]
3682    pub sounds: ::prost::alloc::vec::Vec<csvc_msg_sounds::SounddataT>,
3683}
3684pub mod csvc_msg_sounds {
3685    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
3686    pub struct SounddataT {
3687        #[prost(sint32, optional, tag = "1")]
3688        pub origin_x: ::core::option::Option<i32>,
3689        #[prost(sint32, optional, tag = "2")]
3690        pub origin_y: ::core::option::Option<i32>,
3691        #[prost(sint32, optional, tag = "3")]
3692        pub origin_z: ::core::option::Option<i32>,
3693        #[prost(uint32, optional, tag = "4")]
3694        pub volume: ::core::option::Option<u32>,
3695        #[prost(float, optional, tag = "5")]
3696        pub delay_value: ::core::option::Option<f32>,
3697        #[prost(int32, optional, tag = "6")]
3698        pub sequence_number: ::core::option::Option<i32>,
3699        #[prost(int32, optional, tag = "7", default = "-1")]
3700        pub entity_index: ::core::option::Option<i32>,
3701        #[prost(int32, optional, tag = "8")]
3702        pub channel: ::core::option::Option<i32>,
3703        #[prost(int32, optional, tag = "9")]
3704        pub pitch: ::core::option::Option<i32>,
3705        #[prost(int32, optional, tag = "10")]
3706        pub flags: ::core::option::Option<i32>,
3707        #[prost(uint32, optional, tag = "11")]
3708        pub sound_num: ::core::option::Option<u32>,
3709        #[prost(fixed32, optional, tag = "12")]
3710        pub sound_num_handle: ::core::option::Option<u32>,
3711        #[prost(int32, optional, tag = "13")]
3712        pub speaker_entity: ::core::option::Option<i32>,
3713        #[prost(int32, optional, tag = "14")]
3714        pub random_seed: ::core::option::Option<i32>,
3715        #[prost(int32, optional, tag = "15")]
3716        pub sound_level: ::core::option::Option<i32>,
3717        #[prost(bool, optional, tag = "16")]
3718        pub is_sentence: ::core::option::Option<bool>,
3719        #[prost(bool, optional, tag = "17")]
3720        pub is_ambient: ::core::option::Option<bool>,
3721        #[prost(uint32, optional, tag = "18")]
3722        pub guid: ::core::option::Option<u32>,
3723        #[prost(fixed64, optional, tag = "19")]
3724        pub sound_resource_id: ::core::option::Option<u64>,
3725    }
3726}
3727#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3728pub struct CSvcMsgPrefetch {
3729    #[prost(int32, optional, tag = "1")]
3730    pub sound_index: ::core::option::Option<i32>,
3731    #[prost(enumeration = "PrefetchType", optional, tag = "2", default = "PftSound")]
3732    pub resource_type: ::core::option::Option<i32>,
3733}
3734#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3735pub struct CSvcMsgSetView {
3736    #[prost(int32, optional, tag = "1", default = "-1")]
3737    pub entity_index: ::core::option::Option<i32>,
3738    #[prost(int32, optional, tag = "2", default = "-1")]
3739    pub slot: ::core::option::Option<i32>,
3740}
3741#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
3742pub struct CSvcMsgFixAngle {
3743    #[prost(bool, optional, tag = "1")]
3744    pub relative: ::core::option::Option<bool>,
3745    #[prost(message, optional, tag = "2")]
3746    pub angle: ::core::option::Option<CMsgQAngle>,
3747}
3748#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
3749pub struct CSvcMsgCrosshairAngle {
3750    #[prost(message, optional, tag = "1")]
3751    pub angle: ::core::option::Option<CMsgQAngle>,
3752}
3753#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
3754pub struct CSvcMsgBspDecal {
3755    #[prost(message, optional, tag = "1")]
3756    pub pos: ::core::option::Option<CMsgVector>,
3757    #[prost(int32, optional, tag = "2")]
3758    pub decal_texture_index: ::core::option::Option<i32>,
3759    #[prost(int32, optional, tag = "3", default = "-1")]
3760    pub entity_index: ::core::option::Option<i32>,
3761    #[prost(int32, optional, tag = "4")]
3762    pub model_index: ::core::option::Option<i32>,
3763    #[prost(bool, optional, tag = "5")]
3764    pub low_priority: ::core::option::Option<bool>,
3765}
3766#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3767pub struct CSvcMsgSplitScreen {
3768    #[prost(enumeration = "ESplitScreenMessageType", optional, tag = "1", default = "MsgSplitscreenAdduser")]
3769    pub r#type: ::core::option::Option<i32>,
3770    #[prost(int32, optional, tag = "2")]
3771    pub slot: ::core::option::Option<i32>,
3772    #[prost(int32, optional, tag = "3", default = "-1")]
3773    pub player_index: ::core::option::Option<i32>,
3774}
3775#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3776pub struct CSvcMsgGetCvarValue {
3777    #[prost(int32, optional, tag = "1")]
3778    pub cookie: ::core::option::Option<i32>,
3779    #[prost(string, optional, tag = "2")]
3780    pub cvar_name: ::core::option::Option<::prost::alloc::string::String>,
3781}
3782#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3783pub struct CSvcMsgMenu {
3784    #[prost(int32, optional, tag = "1")]
3785    pub dialog_type: ::core::option::Option<i32>,
3786    #[prost(bytes = "vec", optional, tag = "2")]
3787    pub menu_key_values: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3788}
3789#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3790pub struct CSvcMsgUserMessage {
3791    #[prost(int32, optional, tag = "1")]
3792    pub msg_type: ::core::option::Option<i32>,
3793    #[prost(bytes = "vec", optional, tag = "2")]
3794    pub msg_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3795    #[prost(int32, optional, tag = "3")]
3796    pub passthrough: ::core::option::Option<i32>,
3797}
3798#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3799pub struct CSvcMsgSendTable {
3800    #[prost(bool, optional, tag = "1")]
3801    pub is_end: ::core::option::Option<bool>,
3802    #[prost(string, optional, tag = "2")]
3803    pub net_table_name: ::core::option::Option<::prost::alloc::string::String>,
3804    #[prost(bool, optional, tag = "3")]
3805    pub needs_decoder: ::core::option::Option<bool>,
3806    #[prost(message, repeated, tag = "4")]
3807    pub props: ::prost::alloc::vec::Vec<csvc_msg_send_table::SendpropT>,
3808}
3809pub mod csvc_msg_send_table {
3810    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3811    pub struct SendpropT {
3812        #[prost(int32, optional, tag = "1")]
3813        pub r#type: ::core::option::Option<i32>,
3814        #[prost(string, optional, tag = "2")]
3815        pub var_name: ::core::option::Option<::prost::alloc::string::String>,
3816        #[prost(int32, optional, tag = "3")]
3817        pub flags: ::core::option::Option<i32>,
3818        #[prost(int32, optional, tag = "4")]
3819        pub priority: ::core::option::Option<i32>,
3820        #[prost(string, optional, tag = "5")]
3821        pub dt_name: ::core::option::Option<::prost::alloc::string::String>,
3822        #[prost(int32, optional, tag = "6")]
3823        pub num_elements: ::core::option::Option<i32>,
3824        #[prost(float, optional, tag = "7")]
3825        pub low_value: ::core::option::Option<f32>,
3826        #[prost(float, optional, tag = "8")]
3827        pub high_value: ::core::option::Option<f32>,
3828        #[prost(int32, optional, tag = "9")]
3829        pub num_bits: ::core::option::Option<i32>,
3830    }
3831}
3832#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3833pub struct CSvcMsgGameEventList {
3834    #[prost(message, repeated, tag = "1")]
3835    pub descriptors: ::prost::alloc::vec::Vec<csvc_msg_game_event_list::DescriptorT>,
3836}
3837pub mod csvc_msg_game_event_list {
3838    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3839    pub struct KeyT {
3840        #[prost(int32, optional, tag = "1")]
3841        pub r#type: ::core::option::Option<i32>,
3842        #[prost(string, optional, tag = "2")]
3843        pub name: ::core::option::Option<::prost::alloc::string::String>,
3844    }
3845    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3846    pub struct DescriptorT {
3847        #[prost(int32, optional, tag = "1")]
3848        pub eventid: ::core::option::Option<i32>,
3849        #[prost(string, optional, tag = "2")]
3850        pub name: ::core::option::Option<::prost::alloc::string::String>,
3851        #[prost(message, repeated, tag = "3")]
3852        pub keys: ::prost::alloc::vec::Vec<KeyT>,
3853    }
3854}
3855#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3856pub struct CSvcMsgPacketEntities {
3857    #[prost(int32, optional, tag = "1")]
3858    pub max_entries: ::core::option::Option<i32>,
3859    #[prost(int32, optional, tag = "2")]
3860    pub updated_entries: ::core::option::Option<i32>,
3861    #[prost(bool, optional, tag = "3")]
3862    pub legacy_is_delta: ::core::option::Option<bool>,
3863    #[prost(bool, optional, tag = "4")]
3864    pub update_baseline: ::core::option::Option<bool>,
3865    #[prost(int32, optional, tag = "5")]
3866    pub baseline: ::core::option::Option<i32>,
3867    #[prost(int32, optional, tag = "6")]
3868    pub delta_from: ::core::option::Option<i32>,
3869    #[prost(bytes = "vec", optional, tag = "7")]
3870    pub entity_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3871    #[prost(bool, optional, tag = "8")]
3872    pub pending_full_frame: ::core::option::Option<bool>,
3873    #[prost(uint32, optional, tag = "9")]
3874    pub active_spawngroup_handle: ::core::option::Option<u32>,
3875    #[prost(uint32, optional, tag = "10")]
3876    pub max_spawngroup_creationsequence: ::core::option::Option<u32>,
3877    #[prost(uint32, optional, tag = "11")]
3878    pub last_cmd_number_executed: ::core::option::Option<u32>,
3879    #[prost(sint32, optional, tag = "17")]
3880    pub last_cmd_number_recv_delta: ::core::option::Option<i32>,
3881    #[prost(uint32, optional, tag = "12")]
3882    pub server_tick: ::core::option::Option<u32>,
3883    #[prost(bytes = "vec", optional, tag = "13")]
3884    pub serialized_entities: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3885    #[prost(message, repeated, tag = "15")]
3886    pub alternate_baselines: ::prost::alloc::vec::Vec<csvc_msg_packet_entities::AlternateBaselineT>,
3887    #[prost(uint32, optional, tag = "16")]
3888    pub has_pvs_vis_bits_deprecated: ::core::option::Option<u32>,
3889    #[prost(sint32, repeated, tag = "22")]
3890    pub cmd_recv_status: ::prost::alloc::vec::Vec<i32>,
3891    #[prost(message, optional, tag = "19")]
3892    pub non_transmitted_entities: ::core::option::Option<csvc_msg_packet_entities::NonTransmittedEntitiesT>,
3893    #[prost(uint32, optional, tag = "20")]
3894    pub cq_starved_command_ticks: ::core::option::Option<u32>,
3895    #[prost(uint32, optional, tag = "21")]
3896    pub cq_discarded_command_ticks: ::core::option::Option<u32>,
3897    #[prost(message, optional, tag = "23")]
3898    pub outofpvs_entity_updates: ::core::option::Option<csvc_msg_packet_entities::OutofpvsEntityUpdatesT>,
3899    #[prost(bytes = "vec", optional, tag = "999")]
3900    pub dev_padding: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3901}
3902pub mod csvc_msg_packet_entities {
3903    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3904    pub struct AlternateBaselineT {
3905        #[prost(int32, optional, tag = "1")]
3906        pub entity_index: ::core::option::Option<i32>,
3907        #[prost(int32, optional, tag = "2")]
3908        pub baseline_index: ::core::option::Option<i32>,
3909    }
3910    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3911    pub struct NonTransmittedEntitiesT {
3912        #[prost(int32, optional, tag = "1")]
3913        pub header_count: ::core::option::Option<i32>,
3914        #[prost(bytes = "vec", optional, tag = "2")]
3915        pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3916    }
3917    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3918    pub struct OutofpvsEntityUpdatesT {
3919        #[prost(int32, optional, tag = "1")]
3920        pub count: ::core::option::Option<i32>,
3921        #[prost(bytes = "vec", optional, tag = "2")]
3922        pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3923    }
3924}
3925#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3926pub struct CSvcMsgTempEntities {
3927    #[prost(bool, optional, tag = "1")]
3928    pub reliable: ::core::option::Option<bool>,
3929    #[prost(int32, optional, tag = "2")]
3930    pub num_entries: ::core::option::Option<i32>,
3931    #[prost(bytes = "vec", optional, tag = "3")]
3932    pub entity_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3933}
3934#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3935pub struct CSvcMsgCreateStringTable {
3936    #[prost(string, optional, tag = "1")]
3937    pub name: ::core::option::Option<::prost::alloc::string::String>,
3938    #[prost(int32, optional, tag = "2")]
3939    pub num_entries: ::core::option::Option<i32>,
3940    #[prost(bool, optional, tag = "3")]
3941    pub user_data_fixed_size: ::core::option::Option<bool>,
3942    #[prost(int32, optional, tag = "4")]
3943    pub user_data_size: ::core::option::Option<i32>,
3944    #[prost(int32, optional, tag = "5")]
3945    pub user_data_size_bits: ::core::option::Option<i32>,
3946    #[prost(int32, optional, tag = "6")]
3947    pub flags: ::core::option::Option<i32>,
3948    #[prost(bytes = "vec", optional, tag = "7")]
3949    pub string_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3950    #[prost(int32, optional, tag = "8")]
3951    pub uncompressed_size: ::core::option::Option<i32>,
3952    #[prost(bool, optional, tag = "9")]
3953    pub data_compressed: ::core::option::Option<bool>,
3954    #[prost(bool, optional, tag = "10")]
3955    pub using_varint_bitcounts: ::core::option::Option<bool>,
3956}
3957#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3958pub struct CSvcMsgUpdateStringTable {
3959    #[prost(int32, optional, tag = "1")]
3960    pub table_id: ::core::option::Option<i32>,
3961    #[prost(int32, optional, tag = "2")]
3962    pub num_changed_entries: ::core::option::Option<i32>,
3963    #[prost(bytes = "vec", optional, tag = "3")]
3964    pub string_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3965}
3966#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
3967pub struct CSvcMsgVoiceData {
3968    #[prost(message, optional, tag = "1")]
3969    pub audio: ::core::option::Option<CMsgVoiceAudio>,
3970    #[prost(int32, optional, tag = "2", default = "-1")]
3971    pub client_deprecated: ::core::option::Option<i32>,
3972    #[prost(bool, optional, tag = "3")]
3973    pub proximity: ::core::option::Option<bool>,
3974    #[prost(fixed64, optional, tag = "4")]
3975    pub xuid: ::core::option::Option<u64>,
3976    #[prost(int32, optional, tag = "5")]
3977    pub audible_mask: ::core::option::Option<i32>,
3978    #[prost(uint32, optional, tag = "6")]
3979    pub tick: ::core::option::Option<u32>,
3980    #[prost(int32, optional, tag = "7")]
3981    pub passthrough: ::core::option::Option<i32>,
3982    #[prost(int32, optional, tag = "8", default = "-1")]
3983    pub entity: ::core::option::Option<i32>,
3984}
3985#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
3986pub struct CSvcMsgPacketReliable {
3987    #[prost(int32, optional, tag = "1")]
3988    pub tick: ::core::option::Option<i32>,
3989    #[prost(int32, optional, tag = "2")]
3990    pub messagessize: ::core::option::Option<i32>,
3991    #[prost(bool, optional, tag = "3")]
3992    pub state: ::core::option::Option<bool>,
3993}
3994#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
3995pub struct CSvcMsgFullFrameSplit {
3996    #[prost(int32, optional, tag = "1")]
3997    pub tick: ::core::option::Option<i32>,
3998    #[prost(int32, optional, tag = "2")]
3999    pub section: ::core::option::Option<i32>,
4000    #[prost(int32, optional, tag = "3")]
4001    pub total: ::core::option::Option<i32>,
4002    #[prost(bytes = "vec", optional, tag = "4")]
4003    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
4004}
4005#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4006pub struct CSvcMsgHltvStatus {
4007    #[prost(string, optional, tag = "1")]
4008    pub master: ::core::option::Option<::prost::alloc::string::String>,
4009    #[prost(int32, optional, tag = "2")]
4010    pub clients: ::core::option::Option<i32>,
4011    #[prost(int32, optional, tag = "3")]
4012    pub slots: ::core::option::Option<i32>,
4013    #[prost(int32, optional, tag = "4")]
4014    pub proxies: ::core::option::Option<i32>,
4015}
4016#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4017pub struct CSvcMsgServerSteamId {
4018    #[prost(uint64, optional, tag = "1")]
4019    pub steam_id: ::core::option::Option<u64>,
4020}
4021#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4022pub struct CSvcMsgCmdKeyValues {
4023    #[prost(bytes = "vec", optional, tag = "1")]
4024    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
4025}
4026#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4027pub struct CSvcMsgRconServerDetails {
4028    #[prost(bytes = "vec", optional, tag = "1")]
4029    pub token: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
4030    #[prost(string, optional, tag = "2")]
4031    pub details: ::core::option::Option<::prost::alloc::string::String>,
4032}
4033#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4034pub struct CMsgIpcAddress {
4035    #[prost(fixed64, optional, tag = "1")]
4036    pub computer_guid: ::core::option::Option<u64>,
4037    #[prost(uint32, optional, tag = "2")]
4038    pub process_id: ::core::option::Option<u32>,
4039}
4040#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4041pub struct CMsgServerPeer {
4042    #[prost(int32, optional, tag = "1", default = "-1")]
4043    pub player_slot: ::core::option::Option<i32>,
4044    #[prost(fixed64, optional, tag = "2")]
4045    pub steamid: ::core::option::Option<u64>,
4046    #[prost(message, optional, tag = "3")]
4047    pub ipc: ::core::option::Option<CMsgIpcAddress>,
4048    #[prost(bool, optional, tag = "4")]
4049    pub they_hear_you: ::core::option::Option<bool>,
4050    #[prost(bool, optional, tag = "5")]
4051    pub you_hear_them: ::core::option::Option<bool>,
4052    #[prost(bool, optional, tag = "6")]
4053    pub is_listenserver_host: ::core::option::Option<bool>,
4054}
4055#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4056pub struct CSvcMsgPeerList {
4057    #[prost(message, repeated, tag = "1")]
4058    pub peer: ::prost::alloc::vec::Vec<CMsgServerPeer>,
4059}
4060#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4061pub struct CSvcMsgClearAllStringTables {
4062    #[prost(string, optional, tag = "1")]
4063    pub mapname: ::core::option::Option<::prost::alloc::string::String>,
4064    #[prost(bool, optional, tag = "3")]
4065    pub create_tables_skipped: ::core::option::Option<bool>,
4066}
4067#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4068pub struct ProtoFlattenedSerializerFieldT {
4069    #[prost(int32, optional, tag = "1")]
4070    pub var_type_sym: ::core::option::Option<i32>,
4071    #[prost(int32, optional, tag = "2")]
4072    pub var_name_sym: ::core::option::Option<i32>,
4073    #[prost(int32, optional, tag = "3")]
4074    pub bit_count: ::core::option::Option<i32>,
4075    #[prost(float, optional, tag = "4")]
4076    pub low_value: ::core::option::Option<f32>,
4077    #[prost(float, optional, tag = "5")]
4078    pub high_value: ::core::option::Option<f32>,
4079    #[prost(int32, optional, tag = "6")]
4080    pub encode_flags: ::core::option::Option<i32>,
4081    #[prost(int32, optional, tag = "7")]
4082    pub field_serializer_name_sym: ::core::option::Option<i32>,
4083    #[prost(int32, optional, tag = "8")]
4084    pub field_serializer_version: ::core::option::Option<i32>,
4085    #[prost(int32, optional, tag = "9")]
4086    pub send_node_sym: ::core::option::Option<i32>,
4087    #[prost(int32, optional, tag = "10")]
4088    pub var_encoder_sym: ::core::option::Option<i32>,
4089    #[prost(message, repeated, tag = "11")]
4090    pub polymorphic_types: ::prost::alloc::vec::Vec<proto_flattened_serializer_field_t::PolymorphicFieldT>,
4091    #[prost(int32, optional, tag = "12")]
4092    pub var_serializer_sym: ::core::option::Option<i32>,
4093}
4094pub mod proto_flattened_serializer_field_t {
4095    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4096    pub struct PolymorphicFieldT {
4097        #[prost(int32, optional, tag = "1")]
4098        pub polymorphic_field_serializer_name_sym: ::core::option::Option<i32>,
4099        #[prost(int32, optional, tag = "2")]
4100        pub polymorphic_field_serializer_version: ::core::option::Option<i32>,
4101    }
4102}
4103#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4104pub struct ProtoFlattenedSerializerT {
4105    #[prost(int32, optional, tag = "1")]
4106    pub serializer_name_sym: ::core::option::Option<i32>,
4107    #[prost(int32, optional, tag = "2")]
4108    pub serializer_version: ::core::option::Option<i32>,
4109    #[prost(int32, repeated, packed = "false", tag = "3")]
4110    pub fields_index: ::prost::alloc::vec::Vec<i32>,
4111}
4112#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4113pub struct CSvcMsgFlattenedSerializer {
4114    #[prost(message, repeated, tag = "1")]
4115    pub serializers: ::prost::alloc::vec::Vec<ProtoFlattenedSerializerT>,
4116    #[prost(string, repeated, tag = "2")]
4117    pub symbols: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4118    #[prost(message, repeated, tag = "3")]
4119    pub fields: ::prost::alloc::vec::Vec<ProtoFlattenedSerializerFieldT>,
4120}
4121#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4122pub struct CSvcMsgStopSound {
4123    #[prost(fixed32, optional, tag = "1")]
4124    pub guid: ::core::option::Option<u32>,
4125}
4126#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4127pub struct CBidirMsgRebroadcastGameEvent {
4128    #[prost(bool, optional, tag = "1")]
4129    pub posttoserver: ::core::option::Option<bool>,
4130    #[prost(int32, optional, tag = "2")]
4131    pub buftype: ::core::option::Option<i32>,
4132    #[prost(uint32, optional, tag = "3")]
4133    pub clientbitcount: ::core::option::Option<u32>,
4134    #[prost(uint64, optional, tag = "4")]
4135    pub receivingclients: ::core::option::Option<u64>,
4136}
4137#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4138pub struct CBidirMsgRebroadcastSource {
4139    #[prost(int32, optional, tag = "1")]
4140    pub eventsource: ::core::option::Option<i32>,
4141}
4142#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4143pub struct CBidirMsgPredictionEvent {
4144    #[prost(uint32, optional, tag = "1")]
4145    pub event_id: ::core::option::Option<u32>,
4146    #[prost(bytes = "vec", optional, tag = "2")]
4147    pub event_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
4148    #[prost(uint32, optional, tag = "3")]
4149    pub sync_type: ::core::option::Option<u32>,
4150    #[prost(uint32, optional, tag = "4")]
4151    pub sync_val_uint32: ::core::option::Option<u32>,
4152}
4153pub mod c_bidir_msg_prediction_event {
4154    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4155    #[repr(i32)]
4156    pub enum ESyncType {
4157        StTick = 0,
4158        StUserCmdNum = 1,
4159    }
4160}
4161#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4162pub struct CMsgServerNetworkStats {
4163    #[prost(bool, optional, tag = "1")]
4164    pub dedicated: ::core::option::Option<bool>,
4165    #[prost(int32, optional, tag = "2")]
4166    pub cpu_usage: ::core::option::Option<i32>,
4167    #[prost(int32, optional, tag = "3")]
4168    pub memory_used_mb: ::core::option::Option<i32>,
4169    #[prost(int32, optional, tag = "4")]
4170    pub memory_free_mb: ::core::option::Option<i32>,
4171    #[prost(int32, optional, tag = "5")]
4172    pub uptime: ::core::option::Option<i32>,
4173    #[prost(int32, optional, tag = "6")]
4174    pub spawn_count: ::core::option::Option<i32>,
4175    #[prost(int32, optional, tag = "8")]
4176    pub num_clients: ::core::option::Option<i32>,
4177    #[prost(int32, optional, tag = "9")]
4178    pub num_bots: ::core::option::Option<i32>,
4179    #[prost(int32, optional, tag = "10")]
4180    pub num_spectators: ::core::option::Option<i32>,
4181    #[prost(int32, optional, tag = "11")]
4182    pub num_tv_relays: ::core::option::Option<i32>,
4183    #[prost(float, optional, tag = "12")]
4184    pub fps: ::core::option::Option<f32>,
4185    #[prost(message, repeated, tag = "17")]
4186    pub ports: ::prost::alloc::vec::Vec<c_msg_server_network_stats::Port>,
4187    #[prost(float, optional, tag = "18")]
4188    pub avg_ping_ms: ::core::option::Option<f32>,
4189    #[prost(float, optional, tag = "19")]
4190    pub avg_engine_latency_out: ::core::option::Option<f32>,
4191    #[prost(float, optional, tag = "20")]
4192    pub avg_packets_out: ::core::option::Option<f32>,
4193    #[prost(float, optional, tag = "21")]
4194    pub avg_packets_in: ::core::option::Option<f32>,
4195    #[prost(float, optional, tag = "22")]
4196    pub avg_loss_out: ::core::option::Option<f32>,
4197    #[prost(float, optional, tag = "23")]
4198    pub avg_loss_in: ::core::option::Option<f32>,
4199    #[prost(float, optional, tag = "24")]
4200    pub avg_data_out: ::core::option::Option<f32>,
4201    #[prost(float, optional, tag = "25")]
4202    pub avg_data_in: ::core::option::Option<f32>,
4203    #[prost(uint64, optional, tag = "26")]
4204    pub total_data_in: ::core::option::Option<u64>,
4205    #[prost(uint64, optional, tag = "27")]
4206    pub total_packets_in: ::core::option::Option<u64>,
4207    #[prost(uint64, optional, tag = "28")]
4208    pub total_data_out: ::core::option::Option<u64>,
4209    #[prost(uint64, optional, tag = "29")]
4210    pub total_packets_out: ::core::option::Option<u64>,
4211    #[prost(message, repeated, tag = "30")]
4212    pub players: ::prost::alloc::vec::Vec<c_msg_server_network_stats::Player>,
4213}
4214pub mod c_msg_server_network_stats {
4215    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4216    pub struct Port {
4217        #[prost(int32, optional, tag = "1")]
4218        pub port: ::core::option::Option<i32>,
4219        #[prost(string, optional, tag = "2")]
4220        pub name: ::core::option::Option<::prost::alloc::string::String>,
4221    }
4222    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4223    pub struct Player {
4224        #[prost(uint64, optional, tag = "1")]
4225        pub steamid: ::core::option::Option<u64>,
4226        #[prost(string, optional, tag = "2")]
4227        pub remote_addr: ::core::option::Option<::prost::alloc::string::String>,
4228        #[prost(int32, optional, tag = "4")]
4229        pub ping_avg_ms: ::core::option::Option<i32>,
4230        #[prost(float, optional, tag = "5")]
4231        pub packet_loss_pct: ::core::option::Option<f32>,
4232        #[prost(bool, optional, tag = "6")]
4233        pub is_bot: ::core::option::Option<bool>,
4234        #[prost(float, optional, tag = "7")]
4235        pub loss_in: ::core::option::Option<f32>,
4236        #[prost(float, optional, tag = "8")]
4237        pub loss_out: ::core::option::Option<f32>,
4238        #[prost(int32, optional, tag = "9")]
4239        pub engine_latency_ms: ::core::option::Option<i32>,
4240    }
4241}
4242#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4243pub struct CSvcMsgHltvReplay {
4244    #[prost(int32, optional, tag = "1")]
4245    pub delay: ::core::option::Option<i32>,
4246    #[prost(int32, optional, tag = "2", default = "-1")]
4247    pub primary_target: ::core::option::Option<i32>,
4248    #[prost(int32, optional, tag = "3")]
4249    pub replay_stop_at: ::core::option::Option<i32>,
4250    #[prost(int32, optional, tag = "4")]
4251    pub replay_start_at: ::core::option::Option<i32>,
4252    #[prost(int32, optional, tag = "5")]
4253    pub replay_slowdown_begin: ::core::option::Option<i32>,
4254    #[prost(int32, optional, tag = "6")]
4255    pub replay_slowdown_end: ::core::option::Option<i32>,
4256    #[prost(float, optional, tag = "7")]
4257    pub replay_slowdown_rate: ::core::option::Option<f32>,
4258    #[prost(int32, optional, tag = "8")]
4259    pub reason: ::core::option::Option<i32>,
4260}
4261#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4262pub struct CclcMsgHltvReplay {
4263    #[prost(int32, optional, tag = "1")]
4264    pub request: ::core::option::Option<i32>,
4265    #[prost(float, optional, tag = "2")]
4266    pub slowdown_length: ::core::option::Option<f32>,
4267    #[prost(float, optional, tag = "3")]
4268    pub slowdown_rate: ::core::option::Option<f32>,
4269    #[prost(int32, optional, tag = "4", default = "-1")]
4270    pub primary_target: ::core::option::Option<i32>,
4271    #[prost(float, optional, tag = "5")]
4272    pub event_time: ::core::option::Option<f32>,
4273}
4274#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4275pub struct CSvcMsgBroadcastCommand {
4276    #[prost(string, optional, tag = "1")]
4277    pub cmd: ::core::option::Option<::prost::alloc::string::String>,
4278}
4279#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4280pub struct CclcMsgHltvFixupOperatorTick {
4281    #[prost(int32, optional, tag = "1")]
4282    pub tick: ::core::option::Option<i32>,
4283    #[prost(bytes = "vec", optional, tag = "2")]
4284    pub props_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
4285    #[prost(message, optional, tag = "3")]
4286    pub origin: ::core::option::Option<CMsgVector>,
4287    #[prost(message, optional, tag = "4")]
4288    pub eye_angles: ::core::option::Option<CMsgQAngle>,
4289    #[prost(int32, optional, tag = "5")]
4290    pub observer_mode: ::core::option::Option<i32>,
4291    #[prost(bool, optional, tag = "6")]
4292    pub cameraman_scoreboard: ::core::option::Option<bool>,
4293    #[prost(int32, optional, tag = "7")]
4294    pub observer_target: ::core::option::Option<i32>,
4295    #[prost(message, optional, tag = "8")]
4296    pub view_offset: ::core::option::Option<CMsgVector>,
4297}
4298#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4299pub struct CSvcMsgHltvFixupOperatorStatus {
4300    #[prost(uint32, optional, tag = "1")]
4301    pub mode: ::core::option::Option<u32>,
4302    #[prost(string, optional, tag = "2")]
4303    pub override_operator_name: ::core::option::Option<::prost::alloc::string::String>,
4304}
4305#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4306pub struct CMsgServerUserCmd {
4307    #[prost(bytes = "vec", optional, tag = "1")]
4308    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
4309    #[prost(int32, optional, tag = "2")]
4310    pub cmd_number: ::core::option::Option<i32>,
4311    #[prost(int32, optional, tag = "3", default = "-1")]
4312    pub player_slot: ::core::option::Option<i32>,
4313    #[prost(int32, optional, tag = "4")]
4314    pub server_tick_executed: ::core::option::Option<i32>,
4315    #[prost(int32, optional, tag = "5")]
4316    pub client_tick: ::core::option::Option<i32>,
4317    #[prost(bytes = "vec", optional, tag = "6")]
4318    pub delta_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
4319}
4320#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4321pub struct CSvcMsgUserCommands {
4322    #[prost(message, repeated, tag = "1")]
4323    pub commands: ::prost::alloc::vec::Vec<CMsgServerUserCmd>,
4324}
4325#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4326pub struct CSvcMsgNextMsgPredicted {
4327    #[prost(int32, optional, tag = "1", default = "-1")]
4328    pub predicted_by_player_slot: ::core::option::Option<i32>,
4329    #[prost(uint32, optional, tag = "2")]
4330    pub message_type_id: ::core::option::Option<u32>,
4331}
4332#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4333#[repr(i32)]
4334pub enum ClcMessages {
4335    ClcClientInfo = 20,
4336    ClcMove = 21,
4337    ClcVoiceData = 22,
4338    ClcBaselineAck = 23,
4339    ClcRespondCvarValue = 25,
4340    ClcLoadingProgress = 27,
4341    ClcSplitPlayerConnect = 28,
4342    ClcSplitPlayerDisconnect = 30,
4343    ClcServerStatus = 31,
4344    ClcRequestPause = 33,
4345    ClcCmdKeyValues = 34,
4346    ClcRconServerDetails = 35,
4347    ClcHltvReplay = 36,
4348    ClcDiagnostic = 37,
4349}
4350#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4351#[repr(i32)]
4352pub enum SvcMessages {
4353    SvcServerInfo = 40,
4354    SvcFlattenedSerializer = 41,
4355    SvcClassInfo = 42,
4356    SvcSetPause = 43,
4357    SvcCreateStringTable = 44,
4358    SvcUpdateStringTable = 45,
4359    SvcVoiceInit = 46,
4360    SvcVoiceData = 47,
4361    SvcPrint = 48,
4362    SvcSounds = 49,
4363    SvcSetView = 50,
4364    SvcClearAllStringTables = 51,
4365    SvcCmdKeyValues = 52,
4366    SvcBspDecal = 53,
4367    SvcSplitScreen = 54,
4368    SvcPacketEntities = 55,
4369    SvcPrefetch = 56,
4370    SvcMenu = 57,
4371    SvcGetCvarValue = 58,
4372    SvcStopSound = 59,
4373    SvcPeerList = 60,
4374    SvcPacketReliable = 61,
4375    SvcHltvStatus = 62,
4376    SvcServerSteamId = 63,
4377    SvcFullFrameSplit = 70,
4378    SvcRconServerDetails = 71,
4379    SvcUserMessage = 72,
4380    SvcBroadcastCommand = 74,
4381    SvcHltvFixupOperatorStatus = 75,
4382    SvcUserCmds = 76,
4383    SvcNextMsgPredicted = 77,
4384}
4385#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4386#[repr(i32)]
4387pub enum VoiceDataFormatT {
4388    VoicedataFormatSteam = 0,
4389    VoicedataFormatEngine = 1,
4390    VoicedataFormatOpus = 2,
4391}
4392#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4393#[repr(i32)]
4394pub enum RequestPauseT {
4395    RpPause = 0,
4396    RpUnpause = 1,
4397    RpTogglepause = 2,
4398}
4399#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4400#[repr(i32)]
4401pub enum PrefetchType {
4402    PftSound = 0,
4403}
4404#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4405#[repr(i32)]
4406pub enum ESplitScreenMessageType {
4407    MsgSplitscreenAdduser = 0,
4408    MsgSplitscreenRemoveuser = 1,
4409}
4410#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4411#[repr(i32)]
4412pub enum EQueryCvarValueStatus {
4413    ValueIntact = 0,
4414    CvarNotFound = 1,
4415    NotACvar = 2,
4416    CvarProtected = 3,
4417}
4418#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4419#[repr(i32)]
4420pub enum DialogType {
4421    DialogMsg = 0,
4422    DialogMenu = 1,
4423    DialogText = 2,
4424    DialogEntry = 3,
4425    DialogAskconnect = 4,
4426}
4427#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4428#[repr(i32)]
4429pub enum SvcMessagesLowFrequency {
4430    SvcDummy = 600,
4431}
4432#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4433#[repr(i32)]
4434pub enum BidirectionalMessages {
4435    BiRebroadcastGameEvent = 16,
4436    BiRebroadcastSource = 17,
4437    BiGameEventDeprecated = 18,
4438    BiPredictionEvent = 19,
4439}
4440#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4441#[repr(i32)]
4442pub enum ReplayEventTypeT {
4443    ReplayEventCancel = 0,
4444    ReplayEventDeath = 1,
4445    ReplayEventGeneric = 2,
4446    ReplayEventStuckNeedFullUpdate = 3,
4447    ReplayEventVictory = 4,
4448}
4449#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4450pub struct CUserMessageAchievementEvent {
4451    #[prost(uint32, optional, tag = "1")]
4452    pub achievement: ::core::option::Option<u32>,
4453}
4454#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4455pub struct CUserMessageCloseCaptionPlaceholder {
4456    #[prost(string, optional, tag = "1")]
4457    pub string: ::core::option::Option<::prost::alloc::string::String>,
4458    #[prost(float, optional, tag = "2")]
4459    pub duration: ::core::option::Option<f32>,
4460    #[prost(bool, optional, tag = "3")]
4461    pub from_player: ::core::option::Option<bool>,
4462    #[prost(int32, optional, tag = "4", default = "-1")]
4463    pub ent_index: ::core::option::Option<i32>,
4464}
4465#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4466pub struct CUserMessageCurrentTimescale {
4467    #[prost(float, optional, tag = "1")]
4468    pub current: ::core::option::Option<f32>,
4469}
4470#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4471pub struct CUserMessageDesiredTimescale {
4472    #[prost(float, optional, tag = "1")]
4473    pub desired: ::core::option::Option<f32>,
4474    #[prost(float, optional, tag = "2")]
4475    pub acceleration: ::core::option::Option<f32>,
4476    #[prost(float, optional, tag = "3")]
4477    pub minblendrate: ::core::option::Option<f32>,
4478    #[prost(float, optional, tag = "4")]
4479    pub blenddeltamultiplier: ::core::option::Option<f32>,
4480}
4481#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4482pub struct CUserMessageFade {
4483    #[prost(uint32, optional, tag = "1")]
4484    pub duration: ::core::option::Option<u32>,
4485    #[prost(uint32, optional, tag = "2")]
4486    pub hold_time: ::core::option::Option<u32>,
4487    #[prost(uint32, optional, tag = "3")]
4488    pub flags: ::core::option::Option<u32>,
4489    #[prost(fixed32, optional, tag = "4")]
4490    pub color: ::core::option::Option<u32>,
4491}
4492#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4493pub struct CUserMessageShake {
4494    #[prost(uint32, optional, tag = "1")]
4495    pub command: ::core::option::Option<u32>,
4496    #[prost(float, optional, tag = "2")]
4497    pub amplitude: ::core::option::Option<f32>,
4498    #[prost(float, optional, tag = "3")]
4499    pub frequency: ::core::option::Option<f32>,
4500    #[prost(float, optional, tag = "4")]
4501    pub duration: ::core::option::Option<f32>,
4502}
4503#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4504pub struct CUserMessageShakeDir {
4505    #[prost(message, optional, tag = "1")]
4506    pub shake: ::core::option::Option<CUserMessageShake>,
4507    #[prost(message, optional, tag = "2")]
4508    pub direction: ::core::option::Option<CMsgVector>,
4509}
4510#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4511pub struct CUserMessageWaterShake {
4512    #[prost(uint32, optional, tag = "1")]
4513    pub command: ::core::option::Option<u32>,
4514    #[prost(float, optional, tag = "2")]
4515    pub amplitude: ::core::option::Option<f32>,
4516    #[prost(float, optional, tag = "3")]
4517    pub frequency: ::core::option::Option<f32>,
4518    #[prost(float, optional, tag = "4")]
4519    pub duration: ::core::option::Option<f32>,
4520}
4521#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4522pub struct CUserMessageScreenTilt {
4523    #[prost(uint32, optional, tag = "1")]
4524    pub command: ::core::option::Option<u32>,
4525    #[prost(bool, optional, tag = "2")]
4526    pub ease_in_out: ::core::option::Option<bool>,
4527    #[prost(message, optional, tag = "3")]
4528    pub angle: ::core::option::Option<CMsgVector>,
4529    #[prost(float, optional, tag = "4")]
4530    pub duration: ::core::option::Option<f32>,
4531    #[prost(float, optional, tag = "5")]
4532    pub time: ::core::option::Option<f32>,
4533}
4534#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4535pub struct CUserMessageSayText {
4536    #[prost(int32, optional, tag = "1", default = "-1")]
4537    pub playerindex: ::core::option::Option<i32>,
4538    #[prost(string, optional, tag = "2")]
4539    pub text: ::core::option::Option<::prost::alloc::string::String>,
4540    #[prost(bool, optional, tag = "3")]
4541    pub chat: ::core::option::Option<bool>,
4542}
4543#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4544pub struct CUserMessageSayText2 {
4545    #[prost(int32, optional, tag = "1", default = "-1")]
4546    pub entityindex: ::core::option::Option<i32>,
4547    #[prost(bool, optional, tag = "2")]
4548    pub chat: ::core::option::Option<bool>,
4549    #[prost(string, optional, tag = "3")]
4550    pub messagename: ::core::option::Option<::prost::alloc::string::String>,
4551    #[prost(string, optional, tag = "4")]
4552    pub param1: ::core::option::Option<::prost::alloc::string::String>,
4553    #[prost(string, optional, tag = "5")]
4554    pub param2: ::core::option::Option<::prost::alloc::string::String>,
4555    #[prost(string, optional, tag = "6")]
4556    pub param3: ::core::option::Option<::prost::alloc::string::String>,
4557    #[prost(string, optional, tag = "7")]
4558    pub param4: ::core::option::Option<::prost::alloc::string::String>,
4559}
4560#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4561pub struct CUserMessageHudMsg {
4562    #[prost(uint32, optional, tag = "1")]
4563    pub channel: ::core::option::Option<u32>,
4564    #[prost(float, optional, tag = "2")]
4565    pub x: ::core::option::Option<f32>,
4566    #[prost(float, optional, tag = "3")]
4567    pub y: ::core::option::Option<f32>,
4568    #[prost(fixed32, optional, tag = "4")]
4569    pub color1: ::core::option::Option<u32>,
4570    #[prost(fixed32, optional, tag = "5")]
4571    pub color2: ::core::option::Option<u32>,
4572    #[prost(uint32, optional, tag = "6")]
4573    pub effect: ::core::option::Option<u32>,
4574    #[prost(string, optional, tag = "11")]
4575    pub message: ::core::option::Option<::prost::alloc::string::String>,
4576}
4577#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4578pub struct CUserMessageHudText {
4579    #[prost(string, optional, tag = "1")]
4580    pub message: ::core::option::Option<::prost::alloc::string::String>,
4581}
4582#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4583pub struct CUserMessageTextMsg {
4584    #[prost(uint32, optional, tag = "1")]
4585    pub dest: ::core::option::Option<u32>,
4586    #[prost(string, repeated, tag = "2")]
4587    pub param: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4588}
4589#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4590pub struct CUserMessageGameTitle {}
4591#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4592pub struct CUserMessageResetHud {}
4593#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4594pub struct CUserMessageSendAudio {
4595    #[prost(string, optional, tag = "1")]
4596    pub soundname: ::core::option::Option<::prost::alloc::string::String>,
4597    #[prost(bool, optional, tag = "2")]
4598    pub stop: ::core::option::Option<bool>,
4599}
4600#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4601pub struct CUserMessageAudioParameter {
4602    #[prost(uint32, optional, tag = "1")]
4603    pub parameter_type: ::core::option::Option<u32>,
4604    #[prost(uint32, optional, tag = "2")]
4605    pub name_hash_code: ::core::option::Option<u32>,
4606    #[prost(float, optional, tag = "3")]
4607    pub value: ::core::option::Option<f32>,
4608    #[prost(uint32, optional, tag = "4")]
4609    pub int_value: ::core::option::Option<u32>,
4610}
4611#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4612pub struct CUserMessageVoiceMask {
4613    #[prost(uint32, repeated, packed = "false", tag = "1")]
4614    pub gamerules_masks: ::prost::alloc::vec::Vec<u32>,
4615    #[prost(uint32, repeated, packed = "false", tag = "2")]
4616    pub ban_masks: ::prost::alloc::vec::Vec<u32>,
4617    #[prost(bool, optional, tag = "3")]
4618    pub mod_enable: ::core::option::Option<bool>,
4619}
4620#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4621pub struct CUserMessageRequestState {}
4622#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4623pub struct CUserMessageRumble {
4624    #[prost(int32, optional, tag = "1")]
4625    pub index: ::core::option::Option<i32>,
4626    #[prost(int32, optional, tag = "2")]
4627    pub data: ::core::option::Option<i32>,
4628    #[prost(int32, optional, tag = "3")]
4629    pub flags: ::core::option::Option<i32>,
4630}
4631#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4632pub struct CUserMessageSayTextChannel {
4633    #[prost(int32, optional, tag = "1")]
4634    pub player: ::core::option::Option<i32>,
4635    #[prost(int32, optional, tag = "2")]
4636    pub channel: ::core::option::Option<i32>,
4637    #[prost(string, optional, tag = "3")]
4638    pub text: ::core::option::Option<::prost::alloc::string::String>,
4639}
4640#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4641pub struct CUserMessageColoredText {
4642    #[prost(uint32, optional, tag = "1")]
4643    pub color: ::core::option::Option<u32>,
4644    #[prost(string, optional, tag = "2")]
4645    pub text: ::core::option::Option<::prost::alloc::string::String>,
4646    #[prost(bool, optional, tag = "3")]
4647    pub reset: ::core::option::Option<bool>,
4648    #[prost(int32, optional, tag = "4", default = "-1")]
4649    pub context_player_slot: ::core::option::Option<i32>,
4650    #[prost(int32, optional, tag = "5")]
4651    pub context_value: ::core::option::Option<i32>,
4652    #[prost(int32, optional, tag = "6")]
4653    pub context_team_id: ::core::option::Option<i32>,
4654}
4655#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4656pub struct CUserMessageItemPickup {
4657    #[prost(string, optional, tag = "1")]
4658    pub itemname: ::core::option::Option<::prost::alloc::string::String>,
4659}
4660#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4661pub struct CUserMessageAmmoDenied {
4662    #[prost(uint32, optional, tag = "1")]
4663    pub ammo_id: ::core::option::Option<u32>,
4664}
4665#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
4666pub struct CUserMessageShowMenu {
4667    #[prost(uint32, optional, tag = "1")]
4668    pub validslots: ::core::option::Option<u32>,
4669    #[prost(uint32, optional, tag = "2")]
4670    pub displaytime: ::core::option::Option<u32>,
4671    #[prost(bool, optional, tag = "3")]
4672    pub needmore: ::core::option::Option<bool>,
4673    #[prost(string, optional, tag = "4")]
4674    pub menustring: ::core::option::Option<::prost::alloc::string::String>,
4675}
4676#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4677pub struct CUserMessageCreditsMsg {
4678    #[prost(enumeration = "ERollType", optional, tag = "1", default = "RollNone")]
4679    pub rolltype: ::core::option::Option<i32>,
4680    #[prost(float, optional, tag = "2")]
4681    pub logo_length: ::core::option::Option<f32>,
4682}
4683#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4684pub struct CEntityMessagePlayJingle {
4685    #[prost(message, optional, tag = "1")]
4686    pub entity_msg: ::core::option::Option<CEntityMsg>,
4687}
4688#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4689pub struct CEntityMessageScreenOverlay {
4690    #[prost(bool, optional, tag = "1")]
4691    pub start_effect: ::core::option::Option<bool>,
4692    #[prost(message, optional, tag = "2")]
4693    pub entity_msg: ::core::option::Option<CEntityMsg>,
4694}
4695#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4696pub struct CEntityMessagePropagateForce {
4697    #[prost(message, optional, tag = "1")]
4698    pub impulse: ::core::option::Option<CMsgVector>,
4699    #[prost(message, optional, tag = "2")]
4700    pub entity_msg: ::core::option::Option<CEntityMsg>,
4701}
4702#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4703pub struct CEntityMessageDoSpark {
4704    #[prost(message, optional, tag = "1")]
4705    pub origin: ::core::option::Option<CMsgVector>,
4706    #[prost(int32, optional, tag = "2", default = "-1")]
4707    pub entityindex: ::core::option::Option<i32>,
4708    #[prost(float, optional, tag = "3")]
4709    pub radius: ::core::option::Option<f32>,
4710    #[prost(fixed32, optional, tag = "4")]
4711    pub color: ::core::option::Option<u32>,
4712    #[prost(uint32, optional, tag = "5")]
4713    pub beams: ::core::option::Option<u32>,
4714    #[prost(float, optional, tag = "6")]
4715    pub thick: ::core::option::Option<f32>,
4716    #[prost(float, optional, tag = "7")]
4717    pub duration: ::core::option::Option<f32>,
4718    #[prost(message, optional, tag = "8")]
4719    pub entity_msg: ::core::option::Option<CEntityMsg>,
4720}
4721#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4722pub struct CEntityMessageFixAngle {
4723    #[prost(bool, optional, tag = "1")]
4724    pub relative: ::core::option::Option<bool>,
4725    #[prost(message, optional, tag = "2")]
4726    pub angle: ::core::option::Option<CMsgQAngle>,
4727    #[prost(message, optional, tag = "3")]
4728    pub entity_msg: ::core::option::Option<CEntityMsg>,
4729}
4730#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4731pub struct CUserMessageCameraTransition {
4732    #[prost(uint32, optional, tag = "1")]
4733    pub camera_type: ::core::option::Option<u32>,
4734    #[prost(float, optional, tag = "2")]
4735    pub duration: ::core::option::Option<f32>,
4736    #[prost(message, optional, tag = "3")]
4737    pub params_data_driven: ::core::option::Option<c_user_message_camera_transition::TransitionDataDriven>,
4738}
4739pub mod c_user_message_camera_transition {
4740    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4741    pub struct TransitionDataDriven {
4742        #[prost(string, optional, tag = "1")]
4743        pub filename: ::core::option::Option<::prost::alloc::string::String>,
4744        #[prost(int32, optional, tag = "2", default = "-1")]
4745        pub attach_ent_index: ::core::option::Option<i32>,
4746        #[prost(float, optional, tag = "3")]
4747        pub duration: ::core::option::Option<f32>,
4748    }
4749}
4750#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4751pub struct CUserMsgParticleManager {
4752    #[prost(enumeration = "ParticleMessage", optional, tag = "1", default = "GameParticleManagerEventCreate")]
4753    pub r#type: ::core::option::Option<i32>,
4754    #[prost(uint32, optional, tag = "2")]
4755    pub index: ::core::option::Option<u32>,
4756    #[prost(message, optional, tag = "3")]
4757    pub release_particle_index: ::core::option::Option<c_user_msg_particle_manager::ReleaseParticleIndex>,
4758    #[prost(message, optional, tag = "4")]
4759    pub create_particle: ::core::option::Option<c_user_msg_particle_manager::CreateParticle>,
4760    #[prost(message, optional, tag = "5")]
4761    pub destroy_particle: ::core::option::Option<c_user_msg_particle_manager::DestroyParticle>,
4762    #[prost(message, optional, tag = "6")]
4763    pub destroy_particle_involving: ::core::option::Option<c_user_msg_particle_manager::DestroyParticleInvolving>,
4764    #[prost(message, optional, tag = "7")]
4765    pub update_particle: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleObsolete>,
4766    #[prost(message, optional, tag = "8")]
4767    pub update_particle_fwd: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleFwdObsolete>,
4768    #[prost(message, optional, tag = "9")]
4769    pub update_particle_orient: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleOrientObsolete>,
4770    #[prost(message, optional, tag = "10")]
4771    pub update_particle_fallback: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleFallback>,
4772    #[prost(message, optional, tag = "11")]
4773    pub update_particle_offset: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleOffset>,
4774    #[prost(message, optional, tag = "12")]
4775    pub update_particle_ent: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleEnt>,
4776    #[prost(message, optional, tag = "14")]
4777    pub update_particle_should_draw: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleShouldDraw>,
4778    #[prost(message, optional, tag = "15")]
4779    pub update_particle_set_frozen: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleSetFrozen>,
4780    #[prost(message, optional, tag = "16")]
4781    pub change_control_point_attachment: ::core::option::Option<c_user_msg_particle_manager::ChangeControlPointAttachment>,
4782    #[prost(message, optional, tag = "17")]
4783    pub update_entity_position: ::core::option::Option<c_user_msg_particle_manager::UpdateEntityPosition>,
4784    #[prost(message, optional, tag = "18")]
4785    pub set_particle_fow_properties: ::core::option::Option<c_user_msg_particle_manager::SetParticleFoWProperties>,
4786    #[prost(message, optional, tag = "19")]
4787    pub set_particle_text: ::core::option::Option<c_user_msg_particle_manager::SetParticleText>,
4788    #[prost(message, optional, tag = "20")]
4789    pub set_particle_should_check_fow: ::core::option::Option<c_user_msg_particle_manager::SetParticleShouldCheckFoW>,
4790    #[prost(message, optional, tag = "21")]
4791    pub set_control_point_model: ::core::option::Option<c_user_msg_particle_manager::SetControlPointModel>,
4792    #[prost(message, optional, tag = "22")]
4793    pub set_control_point_snapshot: ::core::option::Option<c_user_msg_particle_manager::SetControlPointSnapshot>,
4794    #[prost(message, optional, tag = "23")]
4795    pub set_texture_attribute: ::core::option::Option<c_user_msg_particle_manager::SetTextureAttribute>,
4796    #[prost(message, optional, tag = "24")]
4797    pub set_scene_object_generic_flag: ::core::option::Option<c_user_msg_particle_manager::SetSceneObjectGenericFlag>,
4798    #[prost(message, optional, tag = "25")]
4799    pub set_scene_object_tint_and_desat: ::core::option::Option<c_user_msg_particle_manager::SetSceneObjectTintAndDesat>,
4800    #[prost(message, optional, tag = "26")]
4801    pub destroy_particle_named: ::core::option::Option<c_user_msg_particle_manager::DestroyParticleNamed>,
4802    #[prost(message, optional, tag = "27")]
4803    pub particle_skip_to_time: ::core::option::Option<c_user_msg_particle_manager::ParticleSkipToTime>,
4804    #[prost(message, optional, tag = "28")]
4805    pub particle_can_freeze: ::core::option::Option<c_user_msg_particle_manager::ParticleCanFreeze>,
4806    #[prost(message, optional, tag = "29")]
4807    pub set_named_value_context: ::core::option::Option<c_user_msg_particle_manager::SetParticleNamedValueContext>,
4808    #[prost(message, optional, tag = "30")]
4809    pub update_particle_transform: ::core::option::Option<c_user_msg_particle_manager::UpdateParticleTransform>,
4810    #[prost(message, optional, tag = "31")]
4811    pub particle_freeze_transition_override: ::core::option::Option<c_user_msg_particle_manager::ParticleFreezeTransitionOverride>,
4812    #[prost(message, optional, tag = "32")]
4813    pub freeze_particle_involving: ::core::option::Option<c_user_msg_particle_manager::FreezeParticleInvolving>,
4814    #[prost(message, optional, tag = "33")]
4815    pub add_modellist_override_element: ::core::option::Option<c_user_msg_particle_manager::AddModellistOverrideElement>,
4816    #[prost(message, optional, tag = "34")]
4817    pub clear_modellist_override: ::core::option::Option<c_user_msg_particle_manager::ClearModellistOverride>,
4818    #[prost(message, optional, tag = "35")]
4819    pub create_physics_sim: ::core::option::Option<c_user_msg_particle_manager::CreatePhysicsSim>,
4820    #[prost(message, optional, tag = "36")]
4821    pub destroy_physics_sim: ::core::option::Option<c_user_msg_particle_manager::DestroyPhysicsSim>,
4822    #[prost(message, optional, tag = "37")]
4823    pub set_vdata: ::core::option::Option<c_user_msg_particle_manager::SetVData>,
4824    #[prost(message, optional, tag = "38")]
4825    pub set_material_override: ::core::option::Option<c_user_msg_particle_manager::SetMaterialOverride>,
4826    #[prost(message, optional, tag = "39")]
4827    pub add_fan: ::core::option::Option<c_user_msg_particle_manager::AddFan>,
4828    #[prost(message, optional, tag = "40")]
4829    pub update_fan: ::core::option::Option<c_user_msg_particle_manager::UpdateFan>,
4830    #[prost(message, optional, tag = "41")]
4831    pub set_particle_cluster_growth: ::core::option::Option<c_user_msg_particle_manager::SetParticleClusterGrowth>,
4832    #[prost(message, optional, tag = "42")]
4833    pub remove_fan: ::core::option::Option<c_user_msg_particle_manager::RemoveFan>,
4834    #[prost(message, optional, tag = "43")]
4835    pub create_smoke_grid: ::core::option::Option<c_user_msg_particle_manager::CreateSmokeGrid>,
4836    #[prost(message, optional, tag = "44")]
4837    pub set_override_texture: ::core::option::Option<c_user_msg_particle_manager::SetOverrideTexture>,
4838}
4839pub mod c_user_msg_particle_manager {
4840    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4841    pub struct ReleaseParticleIndex {}
4842    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
4843    pub struct CreateParticle {
4844        #[prost(fixed64, optional, tag = "1")]
4845        pub particle_name_index: ::core::option::Option<u64>,
4846        #[prost(int32, optional, tag = "2")]
4847        pub attach_type: ::core::option::Option<i32>,
4848        #[prost(uint32, optional, tag = "3", default = "16777215")]
4849        pub entity_handle: ::core::option::Option<u32>,
4850        #[prost(uint32, optional, tag = "4", default = "16777215")]
4851        pub entity_handle_for_modifiers: ::core::option::Option<u32>,
4852        #[prost(bool, optional, tag = "5")]
4853        pub apply_voice_ban_rules: ::core::option::Option<bool>,
4854        #[prost(int32, optional, tag = "6")]
4855        pub team_behavior: ::core::option::Option<i32>,
4856        #[prost(string, optional, tag = "7")]
4857        pub control_point_configuration: ::core::option::Option<::prost::alloc::string::String>,
4858        #[prost(bool, optional, tag = "8")]
4859        pub cluster: ::core::option::Option<bool>,
4860        #[prost(float, optional, tag = "9")]
4861        pub endcap_time: ::core::option::Option<f32>,
4862        #[prost(message, optional, tag = "10")]
4863        pub aggregation_position: ::core::option::Option<super::CMsgVector>,
4864    }
4865    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4866    pub struct DestroyParticle {
4867        #[prost(bool, optional, tag = "1")]
4868        pub destroy_immediately: ::core::option::Option<bool>,
4869    }
4870    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4871    pub struct DestroyParticleInvolving {
4872        #[prost(bool, optional, tag = "1")]
4873        pub destroy_immediately: ::core::option::Option<bool>,
4874        #[prost(uint32, optional, tag = "3", default = "16777215")]
4875        pub entity_handle: ::core::option::Option<u32>,
4876    }
4877    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4878    pub struct DestroyParticleNamed {
4879        #[prost(fixed64, optional, tag = "1")]
4880        pub particle_name_index: ::core::option::Option<u64>,
4881        #[prost(uint32, optional, tag = "2", default = "16777215")]
4882        pub entity_handle: ::core::option::Option<u32>,
4883        #[prost(bool, optional, tag = "3")]
4884        pub destroy_immediately: ::core::option::Option<bool>,
4885        #[prost(bool, optional, tag = "4")]
4886        pub play_endcap: ::core::option::Option<bool>,
4887    }
4888    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4889    pub struct UpdateParticleObsolete {
4890        #[prost(int32, optional, tag = "1")]
4891        pub control_point: ::core::option::Option<i32>,
4892        #[prost(message, optional, tag = "2")]
4893        pub position: ::core::option::Option<super::CMsgVector>,
4894    }
4895    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4896    pub struct UpdateParticleFwdObsolete {
4897        #[prost(int32, optional, tag = "1")]
4898        pub control_point: ::core::option::Option<i32>,
4899        #[prost(message, optional, tag = "2")]
4900        pub forward: ::core::option::Option<super::CMsgVector>,
4901    }
4902    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4903    pub struct UpdateParticleOrientObsolete {
4904        #[prost(int32, optional, tag = "1")]
4905        pub control_point: ::core::option::Option<i32>,
4906        #[prost(message, optional, tag = "2")]
4907        pub forward: ::core::option::Option<super::CMsgVector>,
4908        #[prost(message, optional, tag = "3")]
4909        pub deprecated_right: ::core::option::Option<super::CMsgVector>,
4910        #[prost(message, optional, tag = "4")]
4911        pub up: ::core::option::Option<super::CMsgVector>,
4912        #[prost(message, optional, tag = "5")]
4913        pub left: ::core::option::Option<super::CMsgVector>,
4914    }
4915    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4916    pub struct UpdateParticleTransform {
4917        #[prost(int32, optional, tag = "1")]
4918        pub control_point: ::core::option::Option<i32>,
4919        #[prost(message, optional, tag = "2")]
4920        pub position: ::core::option::Option<super::CMsgVector>,
4921        #[prost(message, optional, tag = "3")]
4922        pub orientation: ::core::option::Option<super::CMsgQuaternion>,
4923        #[prost(float, optional, tag = "4")]
4924        pub interpolation_interval: ::core::option::Option<f32>,
4925    }
4926    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4927    pub struct UpdateParticleFallback {
4928        #[prost(int32, optional, tag = "1")]
4929        pub control_point: ::core::option::Option<i32>,
4930        #[prost(message, optional, tag = "2")]
4931        pub position: ::core::option::Option<super::CMsgVector>,
4932    }
4933    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4934    pub struct UpdateParticleOffset {
4935        #[prost(int32, optional, tag = "1")]
4936        pub control_point: ::core::option::Option<i32>,
4937        #[prost(message, optional, tag = "2")]
4938        pub origin_offset: ::core::option::Option<super::CMsgVector>,
4939        #[prost(message, optional, tag = "3")]
4940        pub angle_offset: ::core::option::Option<super::CMsgQAngle>,
4941    }
4942    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4943    pub struct UpdateParticleEnt {
4944        #[prost(int32, optional, tag = "1")]
4945        pub control_point: ::core::option::Option<i32>,
4946        #[prost(uint32, optional, tag = "2", default = "16777215")]
4947        pub entity_handle: ::core::option::Option<u32>,
4948        #[prost(int32, optional, tag = "3")]
4949        pub attach_type: ::core::option::Option<i32>,
4950        #[prost(int32, optional, tag = "4")]
4951        pub attachment: ::core::option::Option<i32>,
4952        #[prost(message, optional, tag = "5")]
4953        pub fallback_position: ::core::option::Option<super::CMsgVector>,
4954        #[prost(bool, optional, tag = "6")]
4955        pub include_wearables: ::core::option::Option<bool>,
4956        #[prost(message, optional, tag = "7")]
4957        pub offset_position: ::core::option::Option<super::CMsgVector>,
4958        #[prost(message, optional, tag = "8")]
4959        pub offset_angles: ::core::option::Option<super::CMsgQAngle>,
4960    }
4961    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4962    pub struct UpdateParticleSetFrozen {
4963        #[prost(bool, optional, tag = "1")]
4964        pub set_frozen: ::core::option::Option<bool>,
4965        #[prost(float, optional, tag = "2")]
4966        pub transition_duration: ::core::option::Option<f32>,
4967    }
4968    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4969    pub struct UpdateParticleShouldDraw {
4970        #[prost(bool, optional, tag = "1")]
4971        pub should_draw: ::core::option::Option<bool>,
4972    }
4973    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4974    pub struct ChangeControlPointAttachment {
4975        #[prost(int32, optional, tag = "1")]
4976        pub attachment_old: ::core::option::Option<i32>,
4977        #[prost(int32, optional, tag = "2")]
4978        pub attachment_new: ::core::option::Option<i32>,
4979        #[prost(uint32, optional, tag = "3", default = "16777215")]
4980        pub entity_handle: ::core::option::Option<u32>,
4981    }
4982    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4983    pub struct UpdateEntityPosition {
4984        #[prost(uint32, optional, tag = "1", default = "16777215")]
4985        pub entity_handle: ::core::option::Option<u32>,
4986        #[prost(message, optional, tag = "2")]
4987        pub position: ::core::option::Option<super::CMsgVector>,
4988    }
4989    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
4990    pub struct SetParticleFoWProperties {
4991        #[prost(int32, optional, tag = "1")]
4992        pub fow_control_point: ::core::option::Option<i32>,
4993        #[prost(int32, optional, tag = "2")]
4994        pub fow_control_point2: ::core::option::Option<i32>,
4995        #[prost(float, optional, tag = "3")]
4996        pub fow_radius: ::core::option::Option<f32>,
4997    }
4998    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4999    pub struct SetParticleShouldCheckFoW {
5000        #[prost(bool, optional, tag = "1")]
5001        pub check_fow: ::core::option::Option<bool>,
5002    }
5003    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5004    pub struct SetControlPointModel {
5005        #[prost(int32, optional, tag = "1")]
5006        pub control_point: ::core::option::Option<i32>,
5007        #[prost(string, optional, tag = "2")]
5008        pub model_name: ::core::option::Option<::prost::alloc::string::String>,
5009    }
5010    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5011    pub struct SetControlPointSnapshot {
5012        #[prost(int32, optional, tag = "1")]
5013        pub control_point: ::core::option::Option<i32>,
5014        #[prost(string, optional, tag = "2")]
5015        pub snapshot_name: ::core::option::Option<::prost::alloc::string::String>,
5016    }
5017    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5018    pub struct SetParticleText {
5019        #[prost(string, optional, tag = "1")]
5020        pub text: ::core::option::Option<::prost::alloc::string::String>,
5021        #[prost(bool, optional, tag = "2")]
5022        pub localize: ::core::option::Option<bool>,
5023    }
5024    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5025    pub struct SetTextureAttribute {
5026        #[prost(string, optional, tag = "1")]
5027        pub attribute_name: ::core::option::Option<::prost::alloc::string::String>,
5028        #[prost(string, optional, tag = "2")]
5029        pub texture_name: ::core::option::Option<::prost::alloc::string::String>,
5030    }
5031    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5032    pub struct SetOverrideTexture {
5033        #[prost(string, optional, tag = "1")]
5034        pub texture_name: ::core::option::Option<::prost::alloc::string::String>,
5035    }
5036    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5037    pub struct SetSceneObjectGenericFlag {
5038        #[prost(bool, optional, tag = "1")]
5039        pub flag_value: ::core::option::Option<bool>,
5040    }
5041    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5042    pub struct SetSceneObjectTintAndDesat {
5043        #[prost(fixed32, optional, tag = "1")]
5044        pub tint: ::core::option::Option<u32>,
5045        #[prost(float, optional, tag = "2")]
5046        pub desat: ::core::option::Option<f32>,
5047    }
5048    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5049    pub struct ParticleSkipToTime {
5050        #[prost(float, optional, tag = "1")]
5051        pub skip_to_time: ::core::option::Option<f32>,
5052    }
5053    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5054    pub struct ParticleCanFreeze {
5055        #[prost(bool, optional, tag = "1")]
5056        pub can_freeze: ::core::option::Option<bool>,
5057    }
5058    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5059    pub struct ParticleFreezeTransitionOverride {
5060        #[prost(float, optional, tag = "1")]
5061        pub freeze_transition_override: ::core::option::Option<f32>,
5062    }
5063    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5064    pub struct FreezeParticleInvolving {
5065        #[prost(bool, optional, tag = "1")]
5066        pub set_frozen: ::core::option::Option<bool>,
5067        #[prost(float, optional, tag = "2")]
5068        pub transition_duration: ::core::option::Option<f32>,
5069        #[prost(uint32, optional, tag = "3", default = "16777215")]
5070        pub entity_handle: ::core::option::Option<u32>,
5071    }
5072    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5073    pub struct AddModellistOverrideElement {
5074        #[prost(string, optional, tag = "1")]
5075        pub model_name: ::core::option::Option<::prost::alloc::string::String>,
5076        #[prost(float, optional, tag = "2")]
5077        pub spawn_probability: ::core::option::Option<f32>,
5078        #[prost(uint32, optional, tag = "3")]
5079        pub groupid: ::core::option::Option<u32>,
5080    }
5081    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5082    pub struct ClearModellistOverride {
5083        #[prost(uint32, optional, tag = "1")]
5084        pub groupid: ::core::option::Option<u32>,
5085    }
5086    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5087    pub struct SetParticleNamedValueContext {
5088        #[prost(message, repeated, tag = "1")]
5089        pub float_values: ::prost::alloc::vec::Vec<set_particle_named_value_context::FloatContextValue>,
5090        #[prost(message, repeated, tag = "2")]
5091        pub vector_values: ::prost::alloc::vec::Vec<set_particle_named_value_context::VectorContextValue>,
5092        #[prost(message, repeated, tag = "3")]
5093        pub transform_values: ::prost::alloc::vec::Vec<set_particle_named_value_context::TransformContextValue>,
5094        #[prost(message, repeated, tag = "4")]
5095        pub ehandle_values: ::prost::alloc::vec::Vec<set_particle_named_value_context::EHandleContext>,
5096    }
5097    pub mod set_particle_named_value_context {
5098        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5099        pub struct FloatContextValue {
5100            #[prost(uint32, optional, tag = "1")]
5101            pub value_name_hash: ::core::option::Option<u32>,
5102            #[prost(float, optional, tag = "2")]
5103            pub value: ::core::option::Option<f32>,
5104        }
5105        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5106        pub struct VectorContextValue {
5107            #[prost(uint32, optional, tag = "1")]
5108            pub value_name_hash: ::core::option::Option<u32>,
5109            #[prost(message, optional, tag = "2")]
5110            pub value: ::core::option::Option<super::super::CMsgVector>,
5111        }
5112        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5113        pub struct TransformContextValue {
5114            #[prost(uint32, optional, tag = "1")]
5115            pub value_name_hash: ::core::option::Option<u32>,
5116            #[prost(message, optional, tag = "2")]
5117            pub angles: ::core::option::Option<super::super::CMsgQAngle>,
5118            #[prost(message, optional, tag = "3")]
5119            pub translation: ::core::option::Option<super::super::CMsgVector>,
5120        }
5121        #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5122        pub struct EHandleContext {
5123            #[prost(uint32, optional, tag = "1")]
5124            pub value_name_hash: ::core::option::Option<u32>,
5125            #[prost(uint32, optional, tag = "2", default = "16777215")]
5126            pub ent_index: ::core::option::Option<u32>,
5127        }
5128    }
5129    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5130    pub struct CreatePhysicsSim {
5131        #[prost(string, optional, tag = "1")]
5132        pub prop_group_name: ::core::option::Option<::prost::alloc::string::String>,
5133        #[prost(bool, optional, tag = "2")]
5134        pub use_high_quality_simulation: ::core::option::Option<bool>,
5135        #[prost(uint32, optional, tag = "3")]
5136        pub max_particle_count: ::core::option::Option<u32>,
5137    }
5138    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5139    pub struct DestroyPhysicsSim {}
5140    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5141    pub struct CreateSmokeGrid {
5142        #[prost(string, optional, tag = "1")]
5143        pub vdata_name: ::core::option::Option<::prost::alloc::string::String>,
5144    }
5145    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5146    pub struct SetVData {
5147        #[prost(string, optional, tag = "1")]
5148        pub vdata_name: ::core::option::Option<::prost::alloc::string::String>,
5149    }
5150    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5151    pub struct SetMaterialOverride {
5152        #[prost(string, optional, tag = "1")]
5153        pub material_name: ::core::option::Option<::prost::alloc::string::String>,
5154        #[prost(bool, optional, tag = "2")]
5155        pub include_children: ::core::option::Option<bool>,
5156    }
5157    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5158    pub struct AddFan {
5159        #[prost(bool, optional, tag = "1")]
5160        pub active: ::core::option::Option<bool>,
5161        #[prost(message, optional, tag = "2")]
5162        pub bounds_mins: ::core::option::Option<super::CMsgVector>,
5163        #[prost(message, optional, tag = "3")]
5164        pub bounds_maxs: ::core::option::Option<super::CMsgVector>,
5165        #[prost(message, optional, tag = "4")]
5166        pub fan_origin: ::core::option::Option<super::CMsgVector>,
5167        #[prost(message, optional, tag = "5")]
5168        pub fan_origin_offset: ::core::option::Option<super::CMsgVector>,
5169        #[prost(message, optional, tag = "6")]
5170        pub fan_direction: ::core::option::Option<super::CMsgVector>,
5171        #[prost(float, optional, tag = "7")]
5172        pub force: ::core::option::Option<f32>,
5173        #[prost(string, optional, tag = "8")]
5174        pub fan_force_curve: ::core::option::Option<::prost::alloc::string::String>,
5175        #[prost(bool, optional, tag = "9")]
5176        pub falloff: ::core::option::Option<bool>,
5177        #[prost(bool, optional, tag = "10")]
5178        pub pull_towards_point: ::core::option::Option<bool>,
5179        #[prost(float, optional, tag = "11")]
5180        pub curve_min_dist: ::core::option::Option<f32>,
5181        #[prost(float, optional, tag = "12")]
5182        pub curve_max_dist: ::core::option::Option<f32>,
5183        #[prost(uint32, optional, tag = "13")]
5184        pub fan_type: ::core::option::Option<u32>,
5185        #[prost(float, optional, tag = "14")]
5186        pub cone_start_radius: ::core::option::Option<f32>,
5187        #[prost(float, optional, tag = "15")]
5188        pub cone_end_radius: ::core::option::Option<f32>,
5189        #[prost(float, optional, tag = "16")]
5190        pub cone_length: ::core::option::Option<f32>,
5191        #[prost(uint32, optional, tag = "17", default = "16777215")]
5192        pub entity_handle: ::core::option::Option<u32>,
5193        #[prost(string, optional, tag = "18")]
5194        pub attachment_name: ::core::option::Option<::prost::alloc::string::String>,
5195    }
5196    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5197    pub struct UpdateFan {
5198        #[prost(bool, optional, tag = "1")]
5199        pub active: ::core::option::Option<bool>,
5200        #[prost(message, optional, tag = "2")]
5201        pub fan_origin: ::core::option::Option<super::CMsgVector>,
5202        #[prost(message, optional, tag = "3")]
5203        pub fan_origin_offset: ::core::option::Option<super::CMsgVector>,
5204        #[prost(message, optional, tag = "4")]
5205        pub fan_direction: ::core::option::Option<super::CMsgVector>,
5206        #[prost(float, optional, tag = "7")]
5207        pub fan_ramp_ratio: ::core::option::Option<f32>,
5208        #[prost(message, optional, tag = "5")]
5209        pub bounds_mins: ::core::option::Option<super::CMsgVector>,
5210        #[prost(message, optional, tag = "6")]
5211        pub bounds_maxs: ::core::option::Option<super::CMsgVector>,
5212    }
5213    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5214    pub struct RemoveFan {}
5215    #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5216    pub struct SetParticleClusterGrowth {
5217        #[prost(float, optional, tag = "1")]
5218        pub duration: ::core::option::Option<f32>,
5219        #[prost(message, optional, tag = "2")]
5220        pub origin: ::core::option::Option<super::CMsgVector>,
5221    }
5222}
5223#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5224pub struct CUserMsgHudError {
5225    #[prost(int32, optional, tag = "1")]
5226    pub order_id: ::core::option::Option<i32>,
5227}
5228#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5229pub struct CUserMsgCustomGameEvent {
5230    #[prost(string, optional, tag = "1")]
5231    pub event_name: ::core::option::Option<::prost::alloc::string::String>,
5232    #[prost(bytes = "vec", optional, tag = "2")]
5233    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5234}
5235#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5236pub struct CUserMessageHapticsManagerPulse {
5237    #[prost(int32, optional, tag = "1")]
5238    pub hand_id: ::core::option::Option<i32>,
5239    #[prost(float, optional, tag = "2")]
5240    pub effect_amplitude: ::core::option::Option<f32>,
5241    #[prost(float, optional, tag = "3")]
5242    pub effect_frequency: ::core::option::Option<f32>,
5243    #[prost(float, optional, tag = "4")]
5244    pub effect_duration: ::core::option::Option<f32>,
5245}
5246#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5247pub struct CUserMessageHapticsManagerEffect {
5248    #[prost(int32, optional, tag = "1")]
5249    pub hand_id: ::core::option::Option<i32>,
5250    #[prost(uint32, optional, tag = "2")]
5251    pub effect_name_hash_code: ::core::option::Option<u32>,
5252    #[prost(float, optional, tag = "3")]
5253    pub effect_scale: ::core::option::Option<f32>,
5254}
5255#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5256pub struct CUserMessageAnimStateGraphState {
5257    #[prost(int32, optional, tag = "1")]
5258    pub entity_index: ::core::option::Option<i32>,
5259    #[prost(bytes = "vec", optional, tag = "2")]
5260    pub data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5261}
5262#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5263pub struct CUserMessageUpdateCssClasses {
5264    #[prost(int32, optional, tag = "1")]
5265    pub target_world_panel: ::core::option::Option<i32>,
5266    #[prost(string, optional, tag = "2")]
5267    pub css_classes: ::core::option::Option<::prost::alloc::string::String>,
5268    #[prost(bool, optional, tag = "3")]
5269    pub is_add: ::core::option::Option<bool>,
5270}
5271#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5272pub struct CUserMessageServerFrameTime {
5273    #[prost(float, optional, tag = "1")]
5274    pub frame_time: ::core::option::Option<f32>,
5275}
5276#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, ::prost::Message)]
5277pub struct CUserMessageLagCompensationError {
5278    #[prost(float, optional, tag = "1")]
5279    pub distance: ::core::option::Option<f32>,
5280}
5281#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5282pub struct CUserMessageRequestDllStatus {
5283    #[prost(string, optional, tag = "1")]
5284    pub dll_action: ::core::option::Option<::prost::alloc::string::String>,
5285    #[prost(bool, optional, tag = "2")]
5286    pub full_report: ::core::option::Option<bool>,
5287}
5288#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5289pub struct CUserMessageRequestUtilAction {
5290    #[prost(int32, optional, tag = "2")]
5291    pub util1: ::core::option::Option<i32>,
5292    #[prost(int32, optional, tag = "3")]
5293    pub util2: ::core::option::Option<i32>,
5294    #[prost(int32, optional, tag = "4")]
5295    pub util3: ::core::option::Option<i32>,
5296    #[prost(int32, optional, tag = "5")]
5297    pub util4: ::core::option::Option<i32>,
5298    #[prost(int32, optional, tag = "6")]
5299    pub util5: ::core::option::Option<i32>,
5300}
5301#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5302pub struct CUserMessageUtilMsgResponse {
5303    #[prost(fixed32, optional, tag = "1")]
5304    pub crc: ::core::option::Option<u32>,
5305    #[prost(int32, optional, tag = "2")]
5306    pub item_count: ::core::option::Option<i32>,
5307    #[prost(fixed32, optional, tag = "3")]
5308    pub crc2: ::core::option::Option<u32>,
5309    #[prost(int32, optional, tag = "4")]
5310    pub item_count2: ::core::option::Option<i32>,
5311    #[prost(int32, repeated, packed = "false", tag = "5")]
5312    pub crc_part: ::prost::alloc::vec::Vec<i32>,
5313    #[prost(int32, repeated, packed = "false", tag = "6")]
5314    pub crc_part2: ::prost::alloc::vec::Vec<i32>,
5315    #[prost(int32, optional, tag = "7")]
5316    pub client_timestamp: ::core::option::Option<i32>,
5317    #[prost(int32, optional, tag = "8")]
5318    pub platform: ::core::option::Option<i32>,
5319    #[prost(message, repeated, tag = "9")]
5320    pub itemdetails: ::prost::alloc::vec::Vec<c_user_message_util_msg_response::ItemDetail>,
5321    #[prost(int32, optional, tag = "10")]
5322    pub itemgroup: ::core::option::Option<i32>,
5323    #[prost(int32, optional, tag = "11")]
5324    pub total_count: ::core::option::Option<i32>,
5325    #[prost(int32, optional, tag = "12")]
5326    pub total_count2: ::core::option::Option<i32>,
5327}
5328pub mod c_user_message_util_msg_response {
5329    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5330    pub struct ItemDetail {
5331        #[prost(int32, optional, tag = "1")]
5332        pub index: ::core::option::Option<i32>,
5333        #[prost(int32, optional, tag = "2")]
5334        pub hash: ::core::option::Option<i32>,
5335        #[prost(int32, optional, tag = "3")]
5336        pub crc: ::core::option::Option<i32>,
5337        #[prost(string, optional, tag = "4")]
5338        pub name: ::core::option::Option<::prost::alloc::string::String>,
5339    }
5340}
5341#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5342pub struct CUserMessageDllStatus {
5343    #[prost(string, optional, tag = "1")]
5344    pub file_report: ::core::option::Option<::prost::alloc::string::String>,
5345    #[prost(string, optional, tag = "2")]
5346    pub command_line: ::core::option::Option<::prost::alloc::string::String>,
5347    #[prost(uint32, optional, tag = "3")]
5348    pub total_files: ::core::option::Option<u32>,
5349    #[prost(uint32, optional, tag = "4")]
5350    pub process_id: ::core::option::Option<u32>,
5351    #[prost(int32, optional, tag = "5")]
5352    pub osversion: ::core::option::Option<i32>,
5353    #[prost(uint64, optional, tag = "6")]
5354    pub client_time: ::core::option::Option<u64>,
5355    #[prost(message, repeated, tag = "7")]
5356    pub diagnostics: ::prost::alloc::vec::Vec<c_user_message_dll_status::CvDiagnostic>,
5357    #[prost(message, repeated, tag = "8")]
5358    pub modules: ::prost::alloc::vec::Vec<c_user_message_dll_status::CModule>,
5359}
5360pub mod c_user_message_dll_status {
5361    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5362    pub struct CvDiagnostic {
5363        #[prost(uint32, optional, tag = "1")]
5364        pub id: ::core::option::Option<u32>,
5365        #[prost(uint32, optional, tag = "2")]
5366        pub extended: ::core::option::Option<u32>,
5367        #[prost(uint64, optional, tag = "3")]
5368        pub value: ::core::option::Option<u64>,
5369        #[prost(string, optional, tag = "4")]
5370        pub string_value: ::core::option::Option<::prost::alloc::string::String>,
5371    }
5372    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5373    pub struct CModule {
5374        #[prost(uint64, optional, tag = "1")]
5375        pub base_addr: ::core::option::Option<u64>,
5376        #[prost(string, optional, tag = "2")]
5377        pub name: ::core::option::Option<::prost::alloc::string::String>,
5378        #[prost(uint32, optional, tag = "3")]
5379        pub size: ::core::option::Option<u32>,
5380        #[prost(uint32, optional, tag = "4")]
5381        pub timestamp: ::core::option::Option<u32>,
5382    }
5383}
5384#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
5385pub struct CUserMessageRequestInventory {
5386    #[prost(int32, optional, tag = "1")]
5387    pub inventory: ::core::option::Option<i32>,
5388    #[prost(int32, optional, tag = "2")]
5389    pub offset: ::core::option::Option<i32>,
5390    #[prost(int32, optional, tag = "3")]
5391    pub options: ::core::option::Option<i32>,
5392}
5393#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5394pub struct CUserMessageInventoryResponse {
5395    #[prost(fixed32, optional, tag = "1")]
5396    pub crc: ::core::option::Option<u32>,
5397    #[prost(int32, optional, tag = "2")]
5398    pub item_count: ::core::option::Option<i32>,
5399    #[prost(int32, optional, tag = "5")]
5400    pub osversion: ::core::option::Option<i32>,
5401    #[prost(int32, optional, tag = "6")]
5402    pub perf_time: ::core::option::Option<i32>,
5403    #[prost(int32, optional, tag = "7")]
5404    pub client_timestamp: ::core::option::Option<i32>,
5405    #[prost(int32, optional, tag = "8")]
5406    pub platform: ::core::option::Option<i32>,
5407    #[prost(message, repeated, tag = "9")]
5408    pub inventories: ::prost::alloc::vec::Vec<c_user_message_inventory_response::InventoryDetail>,
5409    #[prost(message, repeated, tag = "10")]
5410    pub inventories2: ::prost::alloc::vec::Vec<c_user_message_inventory_response::InventoryDetail>,
5411    #[prost(message, repeated, tag = "14")]
5412    pub inventories3: ::prost::alloc::vec::Vec<c_user_message_inventory_response::InventoryDetail>,
5413    #[prost(int32, optional, tag = "11")]
5414    pub inv_type: ::core::option::Option<i32>,
5415    #[prost(int32, optional, tag = "12")]
5416    pub build_version: ::core::option::Option<i32>,
5417    #[prost(int32, optional, tag = "13")]
5418    pub instance: ::core::option::Option<i32>,
5419    #[prost(int64, optional, tag = "15")]
5420    pub start_time: ::core::option::Option<i64>,
5421}
5422pub mod c_user_message_inventory_response {
5423    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5424    pub struct InventoryDetail {
5425        #[prost(int32, optional, tag = "1")]
5426        pub index: ::core::option::Option<i32>,
5427        #[prost(int64, optional, tag = "2")]
5428        pub primary: ::core::option::Option<i64>,
5429        #[prost(int64, optional, tag = "3")]
5430        pub offset: ::core::option::Option<i64>,
5431        #[prost(int64, optional, tag = "4")]
5432        pub first: ::core::option::Option<i64>,
5433        #[prost(int64, optional, tag = "5")]
5434        pub base: ::core::option::Option<i64>,
5435        #[prost(string, optional, tag = "6")]
5436        pub name: ::core::option::Option<::prost::alloc::string::String>,
5437        #[prost(string, optional, tag = "7")]
5438        pub base_name: ::core::option::Option<::prost::alloc::string::String>,
5439        #[prost(int32, optional, tag = "8")]
5440        pub base_detail: ::core::option::Option<i32>,
5441        #[prost(int32, optional, tag = "9")]
5442        pub base_time: ::core::option::Option<i32>,
5443        #[prost(int32, optional, tag = "10")]
5444        pub base_hash: ::core::option::Option<i32>,
5445    }
5446}
5447#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5448pub struct CUserMessageRequestDiagnostic {
5449    #[prost(message, repeated, tag = "1")]
5450    pub diagnostics: ::prost::alloc::vec::Vec<c_user_message_request_diagnostic::Diagnostic>,
5451}
5452pub mod c_user_message_request_diagnostic {
5453    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5454    pub struct Diagnostic {
5455        #[prost(int32, optional, tag = "1")]
5456        pub index: ::core::option::Option<i32>,
5457        #[prost(int64, optional, tag = "2")]
5458        pub offset: ::core::option::Option<i64>,
5459        #[prost(int32, optional, tag = "3")]
5460        pub param: ::core::option::Option<i32>,
5461        #[prost(int32, optional, tag = "4")]
5462        pub length: ::core::option::Option<i32>,
5463        #[prost(int32, optional, tag = "5")]
5464        pub r#type: ::core::option::Option<i32>,
5465        #[prost(int64, optional, tag = "6")]
5466        pub base: ::core::option::Option<i64>,
5467        #[prost(int64, optional, tag = "7")]
5468        pub range: ::core::option::Option<i64>,
5469        #[prost(int64, optional, tag = "8")]
5470        pub extent: ::core::option::Option<i64>,
5471        #[prost(int64, optional, tag = "9")]
5472        pub detail: ::core::option::Option<i64>,
5473        #[prost(string, optional, tag = "10")]
5474        pub name: ::core::option::Option<::prost::alloc::string::String>,
5475        #[prost(string, optional, tag = "11")]
5476        pub alias: ::core::option::Option<::prost::alloc::string::String>,
5477        #[prost(bytes = "vec", optional, tag = "12")]
5478        pub vardetail: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5479        #[prost(int32, optional, tag = "13")]
5480        pub context: ::core::option::Option<i32>,
5481    }
5482}
5483#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5484pub struct CUserMessageDiagnosticResponse {
5485    #[prost(message, repeated, tag = "1")]
5486    pub diagnostics: ::prost::alloc::vec::Vec<c_user_message_diagnostic_response::Diagnostic>,
5487    #[prost(int32, optional, tag = "2")]
5488    pub build_version: ::core::option::Option<i32>,
5489    #[prost(int32, optional, tag = "3")]
5490    pub instance: ::core::option::Option<i32>,
5491    #[prost(int64, optional, tag = "4")]
5492    pub start_time: ::core::option::Option<i64>,
5493    #[prost(int32, optional, tag = "5")]
5494    pub osversion: ::core::option::Option<i32>,
5495    #[prost(int32, optional, tag = "6")]
5496    pub platform: ::core::option::Option<i32>,
5497}
5498pub mod c_user_message_diagnostic_response {
5499    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5500    pub struct Diagnostic {
5501        #[prost(int32, optional, tag = "1")]
5502        pub index: ::core::option::Option<i32>,
5503        #[prost(int64, optional, tag = "2")]
5504        pub offset: ::core::option::Option<i64>,
5505        #[prost(int32, optional, tag = "3")]
5506        pub param: ::core::option::Option<i32>,
5507        #[prost(int32, optional, tag = "4")]
5508        pub length: ::core::option::Option<i32>,
5509        #[prost(bytes = "vec", optional, tag = "5")]
5510        pub detail: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5511        #[prost(int64, optional, tag = "6")]
5512        pub base: ::core::option::Option<i64>,
5513        #[prost(int64, optional, tag = "7")]
5514        pub range: ::core::option::Option<i64>,
5515        #[prost(int32, optional, tag = "8")]
5516        pub r#type: ::core::option::Option<i32>,
5517        #[prost(string, optional, tag = "10")]
5518        pub name: ::core::option::Option<::prost::alloc::string::String>,
5519        #[prost(string, optional, tag = "11")]
5520        pub alias: ::core::option::Option<::prost::alloc::string::String>,
5521        #[prost(bytes = "vec", optional, tag = "12")]
5522        pub backup: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5523        #[prost(int32, optional, tag = "13")]
5524        pub context: ::core::option::Option<i32>,
5525        #[prost(int64, optional, tag = "14")]
5526        pub control: ::core::option::Option<i64>,
5527        #[prost(int64, optional, tag = "15")]
5528        pub augment: ::core::option::Option<i64>,
5529        #[prost(int64, optional, tag = "16")]
5530        pub placebo: ::core::option::Option<i64>,
5531    }
5532}
5533#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5534pub struct CUserMessageExtraUserData {
5535    #[prost(int32, optional, tag = "1")]
5536    pub item: ::core::option::Option<i32>,
5537    #[prost(int64, optional, tag = "2")]
5538    pub value1: ::core::option::Option<i64>,
5539    #[prost(int64, optional, tag = "3")]
5540    pub value2: ::core::option::Option<i64>,
5541    #[prost(bytes = "vec", repeated, tag = "4")]
5542    pub detail1: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
5543    #[prost(bytes = "vec", repeated, tag = "5")]
5544    pub detail2: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
5545}
5546#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5547pub struct CUserMessageNotifyResponseFound {
5548    #[prost(int32, optional, tag = "1", default = "-1")]
5549    pub ent_index: ::core::option::Option<i32>,
5550    #[prost(string, optional, tag = "2")]
5551    pub rule_name: ::core::option::Option<::prost::alloc::string::String>,
5552    #[prost(string, optional, tag = "3")]
5553    pub response_value: ::core::option::Option<::prost::alloc::string::String>,
5554    #[prost(string, optional, tag = "4")]
5555    pub response_concept: ::core::option::Option<::prost::alloc::string::String>,
5556    #[prost(message, repeated, tag = "5")]
5557    pub criteria: ::prost::alloc::vec::Vec<c_user_message_notify_response_found::Criteria>,
5558    #[prost(uint32, repeated, tag = "6")]
5559    pub int_criteria_names: ::prost::alloc::vec::Vec<u32>,
5560    #[prost(int32, repeated, tag = "7")]
5561    pub int_criteria_values: ::prost::alloc::vec::Vec<i32>,
5562    #[prost(uint32, repeated, tag = "8")]
5563    pub float_criteria_names: ::prost::alloc::vec::Vec<u32>,
5564    #[prost(float, repeated, packed = "false", tag = "9")]
5565    pub float_criteria_values: ::prost::alloc::vec::Vec<f32>,
5566    #[prost(uint32, repeated, tag = "10")]
5567    pub symbol_criteria_names: ::prost::alloc::vec::Vec<u32>,
5568    #[prost(uint32, repeated, tag = "11")]
5569    pub symbol_criteria_values: ::prost::alloc::vec::Vec<u32>,
5570    #[prost(int32, optional, tag = "12")]
5571    pub speak_result: ::core::option::Option<i32>,
5572}
5573pub mod c_user_message_notify_response_found {
5574    #[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5575    pub struct Criteria {
5576        #[prost(uint32, optional, tag = "1")]
5577        pub name_symbol: ::core::option::Option<u32>,
5578        #[prost(string, optional, tag = "2")]
5579        pub value: ::core::option::Option<::prost::alloc::string::String>,
5580    }
5581}
5582#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, ::prost::Message)]
5583pub struct CUserMessagePlayResponseConditional {
5584    #[prost(int32, optional, tag = "1", default = "-1")]
5585    pub ent_index: ::core::option::Option<i32>,
5586    #[prost(int32, repeated, packed = "false", tag = "2")]
5587    pub player_slots: ::prost::alloc::vec::Vec<i32>,
5588    #[prost(string, optional, tag = "3")]
5589    pub response: ::core::option::Option<::prost::alloc::string::String>,
5590    #[prost(message, optional, tag = "4")]
5591    pub ent_origin: ::core::option::Option<CMsgVector>,
5592    #[prost(float, optional, tag = "5")]
5593    pub pre_delay: ::core::option::Option<f32>,
5594    #[prost(int32, optional, tag = "6")]
5595    pub mix_priority: ::core::option::Option<i32>,
5596}
5597#[derive(serde::Serialize, serde::Deserialize, Clone, PartialEq, Eq, Hash, ::prost::Message)]
5598pub struct CUserMessageUsageReport {
5599    #[prost(string, optional, tag = "1")]
5600    pub usage: ::core::option::Option<::prost::alloc::string::String>,
5601}
5602#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5603#[repr(i32)]
5604pub enum EBaseUserMessages {
5605    UmAchievementEvent = 101,
5606    UmCurrentTimescale = 104,
5607    UmDesiredTimescale = 105,
5608    UmFade = 106,
5609    UmGameTitle = 107,
5610    UmHudMsg = 110,
5611    UmHudText = 111,
5612    UmColoredText = 113,
5613    UmRequestState = 114,
5614    UmResetHud = 115,
5615    UmRumble = 116,
5616    UmSayText = 117,
5617    UmSayText2 = 118,
5618    UmSayTextChannel = 119,
5619    UmShake = 120,
5620    UmShakeDir = 121,
5621    UmWaterShake = 122,
5622    UmTextMsg = 124,
5623    UmScreenTilt = 125,
5624    UmVoiceMask = 128,
5625    UmSendAudio = 130,
5626    UmItemPickup = 131,
5627    UmAmmoDenied = 132,
5628    UmShowMenu = 134,
5629    UmCreditsMsg = 135,
5630    UmCloseCaptionPlaceholder = 142,
5631    UmCameraTransition = 143,
5632    UmAudioParameter = 144,
5633    UmParticleManager = 145,
5634    UmHudError = 146,
5635    UmCustomGameEvent = 148,
5636    UmAnimGraphUpdate = 149,
5637    UmHapticsManagerPulse = 150,
5638    UmHapticsManagerEffect = 151,
5639    UmUpdateCssClasses = 153,
5640    UmServerFrameTime = 154,
5641    UmLagCompensationError = 155,
5642    UmRequestDllStatus = 156,
5643    UmRequestUtilAction = 157,
5644    UmUtilActionResponse = 158,
5645    UmDllStatusResponse = 159,
5646    UmRequestInventory = 160,
5647    UmInventoryResponse = 161,
5648    UmRequestDiagnostic = 162,
5649    UmDiagnosticResponse = 163,
5650    UmExtraUserData = 164,
5651    UmNotifyResponseFound = 165,
5652    UmPlayResponseConditional = 166,
5653    UmUserSentBugBug = 167,
5654    UmUsageReport = 168,
5655    UmMaxBase = 200,
5656}
5657#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5658#[repr(i32)]
5659pub enum EBaseEntityMessages {
5660    EmPlayJingle = 136,
5661    EmScreenOverlay = 137,
5662    EmPropagateForce = 139,
5663    EmDoSpark = 140,
5664    EmFixAngle = 141,
5665}
5666#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5667#[repr(i32)]
5668pub enum ERollType {
5669    RollNone = -1,
5670    RollStats = 0,
5671    RollCredits = 1,
5672    RollLateJoinLogo = 2,
5673    RollOuttro = 3,
5674}
5675#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5676#[repr(i32)]
5677pub enum ParticleMessage {
5678    GameParticleManagerEventCreate = 0,
5679    GameParticleManagerEventUpdate = 1,
5680    GameParticleManagerEventUpdateForward = 2,
5681    GameParticleManagerEventUpdateOrientation = 3,
5682    GameParticleManagerEventUpdateFallback = 4,
5683    GameParticleManagerEventUpdateEnt = 5,
5684    GameParticleManagerEventUpdateOffset = 6,
5685    GameParticleManagerEventDestroy = 7,
5686    GameParticleManagerEventDestroyInvolving = 8,
5687    GameParticleManagerEventRelease = 9,
5688    GameParticleManagerEventLatency = 10,
5689    GameParticleManagerEventShouldDraw = 11,
5690    GameParticleManagerEventFrozen = 12,
5691    GameParticleManagerEventChangeControlPointAttachment = 13,
5692    GameParticleManagerEventUpdateEntityPosition = 14,
5693    GameParticleManagerEventSetFowProperties = 15,
5694    GameParticleManagerEventSetText = 16,
5695    GameParticleManagerEventSetShouldCheckFow = 17,
5696    GameParticleManagerEventSetControlPointModel = 18,
5697    GameParticleManagerEventSetControlPointSnapshot = 19,
5698    GameParticleManagerEventSetTextureAttribute = 20,
5699    GameParticleManagerEventSetSceneObjectGenericFlag = 21,
5700    GameParticleManagerEventSetSceneObjectTintAndDesat = 22,
5701    GameParticleManagerEventDestroyNamed = 23,
5702    GameParticleManagerEventSkipToTime = 24,
5703    GameParticleManagerEventCanFreeze = 25,
5704    GameParticleManagerEventSetNamedValueContext = 26,
5705    GameParticleManagerEventUpdateTransform = 27,
5706    GameParticleManagerEventFreezeTransitionOverride = 28,
5707    GameParticleManagerEventFreezeInvolving = 29,
5708    GameParticleManagerEventAddModellistOverrideElement = 30,
5709    GameParticleManagerEventClearModellistOverride = 31,
5710    GameParticleManagerEventCreatePhysicsSim = 32,
5711    GameParticleManagerEventDestroyPhysicsSim = 33,
5712    GameParticleManagerEventSetVdata = 34,
5713    GameParticleManagerEventSetMaterialOverride = 35,
5714    GameParticleManagerEventAddFan = 36,
5715    GameParticleManagerEventUpdateFan = 37,
5716    GameParticleManagerEventSetClusterGrowth = 38,
5717    GameParticleManagerEventRemoveFan = 39,
5718    GameParticleManagerEventCreateSmokeGrid = 40,
5719    GameParticleManagerEventSetOverrideTexture = 41,
5720}
5721#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5722#[repr(i32)]
5723pub enum EHapticPulseType {
5724    VrHandHapticPulseLight = 0,
5725    VrHandHapticPulseMedium = 1,
5726    VrHandHapticPulseStrong = 2,
5727}