steam-vent-proto 0.1.0

Protobuf structs used by the Steam client protocol
Documentation
// This file is generated by rust-protobuf 2.24.1. Do not edit
// @generated

// https://github.com/rust-lang/rust-clippy/issues/702
#![allow(unknown_lints)]
#![allow(clippy::all)]

#![allow(unused_attributes)]
#![cfg_attr(rustfmt, rustfmt::skip)]

#![allow(box_pointers)]
#![allow(dead_code)]
#![allow(missing_docs)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![allow(non_upper_case_globals)]
#![allow(trivial_casts)]
#![allow(unused_imports)]
#![allow(unused_results)]
//! Generated file from `steammessages_shader.steamclient.proto`

/// Generated files are compatible only with the same version
/// of protobuf runtime.
// const _PROTOBUF_VERSION_CHECK: () = ::protobuf::VERSION_2_24_1;

#[derive(PartialEq,Clone,Default)]
pub struct CShader_RegisterShader_Request {
    // message fields
    appid: ::std::option::Option<u32>,
    gpu_desc: ::protobuf::SingularField<::std::string::String>,
    driver_desc: ::protobuf::SingularField<::std::string::String>,
    pub shaders: ::protobuf::RepeatedField<CShader_RegisterShader_Request_Shader>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CShader_RegisterShader_Request {
    fn default() -> &'a CShader_RegisterShader_Request {
        <CShader_RegisterShader_Request as ::protobuf::Message>::default_instance()
    }
}

impl CShader_RegisterShader_Request {
    pub fn new() -> CShader_RegisterShader_Request {
        ::std::default::Default::default()
    }

    // optional uint32 appid = 1;


    pub fn get_appid(&self) -> u32 {
        self.appid.unwrap_or(0)
    }
    pub fn clear_appid(&mut self) {
        self.appid = ::std::option::Option::None;
    }

    pub fn has_appid(&self) -> bool {
        self.appid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_appid(&mut self, v: u32) {
        self.appid = ::std::option::Option::Some(v);
    }

    // optional string gpu_desc = 2;


    pub fn get_gpu_desc(&self) -> &str {
        match self.gpu_desc.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_gpu_desc(&mut self) {
        self.gpu_desc.clear();
    }

    pub fn has_gpu_desc(&self) -> bool {
        self.gpu_desc.is_some()
    }

    // Param is passed by value, moved
    pub fn set_gpu_desc(&mut self, v: ::std::string::String) {
        self.gpu_desc = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_gpu_desc(&mut self) -> &mut ::std::string::String {
        if self.gpu_desc.is_none() {
            self.gpu_desc.set_default();
        }
        self.gpu_desc.as_mut().unwrap()
    }

    // Take field
    pub fn take_gpu_desc(&mut self) -> ::std::string::String {
        self.gpu_desc.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string driver_desc = 3;


    pub fn get_driver_desc(&self) -> &str {
        match self.driver_desc.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_driver_desc(&mut self) {
        self.driver_desc.clear();
    }

    pub fn has_driver_desc(&self) -> bool {
        self.driver_desc.is_some()
    }

    // Param is passed by value, moved
    pub fn set_driver_desc(&mut self, v: ::std::string::String) {
        self.driver_desc = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_driver_desc(&mut self) -> &mut ::std::string::String {
        if self.driver_desc.is_none() {
            self.driver_desc.set_default();
        }
        self.driver_desc.as_mut().unwrap()
    }

    // Take field
    pub fn take_driver_desc(&mut self) -> ::std::string::String {
        self.driver_desc.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // repeated .CShader_RegisterShader_Request.Shader shaders = 4;


    pub fn get_shaders(&self) -> &[CShader_RegisterShader_Request_Shader] {
        &self.shaders
    }
    pub fn clear_shaders(&mut self) {
        self.shaders.clear();
    }

    // Param is passed by value, moved
    pub fn set_shaders(&mut self, v: ::protobuf::RepeatedField<CShader_RegisterShader_Request_Shader>) {
        self.shaders = v;
    }

    // Mutable pointer to the field.
    pub fn mut_shaders(&mut self) -> &mut ::protobuf::RepeatedField<CShader_RegisterShader_Request_Shader> {
        &mut self.shaders
    }

    // Take field
    pub fn take_shaders(&mut self) -> ::protobuf::RepeatedField<CShader_RegisterShader_Request_Shader> {
        ::std::mem::replace(&mut self.shaders, ::protobuf::RepeatedField::new())
    }
}

impl ::protobuf::Message for CShader_RegisterShader_Request {
    fn is_initialized(&self) -> bool {
        for v in &self.shaders {
            if !v.is_initialized() {
                return false;
            }
        };
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.appid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.gpu_desc)?;
                },
                3 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.driver_desc)?;
                },
                4 => {
                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.shaders)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.appid {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(ref v) = self.gpu_desc.as_ref() {
            my_size += ::protobuf::rt::string_size(2, &v);
        }
        if let Some(ref v) = self.driver_desc.as_ref() {
            my_size += ::protobuf::rt::string_size(3, &v);
        }
        for value in &self.shaders {
            let len = value.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        };
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.appid {
            os.write_uint32(1, v)?;
        }
        if let Some(ref v) = self.gpu_desc.as_ref() {
            os.write_string(2, &v)?;
        }
        if let Some(ref v) = self.driver_desc.as_ref() {
            os.write_string(3, &v)?;
        }
        for v in &self.shaders {
            os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        };
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CShader_RegisterShader_Request {
        CShader_RegisterShader_Request::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "appid",
                |m: &CShader_RegisterShader_Request| { &m.appid },
                |m: &mut CShader_RegisterShader_Request| { &mut m.appid },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "gpu_desc",
                |m: &CShader_RegisterShader_Request| { &m.gpu_desc },
                |m: &mut CShader_RegisterShader_Request| { &mut m.gpu_desc },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "driver_desc",
                |m: &CShader_RegisterShader_Request| { &m.driver_desc },
                |m: &mut CShader_RegisterShader_Request| { &mut m.driver_desc },
            ));
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<CShader_RegisterShader_Request_Shader>>(
                "shaders",
                |m: &CShader_RegisterShader_Request| { &m.shaders },
                |m: &mut CShader_RegisterShader_Request| { &mut m.shaders },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CShader_RegisterShader_Request>(
                "CShader_RegisterShader_Request",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CShader_RegisterShader_Request {
        static instance: ::protobuf::rt::LazyV2<CShader_RegisterShader_Request> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CShader_RegisterShader_Request::new)
    }
}

impl ::protobuf::Clear for CShader_RegisterShader_Request {
    fn clear(&mut self) {
        self.appid = ::std::option::Option::None;
        self.gpu_desc.clear();
        self.driver_desc.clear();
        self.shaders.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CShader_RegisterShader_Request {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CShader_RegisterShader_Request {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CShader_RegisterShader_Request_Shader {
    // message fields
    cache_key_sha: ::protobuf::SingularField<::std::vec::Vec<u8>>,
    shader_code_sha: ::protobuf::SingularField<::std::vec::Vec<u8>>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CShader_RegisterShader_Request_Shader {
    fn default() -> &'a CShader_RegisterShader_Request_Shader {
        <CShader_RegisterShader_Request_Shader as ::protobuf::Message>::default_instance()
    }
}

impl CShader_RegisterShader_Request_Shader {
    pub fn new() -> CShader_RegisterShader_Request_Shader {
        ::std::default::Default::default()
    }

    // optional bytes cache_key_sha = 1;


    pub fn get_cache_key_sha(&self) -> &[u8] {
        match self.cache_key_sha.as_ref() {
            Some(v) => &v,
            None => &[],
        }
    }
    pub fn clear_cache_key_sha(&mut self) {
        self.cache_key_sha.clear();
    }

    pub fn has_cache_key_sha(&self) -> bool {
        self.cache_key_sha.is_some()
    }

    // Param is passed by value, moved
    pub fn set_cache_key_sha(&mut self, v: ::std::vec::Vec<u8>) {
        self.cache_key_sha = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_cache_key_sha(&mut self) -> &mut ::std::vec::Vec<u8> {
        if self.cache_key_sha.is_none() {
            self.cache_key_sha.set_default();
        }
        self.cache_key_sha.as_mut().unwrap()
    }

    // Take field
    pub fn take_cache_key_sha(&mut self) -> ::std::vec::Vec<u8> {
        self.cache_key_sha.take().unwrap_or_else(|| ::std::vec::Vec::new())
    }

    // optional bytes shader_code_sha = 2;


    pub fn get_shader_code_sha(&self) -> &[u8] {
        match self.shader_code_sha.as_ref() {
            Some(v) => &v,
            None => &[],
        }
    }
    pub fn clear_shader_code_sha(&mut self) {
        self.shader_code_sha.clear();
    }

    pub fn has_shader_code_sha(&self) -> bool {
        self.shader_code_sha.is_some()
    }

    // Param is passed by value, moved
    pub fn set_shader_code_sha(&mut self, v: ::std::vec::Vec<u8>) {
        self.shader_code_sha = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_shader_code_sha(&mut self) -> &mut ::std::vec::Vec<u8> {
        if self.shader_code_sha.is_none() {
            self.shader_code_sha.set_default();
        }
        self.shader_code_sha.as_mut().unwrap()
    }

    // Take field
    pub fn take_shader_code_sha(&mut self) -> ::std::vec::Vec<u8> {
        self.shader_code_sha.take().unwrap_or_else(|| ::std::vec::Vec::new())
    }
}

impl ::protobuf::Message for CShader_RegisterShader_Request_Shader {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    ::protobuf::rt::read_singular_bytes_into(wire_type, is, &mut self.cache_key_sha)?;
                },
                2 => {
                    ::protobuf::rt::read_singular_bytes_into(wire_type, is, &mut self.shader_code_sha)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(ref v) = self.cache_key_sha.as_ref() {
            my_size += ::protobuf::rt::bytes_size(1, &v);
        }
        if let Some(ref v) = self.shader_code_sha.as_ref() {
            my_size += ::protobuf::rt::bytes_size(2, &v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(ref v) = self.cache_key_sha.as_ref() {
            os.write_bytes(1, &v)?;
        }
        if let Some(ref v) = self.shader_code_sha.as_ref() {
            os.write_bytes(2, &v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CShader_RegisterShader_Request_Shader {
        CShader_RegisterShader_Request_Shader::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeBytes>(
                "cache_key_sha",
                |m: &CShader_RegisterShader_Request_Shader| { &m.cache_key_sha },
                |m: &mut CShader_RegisterShader_Request_Shader| { &mut m.cache_key_sha },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeBytes>(
                "shader_code_sha",
                |m: &CShader_RegisterShader_Request_Shader| { &m.shader_code_sha },
                |m: &mut CShader_RegisterShader_Request_Shader| { &mut m.shader_code_sha },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CShader_RegisterShader_Request_Shader>(
                "CShader_RegisterShader_Request.Shader",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CShader_RegisterShader_Request_Shader {
        static instance: ::protobuf::rt::LazyV2<CShader_RegisterShader_Request_Shader> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CShader_RegisterShader_Request_Shader::new)
    }
}

impl ::protobuf::Clear for CShader_RegisterShader_Request_Shader {
    fn clear(&mut self) {
        self.cache_key_sha.clear();
        self.shader_code_sha.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CShader_RegisterShader_Request_Shader {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CShader_RegisterShader_Request_Shader {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CShader_RegisterShader_Response {
    // message fields
    pub requested_codeids: ::std::vec::Vec<u32>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CShader_RegisterShader_Response {
    fn default() -> &'a CShader_RegisterShader_Response {
        <CShader_RegisterShader_Response as ::protobuf::Message>::default_instance()
    }
}

impl CShader_RegisterShader_Response {
    pub fn new() -> CShader_RegisterShader_Response {
        ::std::default::Default::default()
    }

    // repeated uint32 requested_codeids = 1;


    pub fn get_requested_codeids(&self) -> &[u32] {
        &self.requested_codeids
    }
    pub fn clear_requested_codeids(&mut self) {
        self.requested_codeids.clear();
    }

    // Param is passed by value, moved
    pub fn set_requested_codeids(&mut self, v: ::std::vec::Vec<u32>) {
        self.requested_codeids = v;
    }

    // Mutable pointer to the field.
    pub fn mut_requested_codeids(&mut self) -> &mut ::std::vec::Vec<u32> {
        &mut self.requested_codeids
    }

    // Take field
    pub fn take_requested_codeids(&mut self) -> ::std::vec::Vec<u32> {
        ::std::mem::replace(&mut self.requested_codeids, ::std::vec::Vec::new())
    }
}

impl ::protobuf::Message for CShader_RegisterShader_Response {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    ::protobuf::rt::read_repeated_uint32_into(wire_type, is, &mut self.requested_codeids)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        for value in &self.requested_codeids {
            my_size += ::protobuf::rt::value_size(1, *value, ::protobuf::wire_format::WireTypeVarint);
        };
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        for v in &self.requested_codeids {
            os.write_uint32(1, *v)?;
        };
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CShader_RegisterShader_Response {
        CShader_RegisterShader_Response::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "requested_codeids",
                |m: &CShader_RegisterShader_Response| { &m.requested_codeids },
                |m: &mut CShader_RegisterShader_Response| { &mut m.requested_codeids },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CShader_RegisterShader_Response>(
                "CShader_RegisterShader_Response",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CShader_RegisterShader_Response {
        static instance: ::protobuf::rt::LazyV2<CShader_RegisterShader_Response> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CShader_RegisterShader_Response::new)
    }
}

impl ::protobuf::Clear for CShader_RegisterShader_Response {
    fn clear(&mut self) {
        self.requested_codeids.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CShader_RegisterShader_Response {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CShader_RegisterShader_Response {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CShader_SendShader_Request {
    // message fields
    appid: ::std::option::Option<u32>,
    pub shaders: ::protobuf::RepeatedField<CShader_SendShader_Request_ShaderCode>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CShader_SendShader_Request {
    fn default() -> &'a CShader_SendShader_Request {
        <CShader_SendShader_Request as ::protobuf::Message>::default_instance()
    }
}

impl CShader_SendShader_Request {
    pub fn new() -> CShader_SendShader_Request {
        ::std::default::Default::default()
    }

    // optional uint32 appid = 1;


    pub fn get_appid(&self) -> u32 {
        self.appid.unwrap_or(0)
    }
    pub fn clear_appid(&mut self) {
        self.appid = ::std::option::Option::None;
    }

    pub fn has_appid(&self) -> bool {
        self.appid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_appid(&mut self, v: u32) {
        self.appid = ::std::option::Option::Some(v);
    }

    // repeated .CShader_SendShader_Request.ShaderCode shaders = 2;


    pub fn get_shaders(&self) -> &[CShader_SendShader_Request_ShaderCode] {
        &self.shaders
    }
    pub fn clear_shaders(&mut self) {
        self.shaders.clear();
    }

    // Param is passed by value, moved
    pub fn set_shaders(&mut self, v: ::protobuf::RepeatedField<CShader_SendShader_Request_ShaderCode>) {
        self.shaders = v;
    }

    // Mutable pointer to the field.
    pub fn mut_shaders(&mut self) -> &mut ::protobuf::RepeatedField<CShader_SendShader_Request_ShaderCode> {
        &mut self.shaders
    }

    // Take field
    pub fn take_shaders(&mut self) -> ::protobuf::RepeatedField<CShader_SendShader_Request_ShaderCode> {
        ::std::mem::replace(&mut self.shaders, ::protobuf::RepeatedField::new())
    }
}

impl ::protobuf::Message for CShader_SendShader_Request {
    fn is_initialized(&self) -> bool {
        for v in &self.shaders {
            if !v.is_initialized() {
                return false;
            }
        };
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.appid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.shaders)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.appid {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        for value in &self.shaders {
            let len = value.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        };
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.appid {
            os.write_uint32(1, v)?;
        }
        for v in &self.shaders {
            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        };
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CShader_SendShader_Request {
        CShader_SendShader_Request::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "appid",
                |m: &CShader_SendShader_Request| { &m.appid },
                |m: &mut CShader_SendShader_Request| { &mut m.appid },
            ));
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<CShader_SendShader_Request_ShaderCode>>(
                "shaders",
                |m: &CShader_SendShader_Request| { &m.shaders },
                |m: &mut CShader_SendShader_Request| { &mut m.shaders },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CShader_SendShader_Request>(
                "CShader_SendShader_Request",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CShader_SendShader_Request {
        static instance: ::protobuf::rt::LazyV2<CShader_SendShader_Request> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CShader_SendShader_Request::new)
    }
}

impl ::protobuf::Clear for CShader_SendShader_Request {
    fn clear(&mut self) {
        self.appid = ::std::option::Option::None;
        self.shaders.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CShader_SendShader_Request {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CShader_SendShader_Request {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CShader_SendShader_Request_ShaderCode {
    // message fields
    shader_code_sha: ::protobuf::SingularField<::std::vec::Vec<u8>>,
    shader_code: ::protobuf::SingularField<::std::vec::Vec<u8>>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CShader_SendShader_Request_ShaderCode {
    fn default() -> &'a CShader_SendShader_Request_ShaderCode {
        <CShader_SendShader_Request_ShaderCode as ::protobuf::Message>::default_instance()
    }
}

impl CShader_SendShader_Request_ShaderCode {
    pub fn new() -> CShader_SendShader_Request_ShaderCode {
        ::std::default::Default::default()
    }

    // optional bytes shader_code_sha = 1;


    pub fn get_shader_code_sha(&self) -> &[u8] {
        match self.shader_code_sha.as_ref() {
            Some(v) => &v,
            None => &[],
        }
    }
    pub fn clear_shader_code_sha(&mut self) {
        self.shader_code_sha.clear();
    }

    pub fn has_shader_code_sha(&self) -> bool {
        self.shader_code_sha.is_some()
    }

    // Param is passed by value, moved
    pub fn set_shader_code_sha(&mut self, v: ::std::vec::Vec<u8>) {
        self.shader_code_sha = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_shader_code_sha(&mut self) -> &mut ::std::vec::Vec<u8> {
        if self.shader_code_sha.is_none() {
            self.shader_code_sha.set_default();
        }
        self.shader_code_sha.as_mut().unwrap()
    }

    // Take field
    pub fn take_shader_code_sha(&mut self) -> ::std::vec::Vec<u8> {
        self.shader_code_sha.take().unwrap_or_else(|| ::std::vec::Vec::new())
    }

    // optional bytes shader_code = 2;


    pub fn get_shader_code(&self) -> &[u8] {
        match self.shader_code.as_ref() {
            Some(v) => &v,
            None => &[],
        }
    }
    pub fn clear_shader_code(&mut self) {
        self.shader_code.clear();
    }

    pub fn has_shader_code(&self) -> bool {
        self.shader_code.is_some()
    }

    // Param is passed by value, moved
    pub fn set_shader_code(&mut self, v: ::std::vec::Vec<u8>) {
        self.shader_code = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_shader_code(&mut self) -> &mut ::std::vec::Vec<u8> {
        if self.shader_code.is_none() {
            self.shader_code.set_default();
        }
        self.shader_code.as_mut().unwrap()
    }

    // Take field
    pub fn take_shader_code(&mut self) -> ::std::vec::Vec<u8> {
        self.shader_code.take().unwrap_or_else(|| ::std::vec::Vec::new())
    }
}

impl ::protobuf::Message for CShader_SendShader_Request_ShaderCode {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    ::protobuf::rt::read_singular_bytes_into(wire_type, is, &mut self.shader_code_sha)?;
                },
                2 => {
                    ::protobuf::rt::read_singular_bytes_into(wire_type, is, &mut self.shader_code)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(ref v) = self.shader_code_sha.as_ref() {
            my_size += ::protobuf::rt::bytes_size(1, &v);
        }
        if let Some(ref v) = self.shader_code.as_ref() {
            my_size += ::protobuf::rt::bytes_size(2, &v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(ref v) = self.shader_code_sha.as_ref() {
            os.write_bytes(1, &v)?;
        }
        if let Some(ref v) = self.shader_code.as_ref() {
            os.write_bytes(2, &v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CShader_SendShader_Request_ShaderCode {
        CShader_SendShader_Request_ShaderCode::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeBytes>(
                "shader_code_sha",
                |m: &CShader_SendShader_Request_ShaderCode| { &m.shader_code_sha },
                |m: &mut CShader_SendShader_Request_ShaderCode| { &mut m.shader_code_sha },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeBytes>(
                "shader_code",
                |m: &CShader_SendShader_Request_ShaderCode| { &m.shader_code },
                |m: &mut CShader_SendShader_Request_ShaderCode| { &mut m.shader_code },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CShader_SendShader_Request_ShaderCode>(
                "CShader_SendShader_Request.ShaderCode",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CShader_SendShader_Request_ShaderCode {
        static instance: ::protobuf::rt::LazyV2<CShader_SendShader_Request_ShaderCode> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CShader_SendShader_Request_ShaderCode::new)
    }
}

impl ::protobuf::Clear for CShader_SendShader_Request_ShaderCode {
    fn clear(&mut self) {
        self.shader_code_sha.clear();
        self.shader_code.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CShader_SendShader_Request_ShaderCode {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CShader_SendShader_Request_ShaderCode {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CShader_SendShader_Response {
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CShader_SendShader_Response {
    fn default() -> &'a CShader_SendShader_Response {
        <CShader_SendShader_Response as ::protobuf::Message>::default_instance()
    }
}

impl CShader_SendShader_Response {
    pub fn new() -> CShader_SendShader_Response {
        ::std::default::Default::default()
    }
}

impl ::protobuf::Message for CShader_SendShader_Response {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CShader_SendShader_Response {
        CShader_SendShader_Response::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let fields = ::std::vec::Vec::new();
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CShader_SendShader_Response>(
                "CShader_SendShader_Response",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CShader_SendShader_Response {
        static instance: ::protobuf::rt::LazyV2<CShader_SendShader_Response> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CShader_SendShader_Response::new)
    }
}

impl ::protobuf::Clear for CShader_SendShader_Response {
    fn clear(&mut self) {
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CShader_SendShader_Response {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CShader_SendShader_Response {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CShader_GetBucketManifest_Request {
    // message fields
    appid: ::std::option::Option<u32>,
    gpu_desc: ::protobuf::SingularField<::std::string::String>,
    driver_desc: ::protobuf::SingularField<::std::string::String>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CShader_GetBucketManifest_Request {
    fn default() -> &'a CShader_GetBucketManifest_Request {
        <CShader_GetBucketManifest_Request as ::protobuf::Message>::default_instance()
    }
}

impl CShader_GetBucketManifest_Request {
    pub fn new() -> CShader_GetBucketManifest_Request {
        ::std::default::Default::default()
    }

    // optional uint32 appid = 1;


    pub fn get_appid(&self) -> u32 {
        self.appid.unwrap_or(0)
    }
    pub fn clear_appid(&mut self) {
        self.appid = ::std::option::Option::None;
    }

    pub fn has_appid(&self) -> bool {
        self.appid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_appid(&mut self, v: u32) {
        self.appid = ::std::option::Option::Some(v);
    }

    // optional string gpu_desc = 2;


    pub fn get_gpu_desc(&self) -> &str {
        match self.gpu_desc.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_gpu_desc(&mut self) {
        self.gpu_desc.clear();
    }

    pub fn has_gpu_desc(&self) -> bool {
        self.gpu_desc.is_some()
    }

    // Param is passed by value, moved
    pub fn set_gpu_desc(&mut self, v: ::std::string::String) {
        self.gpu_desc = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_gpu_desc(&mut self) -> &mut ::std::string::String {
        if self.gpu_desc.is_none() {
            self.gpu_desc.set_default();
        }
        self.gpu_desc.as_mut().unwrap()
    }

    // Take field
    pub fn take_gpu_desc(&mut self) -> ::std::string::String {
        self.gpu_desc.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string driver_desc = 3;


    pub fn get_driver_desc(&self) -> &str {
        match self.driver_desc.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_driver_desc(&mut self) {
        self.driver_desc.clear();
    }

    pub fn has_driver_desc(&self) -> bool {
        self.driver_desc.is_some()
    }

    // Param is passed by value, moved
    pub fn set_driver_desc(&mut self, v: ::std::string::String) {
        self.driver_desc = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_driver_desc(&mut self) -> &mut ::std::string::String {
        if self.driver_desc.is_none() {
            self.driver_desc.set_default();
        }
        self.driver_desc.as_mut().unwrap()
    }

    // Take field
    pub fn take_driver_desc(&mut self) -> ::std::string::String {
        self.driver_desc.take().unwrap_or_else(|| ::std::string::String::new())
    }
}

impl ::protobuf::Message for CShader_GetBucketManifest_Request {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.appid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.gpu_desc)?;
                },
                3 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.driver_desc)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.appid {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(ref v) = self.gpu_desc.as_ref() {
            my_size += ::protobuf::rt::string_size(2, &v);
        }
        if let Some(ref v) = self.driver_desc.as_ref() {
            my_size += ::protobuf::rt::string_size(3, &v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.appid {
            os.write_uint32(1, v)?;
        }
        if let Some(ref v) = self.gpu_desc.as_ref() {
            os.write_string(2, &v)?;
        }
        if let Some(ref v) = self.driver_desc.as_ref() {
            os.write_string(3, &v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CShader_GetBucketManifest_Request {
        CShader_GetBucketManifest_Request::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "appid",
                |m: &CShader_GetBucketManifest_Request| { &m.appid },
                |m: &mut CShader_GetBucketManifest_Request| { &mut m.appid },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "gpu_desc",
                |m: &CShader_GetBucketManifest_Request| { &m.gpu_desc },
                |m: &mut CShader_GetBucketManifest_Request| { &mut m.gpu_desc },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "driver_desc",
                |m: &CShader_GetBucketManifest_Request| { &m.driver_desc },
                |m: &mut CShader_GetBucketManifest_Request| { &mut m.driver_desc },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CShader_GetBucketManifest_Request>(
                "CShader_GetBucketManifest_Request",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CShader_GetBucketManifest_Request {
        static instance: ::protobuf::rt::LazyV2<CShader_GetBucketManifest_Request> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CShader_GetBucketManifest_Request::new)
    }
}

impl ::protobuf::Clear for CShader_GetBucketManifest_Request {
    fn clear(&mut self) {
        self.appid = ::std::option::Option::None;
        self.gpu_desc.clear();
        self.driver_desc.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CShader_GetBucketManifest_Request {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CShader_GetBucketManifest_Request {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CShader_GetBucketManifest_Response {
    // message fields
    manifestid: ::std::option::Option<u64>,
    depotsize: ::std::option::Option<u64>,
    bucketid: ::std::option::Option<u64>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CShader_GetBucketManifest_Response {
    fn default() -> &'a CShader_GetBucketManifest_Response {
        <CShader_GetBucketManifest_Response as ::protobuf::Message>::default_instance()
    }
}

impl CShader_GetBucketManifest_Response {
    pub fn new() -> CShader_GetBucketManifest_Response {
        ::std::default::Default::default()
    }

    // optional uint64 manifestid = 1;


    pub fn get_manifestid(&self) -> u64 {
        self.manifestid.unwrap_or(0)
    }
    pub fn clear_manifestid(&mut self) {
        self.manifestid = ::std::option::Option::None;
    }

    pub fn has_manifestid(&self) -> bool {
        self.manifestid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_manifestid(&mut self, v: u64) {
        self.manifestid = ::std::option::Option::Some(v);
    }

    // optional uint64 depotsize = 2;


    pub fn get_depotsize(&self) -> u64 {
        self.depotsize.unwrap_or(0)
    }
    pub fn clear_depotsize(&mut self) {
        self.depotsize = ::std::option::Option::None;
    }

    pub fn has_depotsize(&self) -> bool {
        self.depotsize.is_some()
    }

    // Param is passed by value, moved
    pub fn set_depotsize(&mut self, v: u64) {
        self.depotsize = ::std::option::Option::Some(v);
    }

    // optional uint64 bucketid = 3;


    pub fn get_bucketid(&self) -> u64 {
        self.bucketid.unwrap_or(0)
    }
    pub fn clear_bucketid(&mut self) {
        self.bucketid = ::std::option::Option::None;
    }

    pub fn has_bucketid(&self) -> bool {
        self.bucketid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_bucketid(&mut self, v: u64) {
        self.bucketid = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CShader_GetBucketManifest_Response {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint64()?;
                    self.manifestid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint64()?;
                    self.depotsize = ::std::option::Option::Some(tmp);
                },
                3 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint64()?;
                    self.bucketid = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.manifestid {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.depotsize {
            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.bucketid {
            my_size += ::protobuf::rt::value_size(3, v, ::protobuf::wire_format::WireTypeVarint);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.manifestid {
            os.write_uint64(1, v)?;
        }
        if let Some(v) = self.depotsize {
            os.write_uint64(2, v)?;
        }
        if let Some(v) = self.bucketid {
            os.write_uint64(3, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CShader_GetBucketManifest_Response {
        CShader_GetBucketManifest_Response::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "manifestid",
                |m: &CShader_GetBucketManifest_Response| { &m.manifestid },
                |m: &mut CShader_GetBucketManifest_Response| { &mut m.manifestid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "depotsize",
                |m: &CShader_GetBucketManifest_Response| { &m.depotsize },
                |m: &mut CShader_GetBucketManifest_Response| { &mut m.depotsize },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "bucketid",
                |m: &CShader_GetBucketManifest_Response| { &m.bucketid },
                |m: &mut CShader_GetBucketManifest_Response| { &mut m.bucketid },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CShader_GetBucketManifest_Response>(
                "CShader_GetBucketManifest_Response",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CShader_GetBucketManifest_Response {
        static instance: ::protobuf::rt::LazyV2<CShader_GetBucketManifest_Response> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CShader_GetBucketManifest_Response::new)
    }
}

impl ::protobuf::Clear for CShader_GetBucketManifest_Response {
    fn clear(&mut self) {
        self.manifestid = ::std::option::Option::None;
        self.depotsize = ::std::option::Option::None;
        self.bucketid = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CShader_GetBucketManifest_Response {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CShader_GetBucketManifest_Response {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CShader_GetStaleBucket_Request {
    // message fields
    gpu_desc: ::protobuf::SingularField<::std::string::String>,
    driver_desc: ::protobuf::SingularField<::std::string::String>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CShader_GetStaleBucket_Request {
    fn default() -> &'a CShader_GetStaleBucket_Request {
        <CShader_GetStaleBucket_Request as ::protobuf::Message>::default_instance()
    }
}

impl CShader_GetStaleBucket_Request {
    pub fn new() -> CShader_GetStaleBucket_Request {
        ::std::default::Default::default()
    }

    // optional string gpu_desc = 1;


    pub fn get_gpu_desc(&self) -> &str {
        match self.gpu_desc.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_gpu_desc(&mut self) {
        self.gpu_desc.clear();
    }

    pub fn has_gpu_desc(&self) -> bool {
        self.gpu_desc.is_some()
    }

    // Param is passed by value, moved
    pub fn set_gpu_desc(&mut self, v: ::std::string::String) {
        self.gpu_desc = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_gpu_desc(&mut self) -> &mut ::std::string::String {
        if self.gpu_desc.is_none() {
            self.gpu_desc.set_default();
        }
        self.gpu_desc.as_mut().unwrap()
    }

    // Take field
    pub fn take_gpu_desc(&mut self) -> ::std::string::String {
        self.gpu_desc.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string driver_desc = 2;


    pub fn get_driver_desc(&self) -> &str {
        match self.driver_desc.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_driver_desc(&mut self) {
        self.driver_desc.clear();
    }

    pub fn has_driver_desc(&self) -> bool {
        self.driver_desc.is_some()
    }

    // Param is passed by value, moved
    pub fn set_driver_desc(&mut self, v: ::std::string::String) {
        self.driver_desc = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_driver_desc(&mut self) -> &mut ::std::string::String {
        if self.driver_desc.is_none() {
            self.driver_desc.set_default();
        }
        self.driver_desc.as_mut().unwrap()
    }

    // Take field
    pub fn take_driver_desc(&mut self) -> ::std::string::String {
        self.driver_desc.take().unwrap_or_else(|| ::std::string::String::new())
    }
}

impl ::protobuf::Message for CShader_GetStaleBucket_Request {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.gpu_desc)?;
                },
                2 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.driver_desc)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(ref v) = self.gpu_desc.as_ref() {
            my_size += ::protobuf::rt::string_size(1, &v);
        }
        if let Some(ref v) = self.driver_desc.as_ref() {
            my_size += ::protobuf::rt::string_size(2, &v);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(ref v) = self.gpu_desc.as_ref() {
            os.write_string(1, &v)?;
        }
        if let Some(ref v) = self.driver_desc.as_ref() {
            os.write_string(2, &v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CShader_GetStaleBucket_Request {
        CShader_GetStaleBucket_Request::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "gpu_desc",
                |m: &CShader_GetStaleBucket_Request| { &m.gpu_desc },
                |m: &mut CShader_GetStaleBucket_Request| { &mut m.gpu_desc },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "driver_desc",
                |m: &CShader_GetStaleBucket_Request| { &m.driver_desc },
                |m: &mut CShader_GetStaleBucket_Request| { &mut m.driver_desc },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CShader_GetStaleBucket_Request>(
                "CShader_GetStaleBucket_Request",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CShader_GetStaleBucket_Request {
        static instance: ::protobuf::rt::LazyV2<CShader_GetStaleBucket_Request> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CShader_GetStaleBucket_Request::new)
    }
}

impl ::protobuf::Clear for CShader_GetStaleBucket_Request {
    fn clear(&mut self) {
        self.gpu_desc.clear();
        self.driver_desc.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CShader_GetStaleBucket_Request {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CShader_GetStaleBucket_Request {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CShader_GetStaleBucket_Response {
    // message fields
    bucketid: ::std::option::Option<u64>,
    appid: ::std::option::Option<u32>,
    manifestid: ::std::option::Option<u64>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CShader_GetStaleBucket_Response {
    fn default() -> &'a CShader_GetStaleBucket_Response {
        <CShader_GetStaleBucket_Response as ::protobuf::Message>::default_instance()
    }
}

impl CShader_GetStaleBucket_Response {
    pub fn new() -> CShader_GetStaleBucket_Response {
        ::std::default::Default::default()
    }

    // optional uint64 bucketid = 1;


    pub fn get_bucketid(&self) -> u64 {
        self.bucketid.unwrap_or(0)
    }
    pub fn clear_bucketid(&mut self) {
        self.bucketid = ::std::option::Option::None;
    }

    pub fn has_bucketid(&self) -> bool {
        self.bucketid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_bucketid(&mut self, v: u64) {
        self.bucketid = ::std::option::Option::Some(v);
    }

    // optional uint32 appid = 2;


    pub fn get_appid(&self) -> u32 {
        self.appid.unwrap_or(0)
    }
    pub fn clear_appid(&mut self) {
        self.appid = ::std::option::Option::None;
    }

    pub fn has_appid(&self) -> bool {
        self.appid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_appid(&mut self, v: u32) {
        self.appid = ::std::option::Option::Some(v);
    }

    // optional uint64 manifestid = 3;


    pub fn get_manifestid(&self) -> u64 {
        self.manifestid.unwrap_or(0)
    }
    pub fn clear_manifestid(&mut self) {
        self.manifestid = ::std::option::Option::None;
    }

    pub fn has_manifestid(&self) -> bool {
        self.manifestid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_manifestid(&mut self, v: u64) {
        self.manifestid = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CShader_GetStaleBucket_Response {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint64()?;
                    self.bucketid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.appid = ::std::option::Option::Some(tmp);
                },
                3 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint64()?;
                    self.manifestid = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.bucketid {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.appid {
            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.manifestid {
            my_size += ::protobuf::rt::value_size(3, v, ::protobuf::wire_format::WireTypeVarint);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.bucketid {
            os.write_uint64(1, v)?;
        }
        if let Some(v) = self.appid {
            os.write_uint32(2, v)?;
        }
        if let Some(v) = self.manifestid {
            os.write_uint64(3, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CShader_GetStaleBucket_Response {
        CShader_GetStaleBucket_Response::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "bucketid",
                |m: &CShader_GetStaleBucket_Response| { &m.bucketid },
                |m: &mut CShader_GetStaleBucket_Response| { &mut m.bucketid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "appid",
                |m: &CShader_GetStaleBucket_Response| { &m.appid },
                |m: &mut CShader_GetStaleBucket_Response| { &mut m.appid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "manifestid",
                |m: &CShader_GetStaleBucket_Response| { &m.manifestid },
                |m: &mut CShader_GetStaleBucket_Response| { &mut m.manifestid },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CShader_GetStaleBucket_Response>(
                "CShader_GetStaleBucket_Response",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CShader_GetStaleBucket_Response {
        static instance: ::protobuf::rt::LazyV2<CShader_GetStaleBucket_Response> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CShader_GetStaleBucket_Response::new)
    }
}

impl ::protobuf::Clear for CShader_GetStaleBucket_Response {
    fn clear(&mut self) {
        self.bucketid = ::std::option::Option::None;
        self.appid = ::std::option::Option::None;
        self.manifestid = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CShader_GetStaleBucket_Response {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CShader_GetStaleBucket_Response {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CShader_ReportExternalBuild_Request {
    // message fields
    appid: ::std::option::Option<u32>,
    gpu_desc: ::protobuf::SingularField<::std::string::String>,
    driver_desc: ::protobuf::SingularField<::std::string::String>,
    manifestid: ::std::option::Option<u64>,
    source_gpu_desc: ::protobuf::SingularField<::std::string::String>,
    source_driver_desc: ::protobuf::SingularField<::std::string::String>,
    depotsize: ::std::option::Option<u64>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CShader_ReportExternalBuild_Request {
    fn default() -> &'a CShader_ReportExternalBuild_Request {
        <CShader_ReportExternalBuild_Request as ::protobuf::Message>::default_instance()
    }
}

impl CShader_ReportExternalBuild_Request {
    pub fn new() -> CShader_ReportExternalBuild_Request {
        ::std::default::Default::default()
    }

    // optional uint32 appid = 1;


    pub fn get_appid(&self) -> u32 {
        self.appid.unwrap_or(0)
    }
    pub fn clear_appid(&mut self) {
        self.appid = ::std::option::Option::None;
    }

    pub fn has_appid(&self) -> bool {
        self.appid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_appid(&mut self, v: u32) {
        self.appid = ::std::option::Option::Some(v);
    }

    // optional string gpu_desc = 2;


    pub fn get_gpu_desc(&self) -> &str {
        match self.gpu_desc.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_gpu_desc(&mut self) {
        self.gpu_desc.clear();
    }

    pub fn has_gpu_desc(&self) -> bool {
        self.gpu_desc.is_some()
    }

    // Param is passed by value, moved
    pub fn set_gpu_desc(&mut self, v: ::std::string::String) {
        self.gpu_desc = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_gpu_desc(&mut self) -> &mut ::std::string::String {
        if self.gpu_desc.is_none() {
            self.gpu_desc.set_default();
        }
        self.gpu_desc.as_mut().unwrap()
    }

    // Take field
    pub fn take_gpu_desc(&mut self) -> ::std::string::String {
        self.gpu_desc.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string driver_desc = 3;


    pub fn get_driver_desc(&self) -> &str {
        match self.driver_desc.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_driver_desc(&mut self) {
        self.driver_desc.clear();
    }

    pub fn has_driver_desc(&self) -> bool {
        self.driver_desc.is_some()
    }

    // Param is passed by value, moved
    pub fn set_driver_desc(&mut self, v: ::std::string::String) {
        self.driver_desc = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_driver_desc(&mut self) -> &mut ::std::string::String {
        if self.driver_desc.is_none() {
            self.driver_desc.set_default();
        }
        self.driver_desc.as_mut().unwrap()
    }

    // Take field
    pub fn take_driver_desc(&mut self) -> ::std::string::String {
        self.driver_desc.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional uint64 manifestid = 4;


    pub fn get_manifestid(&self) -> u64 {
        self.manifestid.unwrap_or(0)
    }
    pub fn clear_manifestid(&mut self) {
        self.manifestid = ::std::option::Option::None;
    }

    pub fn has_manifestid(&self) -> bool {
        self.manifestid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_manifestid(&mut self, v: u64) {
        self.manifestid = ::std::option::Option::Some(v);
    }

    // optional string source_gpu_desc = 5;


    pub fn get_source_gpu_desc(&self) -> &str {
        match self.source_gpu_desc.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_source_gpu_desc(&mut self) {
        self.source_gpu_desc.clear();
    }

    pub fn has_source_gpu_desc(&self) -> bool {
        self.source_gpu_desc.is_some()
    }

    // Param is passed by value, moved
    pub fn set_source_gpu_desc(&mut self, v: ::std::string::String) {
        self.source_gpu_desc = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_source_gpu_desc(&mut self) -> &mut ::std::string::String {
        if self.source_gpu_desc.is_none() {
            self.source_gpu_desc.set_default();
        }
        self.source_gpu_desc.as_mut().unwrap()
    }

    // Take field
    pub fn take_source_gpu_desc(&mut self) -> ::std::string::String {
        self.source_gpu_desc.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional string source_driver_desc = 6;


    pub fn get_source_driver_desc(&self) -> &str {
        match self.source_driver_desc.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_source_driver_desc(&mut self) {
        self.source_driver_desc.clear();
    }

    pub fn has_source_driver_desc(&self) -> bool {
        self.source_driver_desc.is_some()
    }

    // Param is passed by value, moved
    pub fn set_source_driver_desc(&mut self, v: ::std::string::String) {
        self.source_driver_desc = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_source_driver_desc(&mut self) -> &mut ::std::string::String {
        if self.source_driver_desc.is_none() {
            self.source_driver_desc.set_default();
        }
        self.source_driver_desc.as_mut().unwrap()
    }

    // Take field
    pub fn take_source_driver_desc(&mut self) -> ::std::string::String {
        self.source_driver_desc.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional uint64 depotsize = 7;


    pub fn get_depotsize(&self) -> u64 {
        self.depotsize.unwrap_or(0)
    }
    pub fn clear_depotsize(&mut self) {
        self.depotsize = ::std::option::Option::None;
    }

    pub fn has_depotsize(&self) -> bool {
        self.depotsize.is_some()
    }

    // Param is passed by value, moved
    pub fn set_depotsize(&mut self, v: u64) {
        self.depotsize = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CShader_ReportExternalBuild_Request {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.appid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.gpu_desc)?;
                },
                3 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.driver_desc)?;
                },
                4 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint64()?;
                    self.manifestid = ::std::option::Option::Some(tmp);
                },
                5 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.source_gpu_desc)?;
                },
                6 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.source_driver_desc)?;
                },
                7 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint64()?;
                    self.depotsize = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.appid {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(ref v) = self.gpu_desc.as_ref() {
            my_size += ::protobuf::rt::string_size(2, &v);
        }
        if let Some(ref v) = self.driver_desc.as_ref() {
            my_size += ::protobuf::rt::string_size(3, &v);
        }
        if let Some(v) = self.manifestid {
            my_size += ::protobuf::rt::value_size(4, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(ref v) = self.source_gpu_desc.as_ref() {
            my_size += ::protobuf::rt::string_size(5, &v);
        }
        if let Some(ref v) = self.source_driver_desc.as_ref() {
            my_size += ::protobuf::rt::string_size(6, &v);
        }
        if let Some(v) = self.depotsize {
            my_size += ::protobuf::rt::value_size(7, v, ::protobuf::wire_format::WireTypeVarint);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.appid {
            os.write_uint32(1, v)?;
        }
        if let Some(ref v) = self.gpu_desc.as_ref() {
            os.write_string(2, &v)?;
        }
        if let Some(ref v) = self.driver_desc.as_ref() {
            os.write_string(3, &v)?;
        }
        if let Some(v) = self.manifestid {
            os.write_uint64(4, v)?;
        }
        if let Some(ref v) = self.source_gpu_desc.as_ref() {
            os.write_string(5, &v)?;
        }
        if let Some(ref v) = self.source_driver_desc.as_ref() {
            os.write_string(6, &v)?;
        }
        if let Some(v) = self.depotsize {
            os.write_uint64(7, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CShader_ReportExternalBuild_Request {
        CShader_ReportExternalBuild_Request::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "appid",
                |m: &CShader_ReportExternalBuild_Request| { &m.appid },
                |m: &mut CShader_ReportExternalBuild_Request| { &mut m.appid },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "gpu_desc",
                |m: &CShader_ReportExternalBuild_Request| { &m.gpu_desc },
                |m: &mut CShader_ReportExternalBuild_Request| { &mut m.gpu_desc },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "driver_desc",
                |m: &CShader_ReportExternalBuild_Request| { &m.driver_desc },
                |m: &mut CShader_ReportExternalBuild_Request| { &mut m.driver_desc },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "manifestid",
                |m: &CShader_ReportExternalBuild_Request| { &m.manifestid },
                |m: &mut CShader_ReportExternalBuild_Request| { &mut m.manifestid },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "source_gpu_desc",
                |m: &CShader_ReportExternalBuild_Request| { &m.source_gpu_desc },
                |m: &mut CShader_ReportExternalBuild_Request| { &mut m.source_gpu_desc },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "source_driver_desc",
                |m: &CShader_ReportExternalBuild_Request| { &m.source_driver_desc },
                |m: &mut CShader_ReportExternalBuild_Request| { &mut m.source_driver_desc },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "depotsize",
                |m: &CShader_ReportExternalBuild_Request| { &m.depotsize },
                |m: &mut CShader_ReportExternalBuild_Request| { &mut m.depotsize },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CShader_ReportExternalBuild_Request>(
                "CShader_ReportExternalBuild_Request",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CShader_ReportExternalBuild_Request {
        static instance: ::protobuf::rt::LazyV2<CShader_ReportExternalBuild_Request> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CShader_ReportExternalBuild_Request::new)
    }
}

impl ::protobuf::Clear for CShader_ReportExternalBuild_Request {
    fn clear(&mut self) {
        self.appid = ::std::option::Option::None;
        self.gpu_desc.clear();
        self.driver_desc.clear();
        self.manifestid = ::std::option::Option::None;
        self.source_gpu_desc.clear();
        self.source_driver_desc.clear();
        self.depotsize = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CShader_ReportExternalBuild_Request {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CShader_ReportExternalBuild_Request {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CShader_ReportExternalBuild_Response {
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CShader_ReportExternalBuild_Response {
    fn default() -> &'a CShader_ReportExternalBuild_Response {
        <CShader_ReportExternalBuild_Response as ::protobuf::Message>::default_instance()
    }
}

impl CShader_ReportExternalBuild_Response {
    pub fn new() -> CShader_ReportExternalBuild_Response {
        ::std::default::Default::default()
    }
}

impl ::protobuf::Message for CShader_ReportExternalBuild_Response {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CShader_ReportExternalBuild_Response {
        CShader_ReportExternalBuild_Response::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let fields = ::std::vec::Vec::new();
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CShader_ReportExternalBuild_Response>(
                "CShader_ReportExternalBuild_Response",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CShader_ReportExternalBuild_Response {
        static instance: ::protobuf::rt::LazyV2<CShader_ReportExternalBuild_Response> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CShader_ReportExternalBuild_Response::new)
    }
}

impl ::protobuf::Clear for CShader_ReportExternalBuild_Response {
    fn clear(&mut self) {
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CShader_ReportExternalBuild_Response {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CShader_ReportExternalBuild_Response {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

static file_descriptor_proto_data: &'static [u8] = b"\
    \n&steammessages_shader.steamclient.proto\x1a,steammessages_unified_base\
    .steamclient.proto\"\x8a\x02\n\x1eCShader_RegisterShader_Request\x12\x14\
    \n\x05appid\x18\x01\x20\x01(\rR\x05appid\x12\x19\n\x08gpu_desc\x18\x02\
    \x20\x01(\tR\x07gpuDesc\x12\x1f\n\x0bdriver_desc\x18\x03\x20\x01(\tR\ndr\
    iverDesc\x12@\n\x07shaders\x18\x04\x20\x03(\x0b2&.CShader_RegisterShader\
    _Request.ShaderR\x07shaders\x1aT\n\x06Shader\x12\"\n\rcache_key_sha\x18\
    \x01\x20\x01(\x0cR\x0bcacheKeySha\x12&\n\x0fshader_code_sha\x18\x02\x20\
    \x01(\x0cR\rshaderCodeSha\"N\n\x1fCShader_RegisterShader_Response\x12+\n\
    \x11requested_codeids\x18\x01\x20\x03(\rR\x10requestedCodeids\"\xcb\x01\
    \n\x1aCShader_SendShader_Request\x12\x14\n\x05appid\x18\x01\x20\x01(\rR\
    \x05appid\x12@\n\x07shaders\x18\x02\x20\x03(\x0b2&.CShader_SendShader_Re\
    quest.ShaderCodeR\x07shaders\x1aU\n\nShaderCode\x12&\n\x0fshader_code_sh\
    a\x18\x01\x20\x01(\x0cR\rshaderCodeSha\x12\x1f\n\x0bshader_code\x18\x02\
    \x20\x01(\x0cR\nshaderCode\"\x1d\n\x1bCShader_SendShader_Response\"u\n!C\
    Shader_GetBucketManifest_Request\x12\x14\n\x05appid\x18\x01\x20\x01(\rR\
    \x05appid\x12\x19\n\x08gpu_desc\x18\x02\x20\x01(\tR\x07gpuDesc\x12\x1f\n\
    \x0bdriver_desc\x18\x03\x20\x01(\tR\ndriverDesc\"~\n\"CShader_GetBucketM\
    anifest_Response\x12\x1e\n\nmanifestid\x18\x01\x20\x01(\x04R\nmanifestid\
    \x12\x1c\n\tdepotsize\x18\x02\x20\x01(\x04R\tdepotsize\x12\x1a\n\x08buck\
    etid\x18\x03\x20\x01(\x04R\x08bucketid\"\\\n\x1eCShader_GetStaleBucket_R\
    equest\x12\x19\n\x08gpu_desc\x18\x01\x20\x01(\tR\x07gpuDesc\x12\x1f\n\
    \x0bdriver_desc\x18\x02\x20\x01(\tR\ndriverDesc\"s\n\x1fCShader_GetStale\
    Bucket_Response\x12\x1a\n\x08bucketid\x18\x01\x20\x01(\x04R\x08bucketid\
    \x12\x14\n\x05appid\x18\x02\x20\x01(\rR\x05appid\x12\x1e\n\nmanifestid\
    \x18\x03\x20\x01(\x04R\nmanifestid\"\x8b\x02\n#CShader_ReportExternalBui\
    ld_Request\x12\x14\n\x05appid\x18\x01\x20\x01(\rR\x05appid\x12\x19\n\x08\
    gpu_desc\x18\x02\x20\x01(\tR\x07gpuDesc\x12\x1f\n\x0bdriver_desc\x18\x03\
    \x20\x01(\tR\ndriverDesc\x12\x1e\n\nmanifestid\x18\x04\x20\x01(\x04R\nma\
    nifestid\x12&\n\x0fsource_gpu_desc\x18\x05\x20\x01(\tR\rsourceGpuDesc\
    \x12,\n\x12source_driver_desc\x18\x06\x20\x01(\tR\x10sourceDriverDesc\
    \x12\x1c\n\tdepotsize\x18\x07\x20\x01(\x04R\tdepotsize\"&\n$CShader_Repo\
    rtExternalBuild_Response2\xbb\x06\n\x06Shader\x12\xbe\x01\n\x0eRegisterS\
    hader\x12\x1f.CShader_RegisterShader_Request\x1a\x20.CShader_RegisterSha\
    der_Response\"i\x82\xb5\x18eClient\x20just\x20finished\x20playing\x20a\
    \x20game,\x20detected\x20new\x20shader\x20cache\x20entries\x20and\x20is\
    \x20notifying\x20us\x20about\x20them\x12\x8f\x01\n\nSendShader\x12\x1b.C\
    Shader_SendShader_Request\x1a\x1c.CShader_SendShader_Response\"F\x82\xb5\
    \x18BClient\x20is\x20sending\x20us\x20actual\x20compiled\x20shader\x20co\
    de\x20that\x20we\x20requested\x12\xad\x01\n\x11GetBucketManifest\x12\".C\
    Shader_GetBucketManifest_Request\x1a#.CShader_GetBucketManifest_Response\
    \"O\x82\xb5\x18KClient\x20wants\x20to\x20know\x20the\x20manifest\x20ID\
    \x20to\x20fetch\x20(if\x20any)\x20for\x20a\x20bucket's\x20depot\x12\x8e\
    \x01\n\x0eGetStaleBucket\x12\x1f.CShader_GetStaleBucket_Request\x1a\x20.\
    CShader_GetStaleBucket_Response\"9\x82\xb5\x185Job\x20to\x20get\x20a\x20\
    stale\x20bucket\x20given\x20a\x20gpu\x20and\x20driver\x20desc\x12\x88\
    \x01\n\x13ReportExternalBuild\x12$.CShader_ReportExternalBuild_Request\
    \x1a%.CShader_ReportExternalBuild_Response\"$\x82\xb5\x18\x20Report\x20a\
    n\x20exernally\x20built\x20bucket\x1a\x12\x82\xb5\x18\x0eShader\x20metho\
    dsB\x03\x80\x01\x01J\xb1\x16\n\x06\x12\x04\0\0[\x01\n\t\n\x02\x03\0\x12\
    \x03\0\06\n\x08\n\x01\x08\x12\x03\x02\0\"\n\t\n\x02\x08\x10\x12\x03\x02\
    \0\"\n\n\n\x02\x04\0\x12\x04\x04\0\x0e\x01\n\n\n\x03\x04\0\x01\x12\x03\
    \x04\x08&\n\x0c\n\x04\x04\0\x03\0\x12\x04\x05\x08\x08\t\n\x0c\n\x05\x04\
    \0\x03\0\x01\x12\x03\x05\x10\x16\n\r\n\x06\x04\0\x03\0\x02\0\x12\x03\x06\
    \x101\n\x0e\n\x07\x04\0\x03\0\x02\0\x04\x12\x03\x06\x10\x18\n\x0e\n\x07\
    \x04\0\x03\0\x02\0\x05\x12\x03\x06\x19\x1e\n\x0e\n\x07\x04\0\x03\0\x02\0\
    \x01\x12\x03\x06\x1f,\n\x0e\n\x07\x04\0\x03\0\x02\0\x03\x12\x03\x06/0\n\
    \r\n\x06\x04\0\x03\0\x02\x01\x12\x03\x07\x103\n\x0e\n\x07\x04\0\x03\0\
    \x02\x01\x04\x12\x03\x07\x10\x18\n\x0e\n\x07\x04\0\x03\0\x02\x01\x05\x12\
    \x03\x07\x19\x1e\n\x0e\n\x07\x04\0\x03\0\x02\x01\x01\x12\x03\x07\x1f.\n\
    \x0e\n\x07\x04\0\x03\0\x02\x01\x03\x12\x03\x0712\n\x0b\n\x04\x04\0\x02\0\
    \x12\x03\n\x08\"\n\x0c\n\x05\x04\0\x02\0\x04\x12\x03\n\x08\x10\n\x0c\n\
    \x05\x04\0\x02\0\x05\x12\x03\n\x11\x17\n\x0c\n\x05\x04\0\x02\0\x01\x12\
    \x03\n\x18\x1d\n\x0c\n\x05\x04\0\x02\0\x03\x12\x03\n\x20!\n\x0b\n\x04\
    \x04\0\x02\x01\x12\x03\x0b\x08%\n\x0c\n\x05\x04\0\x02\x01\x04\x12\x03\
    \x0b\x08\x10\n\x0c\n\x05\x04\0\x02\x01\x05\x12\x03\x0b\x11\x17\n\x0c\n\
    \x05\x04\0\x02\x01\x01\x12\x03\x0b\x18\x20\n\x0c\n\x05\x04\0\x02\x01\x03\
    \x12\x03\x0b#$\n\x0b\n\x04\x04\0\x02\x02\x12\x03\x0c\x08(\n\x0c\n\x05\
    \x04\0\x02\x02\x04\x12\x03\x0c\x08\x10\n\x0c\n\x05\x04\0\x02\x02\x05\x12\
    \x03\x0c\x11\x17\n\x0c\n\x05\x04\0\x02\x02\x01\x12\x03\x0c\x18#\n\x0c\n\
    \x05\x04\0\x02\x02\x03\x12\x03\x0c&'\n\x0b\n\x04\x04\0\x02\x03\x12\x03\r\
    \x08D\n\x0c\n\x05\x04\0\x02\x03\x04\x12\x03\r\x08\x10\n\x0c\n\x05\x04\0\
    \x02\x03\x06\x12\x03\r\x117\n\x0c\n\x05\x04\0\x02\x03\x01\x12\x03\r8?\n\
    \x0c\n\x05\x04\0\x02\x03\x03\x12\x03\rBC\n\n\n\x02\x04\x01\x12\x04\x10\0\
    \x12\x01\n\n\n\x03\x04\x01\x01\x12\x03\x10\x08'\n\x0b\n\x04\x04\x01\x02\
    \0\x12\x03\x11\x08.\n\x0c\n\x05\x04\x01\x02\0\x04\x12\x03\x11\x08\x10\n\
    \x0c\n\x05\x04\x01\x02\0\x05\x12\x03\x11\x11\x17\n\x0c\n\x05\x04\x01\x02\
    \0\x01\x12\x03\x11\x18)\n\x0c\n\x05\x04\x01\x02\0\x03\x12\x03\x11,-\n\n\
    \n\x02\x04\x02\x12\x04\x14\0\x1c\x01\n\n\n\x03\x04\x02\x01\x12\x03\x14\
    \x08\"\n\x0c\n\x04\x04\x02\x03\0\x12\x04\x15\x08\x18\t\n\x0c\n\x05\x04\
    \x02\x03\0\x01\x12\x03\x15\x10\x1a\n\r\n\x06\x04\x02\x03\0\x02\0\x12\x03\
    \x16\x103\n\x0e\n\x07\x04\x02\x03\0\x02\0\x04\x12\x03\x16\x10\x18\n\x0e\
    \n\x07\x04\x02\x03\0\x02\0\x05\x12\x03\x16\x19\x1e\n\x0e\n\x07\x04\x02\
    \x03\0\x02\0\x01\x12\x03\x16\x1f.\n\x0e\n\x07\x04\x02\x03\0\x02\0\x03\
    \x12\x03\x1612\n\r\n\x06\x04\x02\x03\0\x02\x01\x12\x03\x17\x10/\n\x0e\n\
    \x07\x04\x02\x03\0\x02\x01\x04\x12\x03\x17\x10\x18\n\x0e\n\x07\x04\x02\
    \x03\0\x02\x01\x05\x12\x03\x17\x19\x1e\n\x0e\n\x07\x04\x02\x03\0\x02\x01\
    \x01\x12\x03\x17\x1f*\n\x0e\n\x07\x04\x02\x03\0\x02\x01\x03\x12\x03\x17-\
    .\n\x0b\n\x04\x04\x02\x02\0\x12\x03\x1a\x08\"\n\x0c\n\x05\x04\x02\x02\0\
    \x04\x12\x03\x1a\x08\x10\n\x0c\n\x05\x04\x02\x02\0\x05\x12\x03\x1a\x11\
    \x17\n\x0c\n\x05\x04\x02\x02\0\x01\x12\x03\x1a\x18\x1d\n\x0c\n\x05\x04\
    \x02\x02\0\x03\x12\x03\x1a\x20!\n\x0b\n\x04\x04\x02\x02\x01\x12\x03\x1b\
    \x08D\n\x0c\n\x05\x04\x02\x02\x01\x04\x12\x03\x1b\x08\x10\n\x0c\n\x05\
    \x04\x02\x02\x01\x06\x12\x03\x1b\x117\n\x0c\n\x05\x04\x02\x02\x01\x01\
    \x12\x03\x1b8?\n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x03\x1bBC\n\n\n\x02\
    \x04\x03\x12\x04\x1e\0\x1f\x01\n\n\n\x03\x04\x03\x01\x12\x03\x1e\x08#\n\
    \n\n\x02\x04\x04\x12\x04!\0%\x01\n\n\n\x03\x04\x04\x01\x12\x03!\x08)\n\
    \x0b\n\x04\x04\x04\x02\0\x12\x03\"\x08\"\n\x0c\n\x05\x04\x04\x02\0\x04\
    \x12\x03\"\x08\x10\n\x0c\n\x05\x04\x04\x02\0\x05\x12\x03\"\x11\x17\n\x0c\
    \n\x05\x04\x04\x02\0\x01\x12\x03\"\x18\x1d\n\x0c\n\x05\x04\x04\x02\0\x03\
    \x12\x03\"\x20!\n\x0b\n\x04\x04\x04\x02\x01\x12\x03#\x08%\n\x0c\n\x05\
    \x04\x04\x02\x01\x04\x12\x03#\x08\x10\n\x0c\n\x05\x04\x04\x02\x01\x05\
    \x12\x03#\x11\x17\n\x0c\n\x05\x04\x04\x02\x01\x01\x12\x03#\x18\x20\n\x0c\
    \n\x05\x04\x04\x02\x01\x03\x12\x03##$\n\x0b\n\x04\x04\x04\x02\x02\x12\
    \x03$\x08(\n\x0c\n\x05\x04\x04\x02\x02\x04\x12\x03$\x08\x10\n\x0c\n\x05\
    \x04\x04\x02\x02\x05\x12\x03$\x11\x17\n\x0c\n\x05\x04\x04\x02\x02\x01\
    \x12\x03$\x18#\n\x0c\n\x05\x04\x04\x02\x02\x03\x12\x03$&'\n\n\n\x02\x04\
    \x05\x12\x04'\0+\x01\n\n\n\x03\x04\x05\x01\x12\x03'\x08*\n\x0b\n\x04\x04\
    \x05\x02\0\x12\x03(\x08'\n\x0c\n\x05\x04\x05\x02\0\x04\x12\x03(\x08\x10\
    \n\x0c\n\x05\x04\x05\x02\0\x05\x12\x03(\x11\x17\n\x0c\n\x05\x04\x05\x02\
    \0\x01\x12\x03(\x18\"\n\x0c\n\x05\x04\x05\x02\0\x03\x12\x03(%&\n\x0b\n\
    \x04\x04\x05\x02\x01\x12\x03)\x08&\n\x0c\n\x05\x04\x05\x02\x01\x04\x12\
    \x03)\x08\x10\n\x0c\n\x05\x04\x05\x02\x01\x05\x12\x03)\x11\x17\n\x0c\n\
    \x05\x04\x05\x02\x01\x01\x12\x03)\x18!\n\x0c\n\x05\x04\x05\x02\x01\x03\
    \x12\x03)$%\n\x0b\n\x04\x04\x05\x02\x02\x12\x03*\x08%\n\x0c\n\x05\x04\
    \x05\x02\x02\x04\x12\x03*\x08\x10\n\x0c\n\x05\x04\x05\x02\x02\x05\x12\
    \x03*\x11\x17\n\x0c\n\x05\x04\x05\x02\x02\x01\x12\x03*\x18\x20\n\x0c\n\
    \x05\x04\x05\x02\x02\x03\x12\x03*#$\n\n\n\x02\x04\x06\x12\x04-\00\x01\n\
    \n\n\x03\x04\x06\x01\x12\x03-\x08&\n\x0b\n\x04\x04\x06\x02\0\x12\x03.\
    \x08%\n\x0c\n\x05\x04\x06\x02\0\x04\x12\x03.\x08\x10\n\x0c\n\x05\x04\x06\
    \x02\0\x05\x12\x03.\x11\x17\n\x0c\n\x05\x04\x06\x02\0\x01\x12\x03.\x18\
    \x20\n\x0c\n\x05\x04\x06\x02\0\x03\x12\x03.#$\n\x0b\n\x04\x04\x06\x02\
    \x01\x12\x03/\x08(\n\x0c\n\x05\x04\x06\x02\x01\x04\x12\x03/\x08\x10\n\
    \x0c\n\x05\x04\x06\x02\x01\x05\x12\x03/\x11\x17\n\x0c\n\x05\x04\x06\x02\
    \x01\x01\x12\x03/\x18#\n\x0c\n\x05\x04\x06\x02\x01\x03\x12\x03/&'\n\n\n\
    \x02\x04\x07\x12\x042\06\x01\n\n\n\x03\x04\x07\x01\x12\x032\x08'\n\x0b\n\
    \x04\x04\x07\x02\0\x12\x033\x08%\n\x0c\n\x05\x04\x07\x02\0\x04\x12\x033\
    \x08\x10\n\x0c\n\x05\x04\x07\x02\0\x05\x12\x033\x11\x17\n\x0c\n\x05\x04\
    \x07\x02\0\x01\x12\x033\x18\x20\n\x0c\n\x05\x04\x07\x02\0\x03\x12\x033#$\
    \n\x0b\n\x04\x04\x07\x02\x01\x12\x034\x08\"\n\x0c\n\x05\x04\x07\x02\x01\
    \x04\x12\x034\x08\x10\n\x0c\n\x05\x04\x07\x02\x01\x05\x12\x034\x11\x17\n\
    \x0c\n\x05\x04\x07\x02\x01\x01\x12\x034\x18\x1d\n\x0c\n\x05\x04\x07\x02\
    \x01\x03\x12\x034\x20!\n\x0b\n\x04\x04\x07\x02\x02\x12\x035\x08'\n\x0c\n\
    \x05\x04\x07\x02\x02\x04\x12\x035\x08\x10\n\x0c\n\x05\x04\x07\x02\x02\
    \x05\x12\x035\x11\x17\n\x0c\n\x05\x04\x07\x02\x02\x01\x12\x035\x18\"\n\
    \x0c\n\x05\x04\x07\x02\x02\x03\x12\x035%&\n\n\n\x02\x04\x08\x12\x048\0@\
    \x01\n\n\n\x03\x04\x08\x01\x12\x038\x08+\n\x0b\n\x04\x04\x08\x02\0\x12\
    \x039\x08\"\n\x0c\n\x05\x04\x08\x02\0\x04\x12\x039\x08\x10\n\x0c\n\x05\
    \x04\x08\x02\0\x05\x12\x039\x11\x17\n\x0c\n\x05\x04\x08\x02\0\x01\x12\
    \x039\x18\x1d\n\x0c\n\x05\x04\x08\x02\0\x03\x12\x039\x20!\n\x0b\n\x04\
    \x04\x08\x02\x01\x12\x03:\x08%\n\x0c\n\x05\x04\x08\x02\x01\x04\x12\x03:\
    \x08\x10\n\x0c\n\x05\x04\x08\x02\x01\x05\x12\x03:\x11\x17\n\x0c\n\x05\
    \x04\x08\x02\x01\x01\x12\x03:\x18\x20\n\x0c\n\x05\x04\x08\x02\x01\x03\
    \x12\x03:#$\n\x0b\n\x04\x04\x08\x02\x02\x12\x03;\x08(\n\x0c\n\x05\x04\
    \x08\x02\x02\x04\x12\x03;\x08\x10\n\x0c\n\x05\x04\x08\x02\x02\x05\x12\
    \x03;\x11\x17\n\x0c\n\x05\x04\x08\x02\x02\x01\x12\x03;\x18#\n\x0c\n\x05\
    \x04\x08\x02\x02\x03\x12\x03;&'\n\x0b\n\x04\x04\x08\x02\x03\x12\x03<\x08\
    '\n\x0c\n\x05\x04\x08\x02\x03\x04\x12\x03<\x08\x10\n\x0c\n\x05\x04\x08\
    \x02\x03\x05\x12\x03<\x11\x17\n\x0c\n\x05\x04\x08\x02\x03\x01\x12\x03<\
    \x18\"\n\x0c\n\x05\x04\x08\x02\x03\x03\x12\x03<%&\n\x0b\n\x04\x04\x08\
    \x02\x04\x12\x03=\x08,\n\x0c\n\x05\x04\x08\x02\x04\x04\x12\x03=\x08\x10\
    \n\x0c\n\x05\x04\x08\x02\x04\x05\x12\x03=\x11\x17\n\x0c\n\x05\x04\x08\
    \x02\x04\x01\x12\x03=\x18'\n\x0c\n\x05\x04\x08\x02\x04\x03\x12\x03=*+\n\
    \x0b\n\x04\x04\x08\x02\x05\x12\x03>\x08/\n\x0c\n\x05\x04\x08\x02\x05\x04\
    \x12\x03>\x08\x10\n\x0c\n\x05\x04\x08\x02\x05\x05\x12\x03>\x11\x17\n\x0c\
    \n\x05\x04\x08\x02\x05\x01\x12\x03>\x18*\n\x0c\n\x05\x04\x08\x02\x05\x03\
    \x12\x03>-.\n\x0b\n\x04\x04\x08\x02\x06\x12\x03?\x08&\n\x0c\n\x05\x04\
    \x08\x02\x06\x04\x12\x03?\x08\x10\n\x0c\n\x05\x04\x08\x02\x06\x05\x12\
    \x03?\x11\x17\n\x0c\n\x05\x04\x08\x02\x06\x01\x12\x03?\x18!\n\x0c\n\x05\
    \x04\x08\x02\x06\x03\x12\x03?$%\n\n\n\x02\x04\t\x12\x04B\0C\x01\n\n\n\
    \x03\x04\t\x01\x12\x03B\x08,\n\n\n\x02\x06\0\x12\x04E\0[\x01\n\n\n\x03\
    \x06\0\x01\x12\x03E\x08\x0e\n\n\n\x03\x06\0\x03\x12\x03F\x088\n\r\n\x06\
    \x06\0\x03\xd0\x86\x03\x12\x03F\x088\n\x0c\n\x04\x06\0\x02\0\x12\x04H\
    \x08J\t\n\x0c\n\x05\x06\0\x02\0\x01\x12\x03H\x0c\x1a\n\x0c\n\x05\x06\0\
    \x02\0\x02\x12\x03H\x1c;\n\x0c\n\x05\x06\0\x02\0\x03\x12\x03HFf\n\r\n\
    \x05\x06\0\x02\0\x04\x12\x04I\x10\x96\x01\n\x10\n\x08\x06\0\x02\0\x04\
    \xd0\x86\x03\x12\x04I\x10\x96\x01\n\x0c\n\x04\x06\0\x02\x01\x12\x04L\x08\
    N\t\n\x0c\n\x05\x06\0\x02\x01\x01\x12\x03L\x0c\x16\n\x0c\n\x05\x06\0\x02\
    \x01\x02\x12\x03L\x183\n\x0c\n\x05\x06\0\x02\x01\x03\x12\x03L>Z\n\x0c\n\
    \x05\x06\0\x02\x01\x04\x12\x03M\x10s\n\x0f\n\x08\x06\0\x02\x01\x04\xd0\
    \x86\x03\x12\x03M\x10s\n\x0c\n\x04\x06\0\x02\x02\x12\x04P\x08R\t\n\x0c\n\
    \x05\x06\0\x02\x02\x01\x12\x03P\x0c\x1d\n\x0c\n\x05\x06\0\x02\x02\x02\
    \x12\x03P\x1fA\n\x0c\n\x05\x06\0\x02\x02\x03\x12\x03PLo\n\x0c\n\x05\x06\
    \0\x02\x02\x04\x12\x03Q\x10|\n\x0f\n\x08\x06\0\x02\x02\x04\xd0\x86\x03\
    \x12\x03Q\x10|\n\x0c\n\x04\x06\0\x02\x03\x12\x04T\x08V\t\n\x0c\n\x05\x06\
    \0\x02\x03\x01\x12\x03T\x0c\x1a\n\x0c\n\x05\x06\0\x02\x03\x02\x12\x03T\
    \x1c;\n\x0c\n\x05\x06\0\x02\x03\x03\x12\x03TFf\n\x0c\n\x05\x06\0\x02\x03\
    \x04\x12\x03U\x10f\n\x0f\n\x08\x06\0\x02\x03\x04\xd0\x86\x03\x12\x03U\
    \x10f\n\x0c\n\x04\x06\0\x02\x04\x12\x04X\x08Z\t\n\x0c\n\x05\x06\0\x02\
    \x04\x01\x12\x03X\x0c\x1f\n\x0c\n\x05\x06\0\x02\x04\x02\x12\x03X!E\n\x0c\
    \n\x05\x06\0\x02\x04\x03\x12\x03XPu\n\x0c\n\x05\x06\0\x02\x04\x04\x12\
    \x03Y\x10Q\n\x0f\n\x08\x06\0\x02\x04\x04\xd0\x86\x03\x12\x03Y\x10Q\
";

static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;

fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
    ::protobuf::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
}

pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
    file_descriptor_proto_lazy.get(|| {
        parse_descriptor_proto()
    })
}