// This file is generated. Do not edit // @generated // https://github.com/Manishearth/rust-clippy/issues/702 #![allow(unknown_lints)] #![allow(clippy)] #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(box_pointers)] #![allow(dead_code)] #![allow(non_camel_case_types)] #![allow(non_snake_case)] #![allow(non_upper_case_globals)] #![allow(trivial_casts)] #![allow(unsafe_code)] #![allow(unused_imports)] #![allow(unused_results)] use protobuf::Message as Message_imported_for_functions; use protobuf::ProtobufEnum as ProtobufEnum_imported_for_functions; #[derive(Clone,Default)] pub struct Frame { // message fields version: ::std::option::Option, ident: ::protobuf::SingularField<::std::string::String>, protocol_version: ::protobuf::SingularField<::std::string::String>, seq_nr: ::std::option::Option, typ: ::std::option::Option, device_state: ::protobuf::SingularPtrField, goodbye: ::protobuf::SingularPtrField, state: ::protobuf::SingularPtrField, position: ::std::option::Option, volume: ::std::option::Option, state_update_id: ::std::option::Option, recipient: ::protobuf::RepeatedField<::std::string::String>, context_player_state: ::protobuf::SingularField<::std::vec::Vec>, new_name: ::protobuf::SingularField<::std::string::String>, // special fields unknown_fields: ::protobuf::UnknownFields, cached_size: ::std::cell::Cell, } // see codegen.rs for the explanation why impl Sync explicitly unsafe impl ::std::marker::Sync for Frame {} impl Frame { pub fn new() -> Frame { ::std::default::Default::default() } pub fn default_instance() -> &'static Frame { static mut instance: ::protobuf::lazy::Lazy = ::protobuf::lazy::Lazy { lock: ::protobuf::lazy::ONCE_INIT, ptr: 0 as *const Frame, }; unsafe { instance.get(|| { Frame { version: ::std::option::Option::None, ident: ::protobuf::SingularField::none(), protocol_version: ::protobuf::SingularField::none(), seq_nr: ::std::option::Option::None, typ: ::std::option::Option::None, device_state: ::protobuf::SingularPtrField::none(), goodbye: ::protobuf::SingularPtrField::none(), state: ::protobuf::SingularPtrField::none(), position: ::std::option::Option::None, volume: ::std::option::Option::None, state_update_id: ::std::option::Option::None, recipient: ::protobuf::RepeatedField::new(), context_player_state: ::protobuf::SingularField::none(), new_name: ::protobuf::SingularField::none(), unknown_fields: ::protobuf::UnknownFields::new(), cached_size: ::std::cell::Cell::new(0), } }) } } // optional uint32 version = 1; pub fn clear_version(&mut self) { self.version = ::std::option::Option::None; } pub fn has_version(&self) -> bool { self.version.is_some() } // Param is passed by value, moved pub fn set_version(&mut self, v: u32) { self.version = ::std::option::Option::Some(v); } pub fn get_version(&self) -> u32 { self.version.unwrap_or(0) } // optional string ident = 2; pub fn clear_ident(&mut self) { self.ident.clear(); } pub fn has_ident(&self) -> bool { self.ident.is_some() } // Param is passed by value, moved pub fn set_ident(&mut self, v: ::std::string::String) { self.ident = ::protobuf::SingularField::some(v); } // Mutable pointer to the field. // If field is not initialized, it is initialized with default value first. pub fn mut_ident(&mut self) -> &mut ::std::string::String { if self.ident.is_none() { self.ident.set_default(); }; self.ident.as_mut().unwrap() } // Take field pub fn take_ident(&mut self) -> ::std::string::String { self.ident.take().unwrap_or_else(|| ::std::string::String::new()) } pub fn get_ident(&self) -> &str { match self.ident.as_ref() { Some(v) => &v, None => "", } } // optional string protocol_version = 3; pub fn clear_protocol_version(&mut self) { self.protocol_version.clear(); } pub fn has_protocol_version(&self) -> bool { self.protocol_version.is_some() } // Param is passed by value, moved pub fn set_protocol_version(&mut self, v: ::std::string::String) { self.protocol_version = ::protobuf::SingularField::some(v); } // Mutable pointer to the field. // If field is not initialized, it is initialized with default value first. pub fn mut_protocol_version(&mut self) -> &mut ::std::string::String { if self.protocol_version.is_none() { self.protocol_version.set_default(); }; self.protocol_version.as_mut().unwrap() } // Take field pub fn take_protocol_version(&mut self) -> ::std::string::String { self.protocol_version.take().unwrap_or_else(|| ::std::string::String::new()) } pub fn get_protocol_version(&self) -> &str { match self.protocol_version.as_ref() { Some(v) => &v, None => "", } } // optional uint32 seq_nr = 4; pub fn clear_seq_nr(&mut self) { self.seq_nr = ::std::option::Option::None; } pub fn has_seq_nr(&self) -> bool { self.seq_nr.is_some() } // Param is passed by value, moved pub fn set_seq_nr(&mut self, v: u32) { self.seq_nr = ::std::option::Option::Some(v); } pub fn get_seq_nr(&self) -> u32 { self.seq_nr.unwrap_or(0) } // optional .MessageType typ = 5; pub fn clear_typ(&mut self) { self.typ = ::std::option::Option::None; } pub fn has_typ(&self) -> bool { self.typ.is_some() } // Param is passed by value, moved pub fn set_typ(&mut self, v: MessageType) { self.typ = ::std::option::Option::Some(v); } pub fn get_typ(&self) -> MessageType { self.typ.unwrap_or(MessageType::kMessageTypeHello) } // optional .DeviceState device_state = 7; pub fn clear_device_state(&mut self) { self.device_state.clear(); } pub fn has_device_state(&self) -> bool { self.device_state.is_some() } // Param is passed by value, moved pub fn set_device_state(&mut self, v: DeviceState) { self.device_state = ::protobuf::SingularPtrField::some(v); } // Mutable pointer to the field. // If field is not initialized, it is initialized with default value first. pub fn mut_device_state(&mut self) -> &mut DeviceState { if self.device_state.is_none() { self.device_state.set_default(); }; self.device_state.as_mut().unwrap() } // Take field pub fn take_device_state(&mut self) -> DeviceState { self.device_state.take().unwrap_or_else(|| DeviceState::new()) } pub fn get_device_state(&self) -> &DeviceState { self.device_state.as_ref().unwrap_or_else(|| DeviceState::default_instance()) } // optional .Goodbye goodbye = 11; pub fn clear_goodbye(&mut self) { self.goodbye.clear(); } pub fn has_goodbye(&self) -> bool { self.goodbye.is_some() } // Param is passed by value, moved pub fn set_goodbye(&mut self, v: Goodbye) { self.goodbye = ::protobuf::SingularPtrField::some(v); } // Mutable pointer to the field. // If field is not initialized, it is initialized with default value first. pub fn mut_goodbye(&mut self) -> &mut Goodbye { if self.goodbye.is_none() { self.goodbye.set_default(); }; self.goodbye.as_mut().unwrap() } // Take field pub fn take_goodbye(&mut self) -> Goodbye { self.goodbye.take().unwrap_or_else(|| Goodbye::new()) } pub fn get_goodbye(&self) -> &Goodbye { self.goodbye.as_ref().unwrap_or_else(|| Goodbye::default_instance()) } // optional .State state = 12; pub fn clear_state(&mut self) { self.state.clear(); } pub fn has_state(&self) -> bool { self.state.is_some() } // Param is passed by value, moved pub fn set_state(&mut self, v: State) { self.state = ::protobuf::SingularPtrField::some(v); } // Mutable pointer to the field. // If field is not initialized, it is initialized with default value first. pub fn mut_state(&mut self) -> &mut State { if self.state.is_none() { self.state.set_default(); }; self.state.as_mut().unwrap() } // Take field pub fn take_state(&mut self) -> State { self.state.take().unwrap_or_else(|| State::new()) } pub fn get_state(&self) -> &State { self.state.as_ref().unwrap_or_else(|| State::default_instance()) } // optional uint32 position = 13; pub fn clear_position(&mut self) { self.position = ::std::option::Option::None; } pub fn has_position(&self) -> bool { self.position.is_some() } // Param is passed by value, moved pub fn set_position(&mut self, v: u32) { self.position = ::std::option::Option::Some(v); } pub fn get_position(&self) -> u32 { self.position.unwrap_or(0) } // optional uint32 volume = 14; pub fn clear_volume(&mut self) { self.volume = ::std::option::Option::None; } pub fn has_volume(&self) -> bool { self.volume.is_some() } // Param is passed by value, moved pub fn set_volume(&mut self, v: u32) { self.volume = ::std::option::Option::Some(v); } pub fn get_volume(&self) -> u32 { self.volume.unwrap_or(0) } // optional int64 state_update_id = 17; pub fn clear_state_update_id(&mut self) { self.state_update_id = ::std::option::Option::None; } pub fn has_state_update_id(&self) -> bool { self.state_update_id.is_some() } // Param is passed by value, moved pub fn set_state_update_id(&mut self, v: i64) { self.state_update_id = ::std::option::Option::Some(v); } pub fn get_state_update_id(&self) -> i64 { self.state_update_id.unwrap_or(0) } // repeated string recipient = 18; pub fn clear_recipient(&mut self) { self.recipient.clear(); } // Param is passed by value, moved pub fn set_recipient(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) { self.recipient = v; } // Mutable pointer to the field. pub fn mut_recipient(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> { &mut self.recipient } // Take field pub fn take_recipient(&mut self) -> ::protobuf::RepeatedField<::std::string::String> { ::std::mem::replace(&mut self.recipient, ::protobuf::RepeatedField::new()) } pub fn get_recipient(&self) -> &[::std::string::String] { &self.recipient } // optional bytes context_player_state = 19; pub fn clear_context_player_state(&mut self) { self.context_player_state.clear(); } pub fn has_context_player_state(&self) -> bool { self.context_player_state.is_some() } // Param is passed by value, moved pub fn set_context_player_state(&mut self, v: ::std::vec::Vec) { self.context_player_state = ::protobuf::SingularField::some(v); } // Mutable pointer to the field. // If field is not initialized, it is initialized with default value first. pub fn mut_context_player_state(&mut self) -> &mut ::std::vec::Vec { if self.context_player_state.is_none() { self.context_player_state.set_default(); }; self.context_player_state.as_mut().unwrap() } // Take field pub fn take_context_player_state(&mut self) -> ::std::vec::Vec { self.context_player_state.take().unwrap_or_else(|| ::std::vec::Vec::new()) } pub fn get_context_player_state(&self) -> &[u8] { match self.context_player_state.as_ref() { Some(v) => &v, None => &[], } } // optional string new_name = 20; pub fn clear_new_name(&mut self) { self.new_name.clear(); } pub fn has_new_name(&self) -> bool { self.new_name.is_some() } // Param is passed by value, moved pub fn set_new_name(&mut self, v: ::std::string::String) { self.new_name = ::protobuf::SingularField::some(v); } // Mutable pointer to the field. // If field is not initialized, it is initialized with default value first. pub fn mut_new_name(&mut self) -> &mut ::std::string::String { if self.new_name.is_none() { self.new_name.set_default(); }; self.new_name.as_mut().unwrap() } // Take field pub fn take_new_name(&mut self) -> ::std::string::String { self.new_name.take().unwrap_or_else(|| ::std::string::String::new()) } pub fn get_new_name(&self) -> &str { match self.new_name.as_ref() { Some(v) => &v, None => "", } } } impl ::protobuf::Message for Frame { fn is_initialized(&self) -> bool { true } fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> { while !try!(is.eof()) { let (field_number, wire_type) = try!(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 = try!(is.read_uint32()); self.version = ::std::option::Option::Some(tmp); }, 2 => { try!(::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.ident)); }, 3 => { try!(::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.protocol_version)); }, 4 => { if wire_type != ::protobuf::wire_format::WireTypeVarint { return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type)); }; let tmp = try!(is.read_uint32()); self.seq_nr = ::std::option::Option::Some(tmp); }, 5 => { if wire_type != ::protobuf::wire_format::WireTypeVarint { return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type)); }; let tmp = try!(is.read_enum()); self.typ = ::std::option::Option::Some(tmp); }, 7 => { try!(::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.device_state)); }, 11 => { try!(::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.goodbye)); }, 12 => { try!(::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.state)); }, 13 => { if wire_type != ::protobuf::wire_format::WireTypeVarint { return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type)); }; let tmp = try!(is.read_uint32()); self.position = ::std::option::Option::Some(tmp); }, 14 => { if wire_type != ::protobuf::wire_format::WireTypeVarint { return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type)); }; let tmp = try!(is.read_uint32()); self.volume = ::std::option::Option::Some(tmp); }, 17 => { if wire_type != ::protobuf::wire_format::WireTypeVarint { return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type)); }; let tmp = try!(is.read_int64()); self.state_update_id = ::std::option::Option::Some(tmp); }, 18 => { try!(::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.recipient)); }, 19 => { try!(::protobuf::rt::read_singular_bytes_into(wire_type, is, &mut self.context_player_state)); }, 20 => { try!(::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.new_name)); }, _ => { try!(::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.version { my_size += ::protobuf::rt::value_size(1, *value, ::protobuf::wire_format::WireTypeVarint); }; for value in &self.ident { my_size += ::protobuf::rt::string_size(2, &value); }; for value in &self.protocol_version { my_size += ::protobuf::rt::string_size(3, &value); }; for value in &self.seq_nr { my_size += ::protobuf::rt::value_size(4, *value, ::protobuf::wire_format::WireTypeVarint); }; for value in &self.typ { my_size += ::protobuf::rt::enum_size(5, *value); }; for value in &self.device_state { let len = value.compute_size(); my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len; }; for value in &self.goodbye { let len = value.compute_size(); my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len; }; for value in &self.state { let len = value.compute_size(); my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len; }; for value in &self.position { my_size += ::protobuf::rt::value_size(13, *value, ::protobuf::wire_format::WireTypeVarint); }; for value in &self.volume { my_size += ::protobuf::rt::value_size(14, *value, ::protobuf::wire_format::WireTypeVarint); }; for value in &self.state_update_id { my_size += ::protobuf::rt::value_size(17, *value, ::protobuf::wire_format::WireTypeVarint); }; for value in &self.recipient { my_size += ::protobuf::rt::string_size(18, &value); }; for value in &self.context_player_state { my_size += ::protobuf::rt::bytes_size(19, &value); }; for value in &self.new_name { my_size += ::protobuf::rt::string_size(20, &value); }; 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.version { try!(os.write_uint32(1, v)); }; if let Some(v) = self.ident.as_ref() { try!(os.write_string(2, &v)); }; if let Some(v) = self.protocol_version.as_ref() { try!(os.write_string(3, &v)); }; if let Some(v) = self.seq_nr { try!(os.write_uint32(4, v)); }; if let Some(v) = self.typ { try!(os.write_enum(5, v.value())); }; if let Some(v) = self.device_state.as_ref() { try!(os.write_tag(7, ::protobuf::wire_format::WireTypeLengthDelimited)); try!(os.write_raw_varint32(v.get_cached_size())); try!(v.write_to_with_cached_sizes(os)); }; if let Some(v) = self.goodbye.as_ref() { try!(os.write_tag(11, ::protobuf::wire_format::WireTypeLengthDelimited)); try!(os.write_raw_varint32(v.get_cached_size())); try!(v.write_to_with_cached_sizes(os)); }; if let Some(v) = self.state.as_ref() { try!(os.write_tag(12, ::protobuf::wire_format::WireTypeLengthDelimited)); try!(os.write_raw_varint32(v.get_cached_size())); try!(v.write_to_with_cached_sizes(os)); }; if let Some(v) = self.position { try!(os.write_uint32(13, v)); }; if let Some(v) = self.volume { try!(os.write_uint32(14, v)); }; if let Some(v) = self.state_update_id { try!(os.write_int64(17, v)); }; for v in &self.recipient { try!(os.write_string(18, &v)); }; if let Some(v) = self.context_player_state.as_ref() { try!(os.write_bytes(19, &v)); }; if let Some(v) = self.new_name.as_ref() { try!(os.write_string(20, &v)); }; try!(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 type_id(&self) -> ::std::any::TypeId { ::std::any::TypeId::of::() } fn as_any(&self) -> &::std::any::Any { self as &::std::any::Any } fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor { ::protobuf::MessageStatic::descriptor_static(None::) } } impl ::protobuf::MessageStatic for Frame { fn new() -> Frame { Frame::new() } fn descriptor_static(_: ::std::option::Option) -> &'static ::protobuf::reflect::MessageDescriptor { static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy { lock: ::protobuf::lazy::ONCE_INIT, ptr: 0 as *const ::protobuf::reflect::MessageDescriptor, }; unsafe { descriptor.get(|| { let mut fields = ::std::vec::Vec::new(); fields.push(::protobuf::reflect::accessor::make_singular_u32_accessor( "version", Frame::has_version, Frame::get_version, )); fields.push(::protobuf::reflect::accessor::make_singular_string_accessor( "ident", Frame::has_ident, Frame::get_ident, )); fields.push(::protobuf::reflect::accessor::make_singular_string_accessor( "protocol_version", Frame::has_protocol_version, Frame::get_protocol_version, )); fields.push(::protobuf::reflect::accessor::make_singular_u32_accessor( "seq_nr", Frame::has_seq_nr, Frame::get_seq_nr, )); fields.push(::protobuf::reflect::accessor::make_singular_enum_accessor( "typ", Frame::has_typ, Frame::get_typ, )); fields.push(::protobuf::reflect::accessor::make_singular_message_accessor( "device_state", Frame::has_device_state, Frame::get_device_state, )); fields.push(::protobuf::reflect::accessor::make_singular_message_accessor( "goodbye", Frame::has_goodbye, Frame::get_goodbye, )); fields.push(::protobuf::reflect::accessor::make_singular_message_accessor( "state", Frame::has_state, Frame::get_state, )); fields.push(::protobuf::reflect::accessor::make_singular_u32_accessor( "position", Frame::has_position, Frame::get_position, )); fields.push(::protobuf::reflect::accessor::make_singular_u32_accessor( "volume", Frame::has_volume, Frame::get_volume, )); fields.push(::protobuf::reflect::accessor::make_singular_i64_accessor( "state_update_id", Frame::has_state_update_id, Frame::get_state_update_id, )); fields.push(::protobuf::reflect::accessor::make_repeated_string_accessor( "recipient", Frame::get_recipient, )); fields.push(::protobuf::reflect::accessor::make_singular_bytes_accessor( "context_player_state", Frame::has_context_player_state, Frame::get_context_player_state, )); fields.push(::protobuf::reflect::accessor::make_singular_string_accessor( "new_name", Frame::has_new_name, Frame::get_new_name, )); ::protobuf::reflect::MessageDescriptor::new::( "Frame", fields, file_descriptor_proto() ) }) } } } impl ::protobuf::Clear for Frame { fn clear(&mut self) { self.clear_version(); self.clear_ident(); self.clear_protocol_version(); self.clear_seq_nr(); self.clear_typ(); self.clear_device_state(); self.clear_goodbye(); self.clear_state(); self.clear_position(); self.clear_volume(); self.clear_state_update_id(); self.clear_recipient(); self.clear_context_player_state(); self.clear_new_name(); self.unknown_fields.clear(); } } impl ::std::cmp::PartialEq for Frame { fn eq(&self, other: &Frame) -> bool { self.version == other.version && self.ident == other.ident && self.protocol_version == other.protocol_version && self.seq_nr == other.seq_nr && self.typ == other.typ && self.device_state == other.device_state && self.goodbye == other.goodbye && self.state == other.state && self.position == other.position && self.volume == other.volume && self.state_update_id == other.state_update_id && self.recipient == other.recipient && self.context_player_state == other.context_player_state && self.new_name == other.new_name && self.unknown_fields == other.unknown_fields } } impl ::std::fmt::Debug for Frame { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { ::protobuf::text_format::fmt(self, f) } } #[derive(Clone,Default)] pub struct DeviceState { // message fields sw_version: ::protobuf::SingularField<::std::string::String>, is_active: ::std::option::Option, can_play: ::std::option::Option, volume: ::std::option::Option, name: ::protobuf::SingularField<::std::string::String>, error_code: ::std::option::Option, became_active_at: ::std::option::Option, error_message: ::protobuf::SingularField<::std::string::String>, capabilities: ::protobuf::RepeatedField, // special fields unknown_fields: ::protobuf::UnknownFields, cached_size: ::std::cell::Cell, } // see codegen.rs for the explanation why impl Sync explicitly unsafe impl ::std::marker::Sync for DeviceState {} impl DeviceState { pub fn new() -> DeviceState { ::std::default::Default::default() } pub fn default_instance() -> &'static DeviceState { static mut instance: ::protobuf::lazy::Lazy = ::protobuf::lazy::Lazy { lock: ::protobuf::lazy::ONCE_INIT, ptr: 0 as *const DeviceState, }; unsafe { instance.get(|| { DeviceState { sw_version: ::protobuf::SingularField::none(), is_active: ::std::option::Option::None, can_play: ::std::option::Option::None, volume: ::std::option::Option::None, name: ::protobuf::SingularField::none(), error_code: ::std::option::Option::None, became_active_at: ::std::option::Option::None, error_message: ::protobuf::SingularField::none(), capabilities: ::protobuf::RepeatedField::new(), unknown_fields: ::protobuf::UnknownFields::new(), cached_size: ::std::cell::Cell::new(0), } }) } } // optional string sw_version = 1; pub fn clear_sw_version(&mut self) { self.sw_version.clear(); } pub fn has_sw_version(&self) -> bool { self.sw_version.is_some() } // Param is passed by value, moved pub fn set_sw_version(&mut self, v: ::std::string::String) { self.sw_version = ::protobuf::SingularField::some(v); } // Mutable pointer to the field. // If field is not initialized, it is initialized with default value first. pub fn mut_sw_version(&mut self) -> &mut ::std::string::String { if self.sw_version.is_none() { self.sw_version.set_default(); }; self.sw_version.as_mut().unwrap() } // Take field pub fn take_sw_version(&mut self) -> ::std::string::String { self.sw_version.take().unwrap_or_else(|| ::std::string::String::new()) } pub fn get_sw_version(&self) -> &str { match self.sw_version.as_ref() { Some(v) => &v, None => "", } } // optional bool is_active = 10; pub fn clear_is_active(&mut self) { self.is_active = ::std::option::Option::None; } pub fn has_is_active(&self) -> bool { self.is_active.is_some() } // Param is passed by value, moved pub fn set_is_active(&mut self, v: bool) { self.is_active = ::std::option::Option::Some(v); } pub fn get_is_active(&self) -> bool { self.is_active.unwrap_or(false) } // optional bool can_play = 11; pub fn clear_can_play(&mut self) { self.can_play = ::std::option::Option::None; } pub fn has_can_play(&self) -> bool { self.can_play.is_some() } // Param is passed by value, moved pub fn set_can_play(&mut self, v: bool) { self.can_play = ::std::option::Option::Some(v); } pub fn get_can_play(&self) -> bool { self.can_play.unwrap_or(false) } // optional uint32 volume = 12; pub fn clear_volume(&mut self) { self.volume = ::std::option::Option::None; } pub fn has_volume(&self) -> bool { self.volume.is_some() } // Param is passed by value, moved pub fn set_volume(&mut self, v: u32) { self.volume = ::std::option::Option::Some(v); } pub fn get_volume(&self) -> u32 { self.volume.unwrap_or(0) } // optional string name = 13; pub fn clear_name(&mut self) { self.name.clear(); } pub fn has_name(&self) -> bool { self.name.is_some() } // Param is passed by value, moved pub fn set_name(&mut self, v: ::std::string::String) { self.name = ::protobuf::SingularField::some(v); } // Mutable pointer to the field. // If field is not initialized, it is initialized with default value first. pub fn mut_name(&mut self) -> &mut ::std::string::String { if self.name.is_none() { self.name.set_default(); }; self.name.as_mut().unwrap() } // Take field pub fn take_name(&mut self) -> ::std::string::String { self.name.take().unwrap_or_else(|| ::std::string::String::new()) } pub fn get_name(&self) -> &str { match self.name.as_ref() { Some(v) => &v, None => "", } } // optional uint32 error_code = 14; pub fn clear_error_code(&mut self) { self.error_code = ::std::option::Option::None; } pub fn has_error_code(&self) -> bool { self.error_code.is_some() } // Param is passed by value, moved pub fn set_error_code(&mut self, v: u32) { self.error_code = ::std::option::Option::Some(v); } pub fn get_error_code(&self) -> u32 { self.error_code.unwrap_or(0) } // optional int64 became_active_at = 15; pub fn clear_became_active_at(&mut self) { self.became_active_at = ::std::option::Option::None; } pub fn has_became_active_at(&self) -> bool { self.became_active_at.is_some() } // Param is passed by value, moved pub fn set_became_active_at(&mut self, v: i64) { self.became_active_at = ::std::option::Option::Some(v); } pub fn get_became_active_at(&self) -> i64 { self.became_active_at.unwrap_or(0) } // optional string error_message = 16; pub fn clear_error_message(&mut self) { self.error_message.clear(); } pub fn has_error_message(&self) -> bool { self.error_message.is_some() } // Param is passed by value, moved pub fn set_error_message(&mut self, v: ::std::string::String) { self.error_message = ::protobuf::SingularField::some(v); } // Mutable pointer to the field. // If field is not initialized, it is initialized with default value first. pub fn mut_error_message(&mut self) -> &mut ::std::string::String { if self.error_message.is_none() { self.error_message.set_default(); }; self.error_message.as_mut().unwrap() } // Take field pub fn take_error_message(&mut self) -> ::std::string::String { self.error_message.take().unwrap_or_else(|| ::std::string::String::new()) } pub fn get_error_message(&self) -> &str { match self.error_message.as_ref() { Some(v) => &v, None => "", } } // repeated .Capability capabilities = 17; pub fn clear_capabilities(&mut self) { self.capabilities.clear(); } // Param is passed by value, moved pub fn set_capabilities(&mut self, v: ::protobuf::RepeatedField) { self.capabilities = v; } // Mutable pointer to the field. pub fn mut_capabilities(&mut self) -> &mut ::protobuf::RepeatedField { &mut self.capabilities } // Take field pub fn take_capabilities(&mut self) -> ::protobuf::RepeatedField { ::std::mem::replace(&mut self.capabilities, ::protobuf::RepeatedField::new()) } pub fn get_capabilities(&self) -> &[Capability] { &self.capabilities } } impl ::protobuf::Message for DeviceState { fn is_initialized(&self) -> bool { true } fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> { while !try!(is.eof()) { let (field_number, wire_type) = try!(is.read_tag_unpack()); match field_number { 1 => { try!(::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.sw_version)); }, 10 => { if wire_type != ::protobuf::wire_format::WireTypeVarint { return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type)); }; let tmp = try!(is.read_bool()); self.is_active = ::std::option::Option::Some(tmp); }, 11 => { if wire_type != ::protobuf::wire_format::WireTypeVarint { return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type)); }; let tmp = try!(is.read_bool()); self.can_play = ::std::option::Option::Some(tmp); }, 12 => { if wire_type != ::protobuf::wire_format::WireTypeVarint { return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type)); }; let tmp = try!(is.read_uint32()); self.volume = ::std::option::Option::Some(tmp); }, 13 => { try!(::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.name)); }, 14 => { if wire_type != ::protobuf::wire_format::WireTypeVarint { return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type)); }; let tmp = try!(is.read_uint32()); self.error_code = ::std::option::Option::Some(tmp); }, 15 => { if wire_type != ::protobuf::wire_format::WireTypeVarint { return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type)); }; let tmp = try!(is.read_int64()); self.became_active_at = ::std::option::Option::Some(tmp); }, 16 => { try!(::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.error_message)); }, 17 => { try!(::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.capabilities)); }, _ => { try!(::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.sw_version { my_size += ::protobuf::rt::string_size(1, &value); }; if self.is_active.is_some() { my_size += 2; }; if self.can_play.is_some() { my_size += 2; }; for value in &self.volume { my_size += ::protobuf::rt::value_size(12, *value, ::protobuf::wire_format::WireTypeVarint); }; for value in &self.name { my_size += ::protobuf::rt::string_size(13, &value); }; for value in &self.error_code { my_size += ::protobuf::rt::value_size(14, *value, ::protobuf::wire_format::WireTypeVarint); }; for value in &self.became_active_at { my_size += ::protobuf::rt::value_size(15, *value, ::protobuf::wire_format::WireTypeVarint); }; for value in &self.error_message { my_size += ::protobuf::rt::string_size(16, &value); }; for value in &self.capabilities { let len = value.compute_size(); my_size += 2 + ::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.sw_version.as_ref() { try!(os.write_string(1, &v)); }; if let Some(v) = self.is_active { try!(os.write_bool(10, v)); }; if let Some(v) = self.can_play { try!(os.write_bool(11, v)); }; if let Some(v) = self.volume { try!(os.write_uint32(12, v)); }; if let Some(v) = self.name.as_ref() { try!(os.write_string(13, &v)); }; if let Some(v) = self.error_code { try!(os.write_uint32(14, v)); }; if let Some(v) = self.became_active_at { try!(os.write_int64(15, v)); }; if let Some(v) = self.error_message.as_ref() { try!(os.write_string(16, &v)); }; for v in &self.capabilities { try!(os.write_tag(17, ::protobuf::wire_format::WireTypeLengthDelimited)); try!(os.write_raw_varint32(v.get_cached_size())); try!(v.write_to_with_cached_sizes(os)); }; try!(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 type_id(&self) -> ::std::any::TypeId { ::std::any::TypeId::of::() } fn as_any(&self) -> &::std::any::Any { self as &::std::any::Any } fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor { ::protobuf::MessageStatic::descriptor_static(None::) } } impl ::protobuf::MessageStatic for DeviceState { fn new() -> DeviceState { DeviceState::new() } fn descriptor_static(_: ::std::option::Option) -> &'static ::protobuf::reflect::MessageDescriptor { static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy { lock: ::protobuf::lazy::ONCE_INIT, ptr: 0 as *const ::protobuf::reflect::MessageDescriptor, }; unsafe { descriptor.get(|| { let mut fields = ::std::vec::Vec::new(); fields.push(::protobuf::reflect::accessor::make_singular_string_accessor( "sw_version", DeviceState::has_sw_version, DeviceState::get_sw_version, )); fields.push(::protobuf::reflect::accessor::make_singular_bool_accessor( "is_active", DeviceState::has_is_active, DeviceState::get_is_active, )); fields.push(::protobuf::reflect::accessor::make_singular_bool_accessor( "can_play", DeviceState::has_can_play, DeviceState::get_can_play, )); fields.push(::protobuf::reflect::accessor::make_singular_u32_accessor( "volume", DeviceState::has_volume, DeviceState::get_volume, )); fields.push(::protobuf::reflect::accessor::make_singular_string_accessor( "name", DeviceState::has_name, DeviceState::get_name, )); fields.push(::protobuf::reflect::accessor::make_singular_u32_accessor( "error_code", DeviceState::has_error_code, DeviceState::get_error_code, )); fields.push(::protobuf::reflect::accessor::make_singular_i64_accessor( "became_active_at", DeviceState::has_became_active_at, DeviceState::get_became_active_at, )); fields.push(::protobuf::reflect::accessor::make_singular_string_accessor( "error_message", DeviceState::has_error_message, DeviceState::get_error_message, )); fields.push(::protobuf::reflect::accessor::make_repeated_message_accessor( "capabilities", DeviceState::get_capabilities, )); ::protobuf::reflect::MessageDescriptor::new::( "DeviceState", fields, file_descriptor_proto() ) }) } } } impl ::protobuf::Clear for DeviceState { fn clear(&mut self) { self.clear_sw_version(); self.clear_is_active(); self.clear_can_play(); self.clear_volume(); self.clear_name(); self.clear_error_code(); self.clear_became_active_at(); self.clear_error_message(); self.clear_capabilities(); self.unknown_fields.clear(); } } impl ::std::cmp::PartialEq for DeviceState { fn eq(&self, other: &DeviceState) -> bool { self.sw_version == other.sw_version && self.is_active == other.is_active && self.can_play == other.can_play && self.volume == other.volume && self.name == other.name && self.error_code == other.error_code && self.became_active_at == other.became_active_at && self.error_message == other.error_message && self.capabilities == other.capabilities && self.unknown_fields == other.unknown_fields } } impl ::std::fmt::Debug for DeviceState { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { ::protobuf::text_format::fmt(self, f) } } #[derive(Clone,Default)] pub struct Capability { // message fields typ: ::std::option::Option, intValue: ::std::vec::Vec, stringValue: ::protobuf::RepeatedField<::std::string::String>, // special fields unknown_fields: ::protobuf::UnknownFields, cached_size: ::std::cell::Cell, } // see codegen.rs for the explanation why impl Sync explicitly unsafe impl ::std::marker::Sync for Capability {} impl Capability { pub fn new() -> Capability { ::std::default::Default::default() } pub fn default_instance() -> &'static Capability { static mut instance: ::protobuf::lazy::Lazy = ::protobuf::lazy::Lazy { lock: ::protobuf::lazy::ONCE_INIT, ptr: 0 as *const Capability, }; unsafe { instance.get(|| { Capability { typ: ::std::option::Option::None, intValue: ::std::vec::Vec::new(), stringValue: ::protobuf::RepeatedField::new(), unknown_fields: ::protobuf::UnknownFields::new(), cached_size: ::std::cell::Cell::new(0), } }) } } // optional .CapabilityType typ = 1; pub fn clear_typ(&mut self) { self.typ = ::std::option::Option::None; } pub fn has_typ(&self) -> bool { self.typ.is_some() } // Param is passed by value, moved pub fn set_typ(&mut self, v: CapabilityType) { self.typ = ::std::option::Option::Some(v); } pub fn get_typ(&self) -> CapabilityType { self.typ.unwrap_or(CapabilityType::kSupportedContexts) } // repeated int64 intValue = 2; pub fn clear_intValue(&mut self) { self.intValue.clear(); } // Param is passed by value, moved pub fn set_intValue(&mut self, v: ::std::vec::Vec) { self.intValue = v; } // Mutable pointer to the field. pub fn mut_intValue(&mut self) -> &mut ::std::vec::Vec { &mut self.intValue } // Take field pub fn take_intValue(&mut self) -> ::std::vec::Vec { ::std::mem::replace(&mut self.intValue, ::std::vec::Vec::new()) } pub fn get_intValue(&self) -> &[i64] { &self.intValue } // repeated string stringValue = 3; pub fn clear_stringValue(&mut self) { self.stringValue.clear(); } // Param is passed by value, moved pub fn set_stringValue(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) { self.stringValue = v; } // Mutable pointer to the field. pub fn mut_stringValue(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> { &mut self.stringValue } // Take field pub fn take_stringValue(&mut self) -> ::protobuf::RepeatedField<::std::string::String> { ::std::mem::replace(&mut self.stringValue, ::protobuf::RepeatedField::new()) } pub fn get_stringValue(&self) -> &[::std::string::String] { &self.stringValue } } impl ::protobuf::Message for Capability { fn is_initialized(&self) -> bool { true } fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> { while !try!(is.eof()) { let (field_number, wire_type) = try!(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 = try!(is.read_enum()); self.typ = ::std::option::Option::Some(tmp); }, 2 => { try!(::protobuf::rt::read_repeated_int64_into(wire_type, is, &mut self.intValue)); }, 3 => { try!(::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.stringValue)); }, _ => { try!(::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.typ { my_size += ::protobuf::rt::enum_size(1, *value); }; for value in &self.intValue { my_size += ::protobuf::rt::value_size(2, *value, ::protobuf::wire_format::WireTypeVarint); }; for value in &self.stringValue { my_size += ::protobuf::rt::string_size(3, &value); }; 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.typ { try!(os.write_enum(1, v.value())); }; for v in &self.intValue { try!(os.write_int64(2, *v)); }; for v in &self.stringValue { try!(os.write_string(3, &v)); }; try!(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 type_id(&self) -> ::std::any::TypeId { ::std::any::TypeId::of::() } fn as_any(&self) -> &::std::any::Any { self as &::std::any::Any } fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor { ::protobuf::MessageStatic::descriptor_static(None::) } } impl ::protobuf::MessageStatic for Capability { fn new() -> Capability { Capability::new() } fn descriptor_static(_: ::std::option::Option) -> &'static ::protobuf::reflect::MessageDescriptor { static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy { lock: ::protobuf::lazy::ONCE_INIT, ptr: 0 as *const ::protobuf::reflect::MessageDescriptor, }; unsafe { descriptor.get(|| { let mut fields = ::std::vec::Vec::new(); fields.push(::protobuf::reflect::accessor::make_singular_enum_accessor( "typ", Capability::has_typ, Capability::get_typ, )); fields.push(::protobuf::reflect::accessor::make_repeated_i64_accessor( "intValue", Capability::get_intValue, )); fields.push(::protobuf::reflect::accessor::make_repeated_string_accessor( "stringValue", Capability::get_stringValue, )); ::protobuf::reflect::MessageDescriptor::new::( "Capability", fields, file_descriptor_proto() ) }) } } } impl ::protobuf::Clear for Capability { fn clear(&mut self) { self.clear_typ(); self.clear_intValue(); self.clear_stringValue(); self.unknown_fields.clear(); } } impl ::std::cmp::PartialEq for Capability { fn eq(&self, other: &Capability) -> bool { self.typ == other.typ && self.intValue == other.intValue && self.stringValue == other.stringValue && self.unknown_fields == other.unknown_fields } } impl ::std::fmt::Debug for Capability { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { ::protobuf::text_format::fmt(self, f) } } #[derive(Clone,Default)] pub struct Goodbye { // message fields reason: ::protobuf::SingularField<::std::string::String>, // special fields unknown_fields: ::protobuf::UnknownFields, cached_size: ::std::cell::Cell, } // see codegen.rs for the explanation why impl Sync explicitly unsafe impl ::std::marker::Sync for Goodbye {} impl Goodbye { pub fn new() -> Goodbye { ::std::default::Default::default() } pub fn default_instance() -> &'static Goodbye { static mut instance: ::protobuf::lazy::Lazy = ::protobuf::lazy::Lazy { lock: ::protobuf::lazy::ONCE_INIT, ptr: 0 as *const Goodbye, }; unsafe { instance.get(|| { Goodbye { reason: ::protobuf::SingularField::none(), unknown_fields: ::protobuf::UnknownFields::new(), cached_size: ::std::cell::Cell::new(0), } }) } } // optional string reason = 1; pub fn clear_reason(&mut self) { self.reason.clear(); } pub fn has_reason(&self) -> bool { self.reason.is_some() } // Param is passed by value, moved pub fn set_reason(&mut self, v: ::std::string::String) { self.reason = ::protobuf::SingularField::some(v); } // Mutable pointer to the field. // If field is not initialized, it is initialized with default value first. pub fn mut_reason(&mut self) -> &mut ::std::string::String { if self.reason.is_none() { self.reason.set_default(); }; self.reason.as_mut().unwrap() } // Take field pub fn take_reason(&mut self) -> ::std::string::String { self.reason.take().unwrap_or_else(|| ::std::string::String::new()) } pub fn get_reason(&self) -> &str { match self.reason.as_ref() { Some(v) => &v, None => "", } } } impl ::protobuf::Message for Goodbye { fn is_initialized(&self) -> bool { true } fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> { while !try!(is.eof()) { let (field_number, wire_type) = try!(is.read_tag_unpack()); match field_number { 1 => { try!(::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.reason)); }, _ => { try!(::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.reason { my_size += ::protobuf::rt::string_size(1, &value); }; 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.reason.as_ref() { try!(os.write_string(1, &v)); }; try!(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 type_id(&self) -> ::std::any::TypeId { ::std::any::TypeId::of::() } fn as_any(&self) -> &::std::any::Any { self as &::std::any::Any } fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor { ::protobuf::MessageStatic::descriptor_static(None::) } } impl ::protobuf::MessageStatic for Goodbye { fn new() -> Goodbye { Goodbye::new() } fn descriptor_static(_: ::std::option::Option) -> &'static ::protobuf::reflect::MessageDescriptor { static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy { lock: ::protobuf::lazy::ONCE_INIT, ptr: 0 as *const ::protobuf::reflect::MessageDescriptor, }; unsafe { descriptor.get(|| { let mut fields = ::std::vec::Vec::new(); fields.push(::protobuf::reflect::accessor::make_singular_string_accessor( "reason", Goodbye::has_reason, Goodbye::get_reason, )); ::protobuf::reflect::MessageDescriptor::new::( "Goodbye", fields, file_descriptor_proto() ) }) } } } impl ::protobuf::Clear for Goodbye { fn clear(&mut self) { self.clear_reason(); self.unknown_fields.clear(); } } impl ::std::cmp::PartialEq for Goodbye { fn eq(&self, other: &Goodbye) -> bool { self.reason == other.reason && self.unknown_fields == other.unknown_fields } } impl ::std::fmt::Debug for Goodbye { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { ::protobuf::text_format::fmt(self, f) } } #[derive(Clone,Default)] pub struct State { // message fields context_uri: ::protobuf::SingularField<::std::string::String>, index: ::std::option::Option, position_ms: ::std::option::Option, status: ::std::option::Option, position_measured_at: ::std::option::Option, context_description: ::protobuf::SingularField<::std::string::String>, shuffle: ::std::option::Option, repeat: ::std::option::Option, last_command_ident: ::protobuf::SingularField<::std::string::String>, last_command_msgid: ::std::option::Option, playing_from_fallback: ::std::option::Option, row: ::std::option::Option, playing_track_index: ::std::option::Option, track: ::protobuf::RepeatedField, ad: ::protobuf::SingularPtrField, // special fields unknown_fields: ::protobuf::UnknownFields, cached_size: ::std::cell::Cell, } // see codegen.rs for the explanation why impl Sync explicitly unsafe impl ::std::marker::Sync for State {} impl State { pub fn new() -> State { ::std::default::Default::default() } pub fn default_instance() -> &'static State { static mut instance: ::protobuf::lazy::Lazy = ::protobuf::lazy::Lazy { lock: ::protobuf::lazy::ONCE_INIT, ptr: 0 as *const State, }; unsafe { instance.get(|| { State { context_uri: ::protobuf::SingularField::none(), index: ::std::option::Option::None, position_ms: ::std::option::Option::None, status: ::std::option::Option::None, position_measured_at: ::std::option::Option::None, context_description: ::protobuf::SingularField::none(), shuffle: ::std::option::Option::None, repeat: ::std::option::Option::None, last_command_ident: ::protobuf::SingularField::none(), last_command_msgid: ::std::option::Option::None, playing_from_fallback: ::std::option::Option::None, row: ::std::option::Option::None, playing_track_index: ::std::option::Option::None, track: ::protobuf::RepeatedField::new(), ad: ::protobuf::SingularPtrField::none(), unknown_fields: ::protobuf::UnknownFields::new(), cached_size: ::std::cell::Cell::new(0), } }) } } // optional string context_uri = 2; pub fn clear_context_uri(&mut self) { self.context_uri.clear(); } pub fn has_context_uri(&self) -> bool { self.context_uri.is_some() } // Param is passed by value, moved pub fn set_context_uri(&mut self, v: ::std::string::String) { self.context_uri = ::protobuf::SingularField::some(v); } // Mutable pointer to the field. // If field is not initialized, it is initialized with default value first. pub fn mut_context_uri(&mut self) -> &mut ::std::string::String { if self.context_uri.is_none() { self.context_uri.set_default(); }; self.context_uri.as_mut().unwrap() } // Take field pub fn take_context_uri(&mut self) -> ::std::string::String { self.context_uri.take().unwrap_or_else(|| ::std::string::String::new()) } pub fn get_context_uri(&self) -> &str { match self.context_uri.as_ref() { Some(v) => &v, None => "", } } // optional uint32 index = 3; pub fn clear_index(&mut self) { self.index = ::std::option::Option::None; } pub fn has_index(&self) -> bool { self.index.is_some() } // Param is passed by value, moved pub fn set_index(&mut self, v: u32) { self.index = ::std::option::Option::Some(v); } pub fn get_index(&self) -> u32 { self.index.unwrap_or(0) } // optional uint32 position_ms = 4; pub fn clear_position_ms(&mut self) { self.position_ms = ::std::option::Option::None; } pub fn has_position_ms(&self) -> bool { self.position_ms.is_some() } // Param is passed by value, moved pub fn set_position_ms(&mut self, v: u32) { self.position_ms = ::std::option::Option::Some(v); } pub fn get_position_ms(&self) -> u32 { self.position_ms.unwrap_or(0) } // optional .PlayStatus status = 5; pub fn clear_status(&mut self) { self.status = ::std::option::Option::None; } pub fn has_status(&self) -> bool { self.status.is_some() } // Param is passed by value, moved pub fn set_status(&mut self, v: PlayStatus) { self.status = ::std::option::Option::Some(v); } pub fn get_status(&self) -> PlayStatus { self.status.unwrap_or(PlayStatus::kPlayStatusStop) } // optional uint64 position_measured_at = 7; pub fn clear_position_measured_at(&mut self) { self.position_measured_at = ::std::option::Option::None; } pub fn has_position_measured_at(&self) -> bool { self.position_measured_at.is_some() } // Param is passed by value, moved pub fn set_position_measured_at(&mut self, v: u64) { self.position_measured_at = ::std::option::Option::Some(v); } pub fn get_position_measured_at(&self) -> u64 { self.position_measured_at.unwrap_or(0) } // optional string context_description = 8; pub fn clear_context_description(&mut self) { self.context_description.clear(); } pub fn has_context_description(&self) -> bool { self.context_description.is_some() } // Param is passed by value, moved pub fn set_context_description(&mut self, v: ::std::string::String) { self.context_description = ::protobuf::SingularField::some(v); } // Mutable pointer to the field. // If field is not initialized, it is initialized with default value first. pub fn mut_context_description(&mut self) -> &mut ::std::string::String { if self.context_description.is_none() { self.context_description.set_default(); }; self.context_description.as_mut().unwrap() } // Take field pub fn take_context_description(&mut self) -> ::std::string::String { self.context_description.take().unwrap_or_else(|| ::std::string::String::new()) } pub fn get_context_description(&self) -> &str { match self.context_description.as_ref() { Some(v) => &v, None => "", } } // optional bool shuffle = 13; pub fn clear_shuffle(&mut self) { self.shuffle = ::std::option::Option::None; } pub fn has_shuffle(&self) -> bool { self.shuffle.is_some() } // Param is passed by value, moved pub fn set_shuffle(&mut self, v: bool) { self.shuffle = ::std::option::Option::Some(v); } pub fn get_shuffle(&self) -> bool { self.shuffle.unwrap_or(false) } // optional bool repeat = 14; pub fn clear_repeat(&mut self) { self.repeat = ::std::option::Option::None; } pub fn has_repeat(&self) -> bool { self.repeat.is_some() } // Param is passed by value, moved pub fn set_repeat(&mut self, v: bool) { self.repeat = ::std::option::Option::Some(v); } pub fn get_repeat(&self) -> bool { self.repeat.unwrap_or(false) } // optional string last_command_ident = 20; pub fn clear_last_command_ident(&mut self) { self.last_command_ident.clear(); } pub fn has_last_command_ident(&self) -> bool { self.last_command_ident.is_some() } // Param is passed by value, moved pub fn set_last_command_ident(&mut self, v: ::std::string::String) { self.last_command_ident = ::protobuf::SingularField::some(v); } // Mutable pointer to the field. // If field is not initialized, it is initialized with default value first. pub fn mut_last_command_ident(&mut self) -> &mut ::std::string::String { if self.last_command_ident.is_none() { self.last_command_ident.set_default(); }; self.last_command_ident.as_mut().unwrap() } // Take field pub fn take_last_command_ident(&mut self) -> ::std::string::String { self.last_command_ident.take().unwrap_or_else(|| ::std::string::String::new()) } pub fn get_last_command_ident(&self) -> &str { match self.last_command_ident.as_ref() { Some(v) => &v, None => "", } } // optional uint32 last_command_msgid = 21; pub fn clear_last_command_msgid(&mut self) { self.last_command_msgid = ::std::option::Option::None; } pub fn has_last_command_msgid(&self) -> bool { self.last_command_msgid.is_some() } // Param is passed by value, moved pub fn set_last_command_msgid(&mut self, v: u32) { self.last_command_msgid = ::std::option::Option::Some(v); } pub fn get_last_command_msgid(&self) -> u32 { self.last_command_msgid.unwrap_or(0) } // optional bool playing_from_fallback = 24; pub fn clear_playing_from_fallback(&mut self) { self.playing_from_fallback = ::std::option::Option::None; } pub fn has_playing_from_fallback(&self) -> bool { self.playing_from_fallback.is_some() } // Param is passed by value, moved pub fn set_playing_from_fallback(&mut self, v: bool) { self.playing_from_fallback = ::std::option::Option::Some(v); } pub fn get_playing_from_fallback(&self) -> bool { self.playing_from_fallback.unwrap_or(false) } // optional uint32 row = 25; pub fn clear_row(&mut self) { self.row = ::std::option::Option::None; } pub fn has_row(&self) -> bool { self.row.is_some() } // Param is passed by value, moved pub fn set_row(&mut self, v: u32) { self.row = ::std::option::Option::Some(v); } pub fn get_row(&self) -> u32 { self.row.unwrap_or(0) } // optional uint32 playing_track_index = 26; pub fn clear_playing_track_index(&mut self) { self.playing_track_index = ::std::option::Option::None; } pub fn has_playing_track_index(&self) -> bool { self.playing_track_index.is_some() } // Param is passed by value, moved pub fn set_playing_track_index(&mut self, v: u32) { self.playing_track_index = ::std::option::Option::Some(v); } pub fn get_playing_track_index(&self) -> u32 { self.playing_track_index.unwrap_or(0) } // repeated .TrackRef track = 27; pub fn clear_track(&mut self) { self.track.clear(); } // Param is passed by value, moved pub fn set_track(&mut self, v: ::protobuf::RepeatedField) { self.track = v; } // Mutable pointer to the field. pub fn mut_track(&mut self) -> &mut ::protobuf::RepeatedField { &mut self.track } // Take field pub fn take_track(&mut self) -> ::protobuf::RepeatedField { ::std::mem::replace(&mut self.track, ::protobuf::RepeatedField::new()) } pub fn get_track(&self) -> &[TrackRef] { &self.track } // optional .Ad ad = 28; pub fn clear_ad(&mut self) { self.ad.clear(); } pub fn has_ad(&self) -> bool { self.ad.is_some() } // Param is passed by value, moved pub fn set_ad(&mut self, v: Ad) { self.ad = ::protobuf::SingularPtrField::some(v); } // Mutable pointer to the field. // If field is not initialized, it is initialized with default value first. pub fn mut_ad(&mut self) -> &mut Ad { if self.ad.is_none() { self.ad.set_default(); }; self.ad.as_mut().unwrap() } // Take field pub fn take_ad(&mut self) -> Ad { self.ad.take().unwrap_or_else(|| Ad::new()) } pub fn get_ad(&self) -> &Ad { self.ad.as_ref().unwrap_or_else(|| Ad::default_instance()) } } impl ::protobuf::Message for State { fn is_initialized(&self) -> bool { true } fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> { while !try!(is.eof()) { let (field_number, wire_type) = try!(is.read_tag_unpack()); match field_number { 2 => { try!(::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.context_uri)); }, 3 => { if wire_type != ::protobuf::wire_format::WireTypeVarint { return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type)); }; let tmp = try!(is.read_uint32()); self.index = ::std::option::Option::Some(tmp); }, 4 => { if wire_type != ::protobuf::wire_format::WireTypeVarint { return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type)); }; let tmp = try!(is.read_uint32()); self.position_ms = ::std::option::Option::Some(tmp); }, 5 => { if wire_type != ::protobuf::wire_format::WireTypeVarint { return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type)); }; let tmp = try!(is.read_enum()); self.status = ::std::option::Option::Some(tmp); }, 7 => { if wire_type != ::protobuf::wire_format::WireTypeVarint { return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type)); }; let tmp = try!(is.read_uint64()); self.position_measured_at = ::std::option::Option::Some(tmp); }, 8 => { try!(::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.context_description)); }, 13 => { if wire_type != ::protobuf::wire_format::WireTypeVarint { return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type)); }; let tmp = try!(is.read_bool()); self.shuffle = ::std::option::Option::Some(tmp); }, 14 => { if wire_type != ::protobuf::wire_format::WireTypeVarint { return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type)); }; let tmp = try!(is.read_bool()); self.repeat = ::std::option::Option::Some(tmp); }, 20 => { try!(::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.last_command_ident)); }, 21 => { if wire_type != ::protobuf::wire_format::WireTypeVarint { return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type)); }; let tmp = try!(is.read_uint32()); self.last_command_msgid = ::std::option::Option::Some(tmp); }, 24 => { if wire_type != ::protobuf::wire_format::WireTypeVarint { return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type)); }; let tmp = try!(is.read_bool()); self.playing_from_fallback = ::std::option::Option::Some(tmp); }, 25 => { if wire_type != ::protobuf::wire_format::WireTypeVarint { return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type)); }; let tmp = try!(is.read_uint32()); self.row = ::std::option::Option::Some(tmp); }, 26 => { if wire_type != ::protobuf::wire_format::WireTypeVarint { return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type)); }; let tmp = try!(is.read_uint32()); self.playing_track_index = ::std::option::Option::Some(tmp); }, 27 => { try!(::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.track)); }, 28 => { try!(::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.ad)); }, _ => { try!(::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.context_uri { my_size += ::protobuf::rt::string_size(2, &value); }; for value in &self.index { my_size += ::protobuf::rt::value_size(3, *value, ::protobuf::wire_format::WireTypeVarint); }; for value in &self.position_ms { my_size += ::protobuf::rt::value_size(4, *value, ::protobuf::wire_format::WireTypeVarint); }; for value in &self.status { my_size += ::protobuf::rt::enum_size(5, *value); }; for value in &self.position_measured_at { my_size += ::protobuf::rt::value_size(7, *value, ::protobuf::wire_format::WireTypeVarint); }; for value in &self.context_description { my_size += ::protobuf::rt::string_size(8, &value); }; if self.shuffle.is_some() { my_size += 2; }; if self.repeat.is_some() { my_size += 2; }; for value in &self.last_command_ident { my_size += ::protobuf::rt::string_size(20, &value); }; for value in &self.last_command_msgid { my_size += ::protobuf::rt::value_size(21, *value, ::protobuf::wire_format::WireTypeVarint); }; if self.playing_from_fallback.is_some() { my_size += 3; }; for value in &self.row { my_size += ::protobuf::rt::value_size(25, *value, ::protobuf::wire_format::WireTypeVarint); }; for value in &self.playing_track_index { my_size += ::protobuf::rt::value_size(26, *value, ::protobuf::wire_format::WireTypeVarint); }; for value in &self.track { let len = value.compute_size(); my_size += 2 + ::protobuf::rt::compute_raw_varint32_size(len) + len; }; for value in &self.ad { let len = value.compute_size(); my_size += 2 + ::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.context_uri.as_ref() { try!(os.write_string(2, &v)); }; if let Some(v) = self.index { try!(os.write_uint32(3, v)); }; if let Some(v) = self.position_ms { try!(os.write_uint32(4, v)); }; if let Some(v) = self.status { try!(os.write_enum(5, v.value())); }; if let Some(v) = self.position_measured_at { try!(os.write_uint64(7, v)); }; if let Some(v) = self.context_description.as_ref() { try!(os.write_string(8, &v)); }; if let Some(v) = self.shuffle { try!(os.write_bool(13, v)); }; if let Some(v) = self.repeat { try!(os.write_bool(14, v)); }; if let Some(v) = self.last_command_ident.as_ref() { try!(os.write_string(20, &v)); }; if let Some(v) = self.last_command_msgid { try!(os.write_uint32(21, v)); }; if let Some(v) = self.playing_from_fallback { try!(os.write_bool(24, v)); }; if let Some(v) = self.row { try!(os.write_uint32(25, v)); }; if let Some(v) = self.playing_track_index { try!(os.write_uint32(26, v)); }; for v in &self.track { try!(os.write_tag(27, ::protobuf::wire_format::WireTypeLengthDelimited)); try!(os.write_raw_varint32(v.get_cached_size())); try!(v.write_to_with_cached_sizes(os)); }; if let Some(v) = self.ad.as_ref() { try!(os.write_tag(28, ::protobuf::wire_format::WireTypeLengthDelimited)); try!(os.write_raw_varint32(v.get_cached_size())); try!(v.write_to_with_cached_sizes(os)); }; try!(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 type_id(&self) -> ::std::any::TypeId { ::std::any::TypeId::of::() } fn as_any(&self) -> &::std::any::Any { self as &::std::any::Any } fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor { ::protobuf::MessageStatic::descriptor_static(None::) } } impl ::protobuf::MessageStatic for State { fn new() -> State { State::new() } fn descriptor_static(_: ::std::option::Option) -> &'static ::protobuf::reflect::MessageDescriptor { static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy { lock: ::protobuf::lazy::ONCE_INIT, ptr: 0 as *const ::protobuf::reflect::MessageDescriptor, }; unsafe { descriptor.get(|| { let mut fields = ::std::vec::Vec::new(); fields.push(::protobuf::reflect::accessor::make_singular_string_accessor( "context_uri", State::has_context_uri, State::get_context_uri, )); fields.push(::protobuf::reflect::accessor::make_singular_u32_accessor( "index", State::has_index, State::get_index, )); fields.push(::protobuf::reflect::accessor::make_singular_u32_accessor( "position_ms", State::has_position_ms, State::get_position_ms, )); fields.push(::protobuf::reflect::accessor::make_singular_enum_accessor( "status", State::has_status, State::get_status, )); fields.push(::protobuf::reflect::accessor::make_singular_u64_accessor( "position_measured_at", State::has_position_measured_at, State::get_position_measured_at, )); fields.push(::protobuf::reflect::accessor::make_singular_string_accessor( "context_description", State::has_context_description, State::get_context_description, )); fields.push(::protobuf::reflect::accessor::make_singular_bool_accessor( "shuffle", State::has_shuffle, State::get_shuffle, )); fields.push(::protobuf::reflect::accessor::make_singular_bool_accessor( "repeat", State::has_repeat, State::get_repeat, )); fields.push(::protobuf::reflect::accessor::make_singular_string_accessor( "last_command_ident", State::has_last_command_ident, State::get_last_command_ident, )); fields.push(::protobuf::reflect::accessor::make_singular_u32_accessor( "last_command_msgid", State::has_last_command_msgid, State::get_last_command_msgid, )); fields.push(::protobuf::reflect::accessor::make_singular_bool_accessor( "playing_from_fallback", State::has_playing_from_fallback, State::get_playing_from_fallback, )); fields.push(::protobuf::reflect::accessor::make_singular_u32_accessor( "row", State::has_row, State::get_row, )); fields.push(::protobuf::reflect::accessor::make_singular_u32_accessor( "playing_track_index", State::has_playing_track_index, State::get_playing_track_index, )); fields.push(::protobuf::reflect::accessor::make_repeated_message_accessor( "track", State::get_track, )); fields.push(::protobuf::reflect::accessor::make_singular_message_accessor( "ad", State::has_ad, State::get_ad, )); ::protobuf::reflect::MessageDescriptor::new::( "State", fields, file_descriptor_proto() ) }) } } } impl ::protobuf::Clear for State { fn clear(&mut self) { self.clear_context_uri(); self.clear_index(); self.clear_position_ms(); self.clear_status(); self.clear_position_measured_at(); self.clear_context_description(); self.clear_shuffle(); self.clear_repeat(); self.clear_last_command_ident(); self.clear_last_command_msgid(); self.clear_playing_from_fallback(); self.clear_row(); self.clear_playing_track_index(); self.clear_track(); self.clear_ad(); self.unknown_fields.clear(); } } impl ::std::cmp::PartialEq for State { fn eq(&self, other: &State) -> bool { self.context_uri == other.context_uri && self.index == other.index && self.position_ms == other.position_ms && self.status == other.status && self.position_measured_at == other.position_measured_at && self.context_description == other.context_description && self.shuffle == other.shuffle && self.repeat == other.repeat && self.last_command_ident == other.last_command_ident && self.last_command_msgid == other.last_command_msgid && self.playing_from_fallback == other.playing_from_fallback && self.row == other.row && self.playing_track_index == other.playing_track_index && self.track == other.track && self.ad == other.ad && self.unknown_fields == other.unknown_fields } } impl ::std::fmt::Debug for State { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { ::protobuf::text_format::fmt(self, f) } } #[derive(Clone,Default)] pub struct TrackRef { // message fields gid: ::protobuf::SingularField<::std::vec::Vec>, uri: ::protobuf::SingularField<::std::string::String>, queued: ::std::option::Option, context: ::protobuf::SingularField<::std::string::String>, // special fields unknown_fields: ::protobuf::UnknownFields, cached_size: ::std::cell::Cell, } // see codegen.rs for the explanation why impl Sync explicitly unsafe impl ::std::marker::Sync for TrackRef {} impl TrackRef { pub fn new() -> TrackRef { ::std::default::Default::default() } pub fn default_instance() -> &'static TrackRef { static mut instance: ::protobuf::lazy::Lazy = ::protobuf::lazy::Lazy { lock: ::protobuf::lazy::ONCE_INIT, ptr: 0 as *const TrackRef, }; unsafe { instance.get(|| { TrackRef { gid: ::protobuf::SingularField::none(), uri: ::protobuf::SingularField::none(), queued: ::std::option::Option::None, context: ::protobuf::SingularField::none(), unknown_fields: ::protobuf::UnknownFields::new(), cached_size: ::std::cell::Cell::new(0), } }) } } // optional bytes gid = 1; pub fn clear_gid(&mut self) { self.gid.clear(); } pub fn has_gid(&self) -> bool { self.gid.is_some() } // Param is passed by value, moved pub fn set_gid(&mut self, v: ::std::vec::Vec) { self.gid = ::protobuf::SingularField::some(v); } // Mutable pointer to the field. // If field is not initialized, it is initialized with default value first. pub fn mut_gid(&mut self) -> &mut ::std::vec::Vec { if self.gid.is_none() { self.gid.set_default(); }; self.gid.as_mut().unwrap() } // Take field pub fn take_gid(&mut self) -> ::std::vec::Vec { self.gid.take().unwrap_or_else(|| ::std::vec::Vec::new()) } pub fn get_gid(&self) -> &[u8] { match self.gid.as_ref() { Some(v) => &v, None => &[], } } // optional string uri = 2; pub fn clear_uri(&mut self) { self.uri.clear(); } pub fn has_uri(&self) -> bool { self.uri.is_some() } // Param is passed by value, moved pub fn set_uri(&mut self, v: ::std::string::String) { self.uri = ::protobuf::SingularField::some(v); } // Mutable pointer to the field. // If field is not initialized, it is initialized with default value first. pub fn mut_uri(&mut self) -> &mut ::std::string::String { if self.uri.is_none() { self.uri.set_default(); }; self.uri.as_mut().unwrap() } // Take field pub fn take_uri(&mut self) -> ::std::string::String { self.uri.take().unwrap_or_else(|| ::std::string::String::new()) } pub fn get_uri(&self) -> &str { match self.uri.as_ref() { Some(v) => &v, None => "", } } // optional bool queued = 3; pub fn clear_queued(&mut self) { self.queued = ::std::option::Option::None; } pub fn has_queued(&self) -> bool { self.queued.is_some() } // Param is passed by value, moved pub fn set_queued(&mut self, v: bool) { self.queued = ::std::option::Option::Some(v); } pub fn get_queued(&self) -> bool { self.queued.unwrap_or(false) } // optional string context = 4; pub fn clear_context(&mut self) { self.context.clear(); } pub fn has_context(&self) -> bool { self.context.is_some() } // Param is passed by value, moved pub fn set_context(&mut self, v: ::std::string::String) { self.context = ::protobuf::SingularField::some(v); } // Mutable pointer to the field. // If field is not initialized, it is initialized with default value first. pub fn mut_context(&mut self) -> &mut ::std::string::String { if self.context.is_none() { self.context.set_default(); }; self.context.as_mut().unwrap() } // Take field pub fn take_context(&mut self) -> ::std::string::String { self.context.take().unwrap_or_else(|| ::std::string::String::new()) } pub fn get_context(&self) -> &str { match self.context.as_ref() { Some(v) => &v, None => "", } } } impl ::protobuf::Message for TrackRef { fn is_initialized(&self) -> bool { true } fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> { while !try!(is.eof()) { let (field_number, wire_type) = try!(is.read_tag_unpack()); match field_number { 1 => { try!(::protobuf::rt::read_singular_bytes_into(wire_type, is, &mut self.gid)); }, 2 => { try!(::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.uri)); }, 3 => { if wire_type != ::protobuf::wire_format::WireTypeVarint { return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type)); }; let tmp = try!(is.read_bool()); self.queued = ::std::option::Option::Some(tmp); }, 4 => { try!(::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.context)); }, _ => { try!(::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.gid { my_size += ::protobuf::rt::bytes_size(1, &value); }; for value in &self.uri { my_size += ::protobuf::rt::string_size(2, &value); }; if self.queued.is_some() { my_size += 2; }; for value in &self.context { my_size += ::protobuf::rt::string_size(4, &value); }; 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.gid.as_ref() { try!(os.write_bytes(1, &v)); }; if let Some(v) = self.uri.as_ref() { try!(os.write_string(2, &v)); }; if let Some(v) = self.queued { try!(os.write_bool(3, v)); }; if let Some(v) = self.context.as_ref() { try!(os.write_string(4, &v)); }; try!(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 type_id(&self) -> ::std::any::TypeId { ::std::any::TypeId::of::() } fn as_any(&self) -> &::std::any::Any { self as &::std::any::Any } fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor { ::protobuf::MessageStatic::descriptor_static(None::) } } impl ::protobuf::MessageStatic for TrackRef { fn new() -> TrackRef { TrackRef::new() } fn descriptor_static(_: ::std::option::Option) -> &'static ::protobuf::reflect::MessageDescriptor { static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy { lock: ::protobuf::lazy::ONCE_INIT, ptr: 0 as *const ::protobuf::reflect::MessageDescriptor, }; unsafe { descriptor.get(|| { let mut fields = ::std::vec::Vec::new(); fields.push(::protobuf::reflect::accessor::make_singular_bytes_accessor( "gid", TrackRef::has_gid, TrackRef::get_gid, )); fields.push(::protobuf::reflect::accessor::make_singular_string_accessor( "uri", TrackRef::has_uri, TrackRef::get_uri, )); fields.push(::protobuf::reflect::accessor::make_singular_bool_accessor( "queued", TrackRef::has_queued, TrackRef::get_queued, )); fields.push(::protobuf::reflect::accessor::make_singular_string_accessor( "context", TrackRef::has_context, TrackRef::get_context, )); ::protobuf::reflect::MessageDescriptor::new::( "TrackRef", fields, file_descriptor_proto() ) }) } } } impl ::protobuf::Clear for TrackRef { fn clear(&mut self) { self.clear_gid(); self.clear_uri(); self.clear_queued(); self.clear_context(); self.unknown_fields.clear(); } } impl ::std::cmp::PartialEq for TrackRef { fn eq(&self, other: &TrackRef) -> bool { self.gid == other.gid && self.uri == other.uri && self.queued == other.queued && self.context == other.context && self.unknown_fields == other.unknown_fields } } impl ::std::fmt::Debug for TrackRef { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { ::protobuf::text_format::fmt(self, f) } } #[derive(Clone,Default)] pub struct Ad { // message fields next: ::std::option::Option, ogg_fid: ::protobuf::SingularField<::std::vec::Vec>, image_fid: ::protobuf::SingularField<::std::vec::Vec>, duration: ::std::option::Option, click_url: ::protobuf::SingularField<::std::string::String>, impression_url: ::protobuf::SingularField<::std::string::String>, product: ::protobuf::SingularField<::std::string::String>, advertiser: ::protobuf::SingularField<::std::string::String>, gid: ::protobuf::SingularField<::std::vec::Vec>, // special fields unknown_fields: ::protobuf::UnknownFields, cached_size: ::std::cell::Cell, } // see codegen.rs for the explanation why impl Sync explicitly unsafe impl ::std::marker::Sync for Ad {} impl Ad { pub fn new() -> Ad { ::std::default::Default::default() } pub fn default_instance() -> &'static Ad { static mut instance: ::protobuf::lazy::Lazy = ::protobuf::lazy::Lazy { lock: ::protobuf::lazy::ONCE_INIT, ptr: 0 as *const Ad, }; unsafe { instance.get(|| { Ad { next: ::std::option::Option::None, ogg_fid: ::protobuf::SingularField::none(), image_fid: ::protobuf::SingularField::none(), duration: ::std::option::Option::None, click_url: ::protobuf::SingularField::none(), impression_url: ::protobuf::SingularField::none(), product: ::protobuf::SingularField::none(), advertiser: ::protobuf::SingularField::none(), gid: ::protobuf::SingularField::none(), unknown_fields: ::protobuf::UnknownFields::new(), cached_size: ::std::cell::Cell::new(0), } }) } } // optional int32 next = 1; pub fn clear_next(&mut self) { self.next = ::std::option::Option::None; } pub fn has_next(&self) -> bool { self.next.is_some() } // Param is passed by value, moved pub fn set_next(&mut self, v: i32) { self.next = ::std::option::Option::Some(v); } pub fn get_next(&self) -> i32 { self.next.unwrap_or(0) } // optional bytes ogg_fid = 2; pub fn clear_ogg_fid(&mut self) { self.ogg_fid.clear(); } pub fn has_ogg_fid(&self) -> bool { self.ogg_fid.is_some() } // Param is passed by value, moved pub fn set_ogg_fid(&mut self, v: ::std::vec::Vec) { self.ogg_fid = ::protobuf::SingularField::some(v); } // Mutable pointer to the field. // If field is not initialized, it is initialized with default value first. pub fn mut_ogg_fid(&mut self) -> &mut ::std::vec::Vec { if self.ogg_fid.is_none() { self.ogg_fid.set_default(); }; self.ogg_fid.as_mut().unwrap() } // Take field pub fn take_ogg_fid(&mut self) -> ::std::vec::Vec { self.ogg_fid.take().unwrap_or_else(|| ::std::vec::Vec::new()) } pub fn get_ogg_fid(&self) -> &[u8] { match self.ogg_fid.as_ref() { Some(v) => &v, None => &[], } } // optional bytes image_fid = 3; pub fn clear_image_fid(&mut self) { self.image_fid.clear(); } pub fn has_image_fid(&self) -> bool { self.image_fid.is_some() } // Param is passed by value, moved pub fn set_image_fid(&mut self, v: ::std::vec::Vec) { self.image_fid = ::protobuf::SingularField::some(v); } // Mutable pointer to the field. // If field is not initialized, it is initialized with default value first. pub fn mut_image_fid(&mut self) -> &mut ::std::vec::Vec { if self.image_fid.is_none() { self.image_fid.set_default(); }; self.image_fid.as_mut().unwrap() } // Take field pub fn take_image_fid(&mut self) -> ::std::vec::Vec { self.image_fid.take().unwrap_or_else(|| ::std::vec::Vec::new()) } pub fn get_image_fid(&self) -> &[u8] { match self.image_fid.as_ref() { Some(v) => &v, None => &[], } } // optional int32 duration = 4; pub fn clear_duration(&mut self) { self.duration = ::std::option::Option::None; } pub fn has_duration(&self) -> bool { self.duration.is_some() } // Param is passed by value, moved pub fn set_duration(&mut self, v: i32) { self.duration = ::std::option::Option::Some(v); } pub fn get_duration(&self) -> i32 { self.duration.unwrap_or(0) } // optional string click_url = 5; pub fn clear_click_url(&mut self) { self.click_url.clear(); } pub fn has_click_url(&self) -> bool { self.click_url.is_some() } // Param is passed by value, moved pub fn set_click_url(&mut self, v: ::std::string::String) { self.click_url = ::protobuf::SingularField::some(v); } // Mutable pointer to the field. // If field is not initialized, it is initialized with default value first. pub fn mut_click_url(&mut self) -> &mut ::std::string::String { if self.click_url.is_none() { self.click_url.set_default(); }; self.click_url.as_mut().unwrap() } // Take field pub fn take_click_url(&mut self) -> ::std::string::String { self.click_url.take().unwrap_or_else(|| ::std::string::String::new()) } pub fn get_click_url(&self) -> &str { match self.click_url.as_ref() { Some(v) => &v, None => "", } } // optional string impression_url = 6; pub fn clear_impression_url(&mut self) { self.impression_url.clear(); } pub fn has_impression_url(&self) -> bool { self.impression_url.is_some() } // Param is passed by value, moved pub fn set_impression_url(&mut self, v: ::std::string::String) { self.impression_url = ::protobuf::SingularField::some(v); } // Mutable pointer to the field. // If field is not initialized, it is initialized with default value first. pub fn mut_impression_url(&mut self) -> &mut ::std::string::String { if self.impression_url.is_none() { self.impression_url.set_default(); }; self.impression_url.as_mut().unwrap() } // Take field pub fn take_impression_url(&mut self) -> ::std::string::String { self.impression_url.take().unwrap_or_else(|| ::std::string::String::new()) } pub fn get_impression_url(&self) -> &str { match self.impression_url.as_ref() { Some(v) => &v, None => "", } } // optional string product = 7; pub fn clear_product(&mut self) { self.product.clear(); } pub fn has_product(&self) -> bool { self.product.is_some() } // Param is passed by value, moved pub fn set_product(&mut self, v: ::std::string::String) { self.product = ::protobuf::SingularField::some(v); } // Mutable pointer to the field. // If field is not initialized, it is initialized with default value first. pub fn mut_product(&mut self) -> &mut ::std::string::String { if self.product.is_none() { self.product.set_default(); }; self.product.as_mut().unwrap() } // Take field pub fn take_product(&mut self) -> ::std::string::String { self.product.take().unwrap_or_else(|| ::std::string::String::new()) } pub fn get_product(&self) -> &str { match self.product.as_ref() { Some(v) => &v, None => "", } } // optional string advertiser = 8; pub fn clear_advertiser(&mut self) { self.advertiser.clear(); } pub fn has_advertiser(&self) -> bool { self.advertiser.is_some() } // Param is passed by value, moved pub fn set_advertiser(&mut self, v: ::std::string::String) { self.advertiser = ::protobuf::SingularField::some(v); } // Mutable pointer to the field. // If field is not initialized, it is initialized with default value first. pub fn mut_advertiser(&mut self) -> &mut ::std::string::String { if self.advertiser.is_none() { self.advertiser.set_default(); }; self.advertiser.as_mut().unwrap() } // Take field pub fn take_advertiser(&mut self) -> ::std::string::String { self.advertiser.take().unwrap_or_else(|| ::std::string::String::new()) } pub fn get_advertiser(&self) -> &str { match self.advertiser.as_ref() { Some(v) => &v, None => "", } } // optional bytes gid = 9; pub fn clear_gid(&mut self) { self.gid.clear(); } pub fn has_gid(&self) -> bool { self.gid.is_some() } // Param is passed by value, moved pub fn set_gid(&mut self, v: ::std::vec::Vec) { self.gid = ::protobuf::SingularField::some(v); } // Mutable pointer to the field. // If field is not initialized, it is initialized with default value first. pub fn mut_gid(&mut self) -> &mut ::std::vec::Vec { if self.gid.is_none() { self.gid.set_default(); }; self.gid.as_mut().unwrap() } // Take field pub fn take_gid(&mut self) -> ::std::vec::Vec { self.gid.take().unwrap_or_else(|| ::std::vec::Vec::new()) } pub fn get_gid(&self) -> &[u8] { match self.gid.as_ref() { Some(v) => &v, None => &[], } } } impl ::protobuf::Message for Ad { fn is_initialized(&self) -> bool { true } fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream) -> ::protobuf::ProtobufResult<()> { while !try!(is.eof()) { let (field_number, wire_type) = try!(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 = try!(is.read_int32()); self.next = ::std::option::Option::Some(tmp); }, 2 => { try!(::protobuf::rt::read_singular_bytes_into(wire_type, is, &mut self.ogg_fid)); }, 3 => { try!(::protobuf::rt::read_singular_bytes_into(wire_type, is, &mut self.image_fid)); }, 4 => { if wire_type != ::protobuf::wire_format::WireTypeVarint { return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type)); }; let tmp = try!(is.read_int32()); self.duration = ::std::option::Option::Some(tmp); }, 5 => { try!(::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.click_url)); }, 6 => { try!(::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.impression_url)); }, 7 => { try!(::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.product)); }, 8 => { try!(::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.advertiser)); }, 9 => { try!(::protobuf::rt::read_singular_bytes_into(wire_type, is, &mut self.gid)); }, _ => { try!(::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.next { my_size += ::protobuf::rt::value_size(1, *value, ::protobuf::wire_format::WireTypeVarint); }; for value in &self.ogg_fid { my_size += ::protobuf::rt::bytes_size(2, &value); }; for value in &self.image_fid { my_size += ::protobuf::rt::bytes_size(3, &value); }; for value in &self.duration { my_size += ::protobuf::rt::value_size(4, *value, ::protobuf::wire_format::WireTypeVarint); }; for value in &self.click_url { my_size += ::protobuf::rt::string_size(5, &value); }; for value in &self.impression_url { my_size += ::protobuf::rt::string_size(6, &value); }; for value in &self.product { my_size += ::protobuf::rt::string_size(7, &value); }; for value in &self.advertiser { my_size += ::protobuf::rt::string_size(8, &value); }; for value in &self.gid { my_size += ::protobuf::rt::bytes_size(9, &value); }; 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.next { try!(os.write_int32(1, v)); }; if let Some(v) = self.ogg_fid.as_ref() { try!(os.write_bytes(2, &v)); }; if let Some(v) = self.image_fid.as_ref() { try!(os.write_bytes(3, &v)); }; if let Some(v) = self.duration { try!(os.write_int32(4, v)); }; if let Some(v) = self.click_url.as_ref() { try!(os.write_string(5, &v)); }; if let Some(v) = self.impression_url.as_ref() { try!(os.write_string(6, &v)); }; if let Some(v) = self.product.as_ref() { try!(os.write_string(7, &v)); }; if let Some(v) = self.advertiser.as_ref() { try!(os.write_string(8, &v)); }; if let Some(v) = self.gid.as_ref() { try!(os.write_bytes(9, &v)); }; try!(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 type_id(&self) -> ::std::any::TypeId { ::std::any::TypeId::of::() } fn as_any(&self) -> &::std::any::Any { self as &::std::any::Any } fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor { ::protobuf::MessageStatic::descriptor_static(None::) } } impl ::protobuf::MessageStatic for Ad { fn new() -> Ad { Ad::new() } fn descriptor_static(_: ::std::option::Option) -> &'static ::protobuf::reflect::MessageDescriptor { static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy { lock: ::protobuf::lazy::ONCE_INIT, ptr: 0 as *const ::protobuf::reflect::MessageDescriptor, }; unsafe { descriptor.get(|| { let mut fields = ::std::vec::Vec::new(); fields.push(::protobuf::reflect::accessor::make_singular_i32_accessor( "next", Ad::has_next, Ad::get_next, )); fields.push(::protobuf::reflect::accessor::make_singular_bytes_accessor( "ogg_fid", Ad::has_ogg_fid, Ad::get_ogg_fid, )); fields.push(::protobuf::reflect::accessor::make_singular_bytes_accessor( "image_fid", Ad::has_image_fid, Ad::get_image_fid, )); fields.push(::protobuf::reflect::accessor::make_singular_i32_accessor( "duration", Ad::has_duration, Ad::get_duration, )); fields.push(::protobuf::reflect::accessor::make_singular_string_accessor( "click_url", Ad::has_click_url, Ad::get_click_url, )); fields.push(::protobuf::reflect::accessor::make_singular_string_accessor( "impression_url", Ad::has_impression_url, Ad::get_impression_url, )); fields.push(::protobuf::reflect::accessor::make_singular_string_accessor( "product", Ad::has_product, Ad::get_product, )); fields.push(::protobuf::reflect::accessor::make_singular_string_accessor( "advertiser", Ad::has_advertiser, Ad::get_advertiser, )); fields.push(::protobuf::reflect::accessor::make_singular_bytes_accessor( "gid", Ad::has_gid, Ad::get_gid, )); ::protobuf::reflect::MessageDescriptor::new::( "Ad", fields, file_descriptor_proto() ) }) } } } impl ::protobuf::Clear for Ad { fn clear(&mut self) { self.clear_next(); self.clear_ogg_fid(); self.clear_image_fid(); self.clear_duration(); self.clear_click_url(); self.clear_impression_url(); self.clear_product(); self.clear_advertiser(); self.clear_gid(); self.unknown_fields.clear(); } } impl ::std::cmp::PartialEq for Ad { fn eq(&self, other: &Ad) -> bool { self.next == other.next && self.ogg_fid == other.ogg_fid && self.image_fid == other.image_fid && self.duration == other.duration && self.click_url == other.click_url && self.impression_url == other.impression_url && self.product == other.product && self.advertiser == other.advertiser && self.gid == other.gid && self.unknown_fields == other.unknown_fields } } impl ::std::fmt::Debug for Ad { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { ::protobuf::text_format::fmt(self, f) } } #[derive(Clone,PartialEq,Eq,Debug,Hash)] pub enum MessageType { kMessageTypeHello = 1, kMessageTypeGoodbye = 2, kMessageTypeProbe = 3, kMessageTypeNotify = 10, kMessageTypeLoad = 20, kMessageTypePlay = 21, kMessageTypePause = 22, kMessageTypePlayPause = 23, kMessageTypeSeek = 24, kMessageTypePrev = 25, kMessageTypeNext = 26, kMessageTypeVolume = 27, kMessageTypeShuffle = 28, kMessageTypeRepeat = 29, kMessageTypeVolumeDown = 31, kMessageTypeVolumeUp = 32, kMessageTypeReplace = 33, kMessageTypeLogout = 34, kMessageTypeAction = 35, kMessageTypeRename = 36, } impl ::protobuf::ProtobufEnum for MessageType { fn value(&self) -> i32 { *self as i32 } fn from_i32(value: i32) -> ::std::option::Option { match value { 1 => ::std::option::Option::Some(MessageType::kMessageTypeHello), 2 => ::std::option::Option::Some(MessageType::kMessageTypeGoodbye), 3 => ::std::option::Option::Some(MessageType::kMessageTypeProbe), 10 => ::std::option::Option::Some(MessageType::kMessageTypeNotify), 20 => ::std::option::Option::Some(MessageType::kMessageTypeLoad), 21 => ::std::option::Option::Some(MessageType::kMessageTypePlay), 22 => ::std::option::Option::Some(MessageType::kMessageTypePause), 23 => ::std::option::Option::Some(MessageType::kMessageTypePlayPause), 24 => ::std::option::Option::Some(MessageType::kMessageTypeSeek), 25 => ::std::option::Option::Some(MessageType::kMessageTypePrev), 26 => ::std::option::Option::Some(MessageType::kMessageTypeNext), 27 => ::std::option::Option::Some(MessageType::kMessageTypeVolume), 28 => ::std::option::Option::Some(MessageType::kMessageTypeShuffle), 29 => ::std::option::Option::Some(MessageType::kMessageTypeRepeat), 31 => ::std::option::Option::Some(MessageType::kMessageTypeVolumeDown), 32 => ::std::option::Option::Some(MessageType::kMessageTypeVolumeUp), 33 => ::std::option::Option::Some(MessageType::kMessageTypeReplace), 34 => ::std::option::Option::Some(MessageType::kMessageTypeLogout), 35 => ::std::option::Option::Some(MessageType::kMessageTypeAction), 36 => ::std::option::Option::Some(MessageType::kMessageTypeRename), _ => ::std::option::Option::None } } fn values() -> &'static [Self] { static values: &'static [MessageType] = &[ MessageType::kMessageTypeHello, MessageType::kMessageTypeGoodbye, MessageType::kMessageTypeProbe, MessageType::kMessageTypeNotify, MessageType::kMessageTypeLoad, MessageType::kMessageTypePlay, MessageType::kMessageTypePause, MessageType::kMessageTypePlayPause, MessageType::kMessageTypeSeek, MessageType::kMessageTypePrev, MessageType::kMessageTypeNext, MessageType::kMessageTypeVolume, MessageType::kMessageTypeShuffle, MessageType::kMessageTypeRepeat, MessageType::kMessageTypeVolumeDown, MessageType::kMessageTypeVolumeUp, MessageType::kMessageTypeReplace, MessageType::kMessageTypeLogout, MessageType::kMessageTypeAction, MessageType::kMessageTypeRename, ]; values } fn enum_descriptor_static(_: Option) -> &'static ::protobuf::reflect::EnumDescriptor { static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::EnumDescriptor> = ::protobuf::lazy::Lazy { lock: ::protobuf::lazy::ONCE_INIT, ptr: 0 as *const ::protobuf::reflect::EnumDescriptor, }; unsafe { descriptor.get(|| { ::protobuf::reflect::EnumDescriptor::new("MessageType", file_descriptor_proto()) }) } } } impl ::std::marker::Copy for MessageType { } #[derive(Clone,PartialEq,Eq,Debug,Hash)] pub enum CapabilityType { kSupportedContexts = 1, kCanBePlayer = 2, kRestrictToLocal = 3, kDeviceType = 4, kGaiaEqConnectId = 5, kSupportsLogout = 6, kIsObservable = 7, kVolumeSteps = 8, kSupportedTypes = 9, kCommandAcks = 10, kSupportsRename = 11, } impl ::protobuf::ProtobufEnum for CapabilityType { fn value(&self) -> i32 { *self as i32 } fn from_i32(value: i32) -> ::std::option::Option { match value { 1 => ::std::option::Option::Some(CapabilityType::kSupportedContexts), 2 => ::std::option::Option::Some(CapabilityType::kCanBePlayer), 3 => ::std::option::Option::Some(CapabilityType::kRestrictToLocal), 4 => ::std::option::Option::Some(CapabilityType::kDeviceType), 5 => ::std::option::Option::Some(CapabilityType::kGaiaEqConnectId), 6 => ::std::option::Option::Some(CapabilityType::kSupportsLogout), 7 => ::std::option::Option::Some(CapabilityType::kIsObservable), 8 => ::std::option::Option::Some(CapabilityType::kVolumeSteps), 9 => ::std::option::Option::Some(CapabilityType::kSupportedTypes), 10 => ::std::option::Option::Some(CapabilityType::kCommandAcks), 11 => ::std::option::Option::Some(CapabilityType::kSupportsRename), _ => ::std::option::Option::None } } fn values() -> &'static [Self] { static values: &'static [CapabilityType] = &[ CapabilityType::kSupportedContexts, CapabilityType::kCanBePlayer, CapabilityType::kRestrictToLocal, CapabilityType::kDeviceType, CapabilityType::kGaiaEqConnectId, CapabilityType::kSupportsLogout, CapabilityType::kIsObservable, CapabilityType::kVolumeSteps, CapabilityType::kSupportedTypes, CapabilityType::kCommandAcks, CapabilityType::kSupportsRename, ]; values } fn enum_descriptor_static(_: Option) -> &'static ::protobuf::reflect::EnumDescriptor { static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::EnumDescriptor> = ::protobuf::lazy::Lazy { lock: ::protobuf::lazy::ONCE_INIT, ptr: 0 as *const ::protobuf::reflect::EnumDescriptor, }; unsafe { descriptor.get(|| { ::protobuf::reflect::EnumDescriptor::new("CapabilityType", file_descriptor_proto()) }) } } } impl ::std::marker::Copy for CapabilityType { } #[derive(Clone,PartialEq,Eq,Debug,Hash)] pub enum PlayStatus { kPlayStatusStop = 0, kPlayStatusPlay = 1, kPlayStatusPause = 2, kPlayStatusLoading = 3, } impl ::protobuf::ProtobufEnum for PlayStatus { fn value(&self) -> i32 { *self as i32 } fn from_i32(value: i32) -> ::std::option::Option { match value { 0 => ::std::option::Option::Some(PlayStatus::kPlayStatusStop), 1 => ::std::option::Option::Some(PlayStatus::kPlayStatusPlay), 2 => ::std::option::Option::Some(PlayStatus::kPlayStatusPause), 3 => ::std::option::Option::Some(PlayStatus::kPlayStatusLoading), _ => ::std::option::Option::None } } fn values() -> &'static [Self] { static values: &'static [PlayStatus] = &[ PlayStatus::kPlayStatusStop, PlayStatus::kPlayStatusPlay, PlayStatus::kPlayStatusPause, PlayStatus::kPlayStatusLoading, ]; values } fn enum_descriptor_static(_: Option) -> &'static ::protobuf::reflect::EnumDescriptor { static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::EnumDescriptor> = ::protobuf::lazy::Lazy { lock: ::protobuf::lazy::ONCE_INIT, ptr: 0 as *const ::protobuf::reflect::EnumDescriptor, }; unsafe { descriptor.get(|| { ::protobuf::reflect::EnumDescriptor::new("PlayStatus", file_descriptor_proto()) }) } } } impl ::std::marker::Copy for PlayStatus { } static file_descriptor_proto_data: &'static [u8] = &[ 0x0a, 0x0b, 0x73, 0x70, 0x69, 0x72, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd3, 0x03, 0x0a, 0x05, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x73, 0x65, 0x71, 0x5f, 0x6e, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x73, 0x65, 0x71, 0x4e, 0x72, 0x12, 0x1e, 0x0a, 0x03, 0x74, 0x79, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0c, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x03, 0x74, 0x79, 0x70, 0x12, 0x2f, 0x0a, 0x0c, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x07, 0x67, 0x6f, 0x6f, 0x64, 0x62, 0x79, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x47, 0x6f, 0x6f, 0x64, 0x62, 0x79, 0x65, 0x52, 0x07, 0x67, 0x6f, 0x6f, 0x64, 0x62, 0x79, 0x65, 0x12, 0x1c, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x12, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x65, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xaf, 0x02, 0x0a, 0x0b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x77, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x77, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x61, 0x6e, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x62, 0x65, 0x63, 0x61, 0x6d, 0x65, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x62, 0x65, 0x63, 0x61, 0x6d, 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2f, 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x22, 0x6d, 0x0a, 0x0a, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x21, 0x0a, 0x03, 0x74, 0x79, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x03, 0x74, 0x79, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x21, 0x0a, 0x07, 0x47, 0x6f, 0x6f, 0x64, 0x62, 0x79, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0xa1, 0x04, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x55, 0x72, 0x69, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x12, 0x23, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0b, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x64, 0x41, 0x74, 0x12, 0x2f, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x68, 0x75, 0x66, 0x66, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x68, 0x75, 0x66, 0x66, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x6d, 0x73, 0x67, 0x69, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x6c, 0x61, 0x79, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x70, 0x6c, 0x61, 0x79, 0x69, 0x6e, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x6f, 0x77, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x72, 0x6f, 0x77, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x6c, 0x61, 0x79, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x70, 0x6c, 0x61, 0x79, 0x69, 0x6e, 0x67, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1f, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x66, 0x52, 0x05, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x12, 0x13, 0x0a, 0x02, 0x61, 0x64, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x03, 0x2e, 0x41, 0x64, 0x52, 0x02, 0x61, 0x64, 0x22, 0x60, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x66, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x67, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x16, 0x0a, 0x06, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0xfa, 0x01, 0x0a, 0x02, 0x41, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x6f, 0x67, 0x67, 0x5f, 0x66, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6f, 0x67, 0x67, 0x46, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x66, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x46, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x55, 0x72, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x67, 0x69, 0x64, 0x2a, 0xec, 0x03, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x47, 0x6f, 0x6f, 0x64, 0x62, 0x79, 0x65, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x10, 0x0a, 0x12, 0x14, 0x0a, 0x10, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x10, 0x14, 0x12, 0x14, 0x0a, 0x10, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x10, 0x15, 0x12, 0x15, 0x0a, 0x11, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x10, 0x16, 0x12, 0x19, 0x0a, 0x15, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x50, 0x61, 0x75, 0x73, 0x65, 0x10, 0x17, 0x12, 0x14, 0x0a, 0x10, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x53, 0x65, 0x65, 0x6b, 0x10, 0x18, 0x12, 0x14, 0x0a, 0x10, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x50, 0x72, 0x65, 0x76, 0x10, 0x19, 0x12, 0x14, 0x0a, 0x10, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x10, 0x1a, 0x12, 0x16, 0x0a, 0x12, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x10, 0x1b, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x53, 0x68, 0x75, 0x66, 0x66, 0x6c, 0x65, 0x10, 0x1c, 0x12, 0x16, 0x0a, 0x12, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x10, 0x1d, 0x12, 0x1a, 0x0a, 0x16, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x10, 0x1f, 0x12, 0x18, 0x0a, 0x14, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x55, 0x70, 0x10, 0x20, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x10, 0x21, 0x12, 0x16, 0x0a, 0x12, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x10, 0x22, 0x12, 0x16, 0x0a, 0x12, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x23, 0x12, 0x16, 0x0a, 0x12, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0x24, 0x2a, 0xed, 0x01, 0x0a, 0x0e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x6b, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x6b, 0x43, 0x61, 0x6e, 0x42, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x6b, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x54, 0x6f, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x6b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x6b, 0x47, 0x61, 0x69, 0x61, 0x45, 0x71, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x49, 0x64, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x6b, 0x49, 0x73, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x62, 0x6c, 0x65, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x74, 0x65, 0x70, 0x73, 0x10, 0x08, 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x73, 0x10, 0x09, 0x12, 0x10, 0x0a, 0x0c, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x41, 0x63, 0x6b, 0x73, 0x10, 0x0a, 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0x0b, 0x2a, 0x64, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x50, 0x6c, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x53, 0x74, 0x6f, 0x70, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x50, 0x6c, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x6b, 0x50, 0x6c, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x50, 0x61, 0x75, 0x73, 0x65, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x6b, 0x50, 0x6c, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x03, 0x4a, 0xf0, 0x2a, 0x0a, 0x06, 0x12, 0x04, 0x00, 0x00, 0x78, 0x01, 0x0a, 0x08, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x00, 0x00, 0x12, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x00, 0x12, 0x04, 0x02, 0x00, 0x11, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, 0x01, 0x12, 0x03, 0x02, 0x08, 0x0d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, 0x03, 0x04, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x04, 0x12, 0x03, 0x03, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x05, 0x12, 0x03, 0x03, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x03, 0x14, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x03, 0x1e, 0x21, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x04, 0x04, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x04, 0x12, 0x03, 0x04, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x05, 0x12, 0x03, 0x04, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x04, 0x14, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x04, 0x1c, 0x1f, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x02, 0x12, 0x03, 0x05, 0x04, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x04, 0x12, 0x03, 0x05, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x05, 0x12, 0x03, 0x05, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x05, 0x14, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x03, 0x12, 0x03, 0x05, 0x27, 0x2a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x03, 0x12, 0x03, 0x06, 0x04, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x04, 0x12, 0x03, 0x06, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x05, 0x12, 0x03, 0x06, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x01, 0x12, 0x03, 0x06, 0x14, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x03, 0x12, 0x03, 0x06, 0x1d, 0x20, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x04, 0x12, 0x03, 0x07, 0x04, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x04, 0x12, 0x03, 0x07, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x06, 0x12, 0x03, 0x07, 0x0d, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x01, 0x12, 0x03, 0x07, 0x19, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x03, 0x12, 0x03, 0x07, 0x1f, 0x22, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x05, 0x12, 0x03, 0x08, 0x04, 0x2c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x04, 0x12, 0x03, 0x08, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x06, 0x12, 0x03, 0x08, 0x0d, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x01, 0x12, 0x03, 0x08, 0x19, 0x25, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x03, 0x12, 0x03, 0x08, 0x28, 0x2b, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x06, 0x12, 0x03, 0x09, 0x04, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x04, 0x12, 0x03, 0x09, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x06, 0x12, 0x03, 0x09, 0x0d, 0x14, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x01, 0x12, 0x03, 0x09, 0x15, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x03, 0x12, 0x03, 0x09, 0x1f, 0x22, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x07, 0x12, 0x03, 0x0a, 0x04, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x04, 0x12, 0x03, 0x0a, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x06, 0x12, 0x03, 0x0a, 0x0d, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x01, 0x12, 0x03, 0x0a, 0x13, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x03, 0x12, 0x03, 0x0a, 0x1b, 0x1e, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x08, 0x12, 0x03, 0x0b, 0x04, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x04, 0x12, 0x03, 0x0b, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x05, 0x12, 0x03, 0x0b, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x01, 0x12, 0x03, 0x0b, 0x14, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x03, 0x12, 0x03, 0x0b, 0x1f, 0x22, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x09, 0x12, 0x03, 0x0c, 0x04, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x04, 0x12, 0x03, 0x0c, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x05, 0x12, 0x03, 0x0c, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x01, 0x12, 0x03, 0x0c, 0x14, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x03, 0x12, 0x03, 0x0c, 0x1d, 0x20, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0a, 0x12, 0x03, 0x0d, 0x04, 0x2a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x04, 0x12, 0x03, 0x0d, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x05, 0x12, 0x03, 0x0d, 0x0d, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x01, 0x12, 0x03, 0x0d, 0x13, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x03, 0x12, 0x03, 0x0d, 0x25, 0x29, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0b, 0x12, 0x03, 0x0e, 0x04, 0x25, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, 0x04, 0x12, 0x03, 0x0e, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, 0x05, 0x12, 0x03, 0x0e, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, 0x01, 0x12, 0x03, 0x0e, 0x14, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, 0x03, 0x12, 0x03, 0x0e, 0x20, 0x24, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0c, 0x12, 0x03, 0x0f, 0x04, 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, 0x04, 0x12, 0x03, 0x0f, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, 0x05, 0x12, 0x03, 0x0f, 0x0d, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, 0x01, 0x12, 0x03, 0x0f, 0x13, 0x27, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, 0x03, 0x12, 0x03, 0x0f, 0x2a, 0x2e, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0d, 0x12, 0x03, 0x10, 0x04, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0d, 0x04, 0x12, 0x03, 0x10, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0d, 0x05, 0x12, 0x03, 0x10, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0d, 0x01, 0x12, 0x03, 0x10, 0x14, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0d, 0x03, 0x12, 0x03, 0x10, 0x1f, 0x23, 0x0a, 0x0a, 0x0a, 0x02, 0x05, 0x00, 0x12, 0x04, 0x13, 0x00, 0x28, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x05, 0x00, 0x01, 0x12, 0x03, 0x13, 0x05, 0x10, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x00, 0x12, 0x03, 0x14, 0x04, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x14, 0x04, 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x14, 0x18, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x01, 0x12, 0x03, 0x15, 0x04, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x15, 0x04, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, 0x02, 0x12, 0x03, 0x15, 0x1a, 0x1d, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x02, 0x12, 0x03, 0x16, 0x04, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x16, 0x04, 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, 0x02, 0x12, 0x03, 0x16, 0x18, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x03, 0x12, 0x03, 0x17, 0x04, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x03, 0x01, 0x12, 0x03, 0x17, 0x04, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x03, 0x02, 0x12, 0x03, 0x17, 0x19, 0x1c, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x04, 0x12, 0x03, 0x18, 0x04, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x04, 0x01, 0x12, 0x03, 0x18, 0x04, 0x14, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x04, 0x02, 0x12, 0x03, 0x18, 0x17, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x05, 0x12, 0x03, 0x19, 0x04, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x05, 0x01, 0x12, 0x03, 0x19, 0x04, 0x14, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x05, 0x02, 0x12, 0x03, 0x19, 0x17, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x06, 0x12, 0x03, 0x1a, 0x04, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x06, 0x01, 0x12, 0x03, 0x1a, 0x04, 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x06, 0x02, 0x12, 0x03, 0x1a, 0x18, 0x1c, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x07, 0x12, 0x03, 0x1b, 0x04, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x07, 0x01, 0x12, 0x03, 0x1b, 0x04, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x07, 0x02, 0x12, 0x03, 0x1b, 0x1c, 0x20, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x08, 0x12, 0x03, 0x1c, 0x04, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x08, 0x01, 0x12, 0x03, 0x1c, 0x04, 0x14, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x08, 0x02, 0x12, 0x03, 0x1c, 0x17, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x09, 0x12, 0x03, 0x1d, 0x04, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x09, 0x01, 0x12, 0x03, 0x1d, 0x04, 0x14, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x09, 0x02, 0x12, 0x03, 0x1d, 0x17, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x0a, 0x12, 0x03, 0x1e, 0x04, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0a, 0x01, 0x12, 0x03, 0x1e, 0x04, 0x14, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0a, 0x02, 0x12, 0x03, 0x1e, 0x17, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x0b, 0x12, 0x03, 0x1f, 0x04, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0b, 0x01, 0x12, 0x03, 0x1f, 0x04, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0b, 0x02, 0x12, 0x03, 0x1f, 0x19, 0x1d, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x0c, 0x12, 0x03, 0x20, 0x04, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0c, 0x01, 0x12, 0x03, 0x20, 0x04, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0c, 0x02, 0x12, 0x03, 0x20, 0x1a, 0x1e, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x0d, 0x12, 0x03, 0x21, 0x04, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0d, 0x01, 0x12, 0x03, 0x21, 0x04, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0d, 0x02, 0x12, 0x03, 0x21, 0x19, 0x1d, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x0e, 0x12, 0x03, 0x22, 0x04, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0e, 0x01, 0x12, 0x03, 0x22, 0x04, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0e, 0x02, 0x12, 0x03, 0x22, 0x1d, 0x21, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x0f, 0x12, 0x03, 0x23, 0x04, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0f, 0x01, 0x12, 0x03, 0x23, 0x04, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0f, 0x02, 0x12, 0x03, 0x23, 0x1b, 0x1f, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x10, 0x12, 0x03, 0x24, 0x04, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x10, 0x01, 0x12, 0x03, 0x24, 0x04, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x10, 0x02, 0x12, 0x03, 0x24, 0x1a, 0x1e, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x11, 0x12, 0x03, 0x25, 0x04, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x11, 0x01, 0x12, 0x03, 0x25, 0x04, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x11, 0x02, 0x12, 0x03, 0x25, 0x19, 0x1d, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x12, 0x12, 0x03, 0x26, 0x04, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x12, 0x01, 0x12, 0x03, 0x26, 0x04, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x12, 0x02, 0x12, 0x03, 0x26, 0x19, 0x1d, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x13, 0x12, 0x03, 0x27, 0x04, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x13, 0x01, 0x12, 0x03, 0x27, 0x04, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x13, 0x02, 0x12, 0x03, 0x27, 0x19, 0x1d, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x01, 0x12, 0x04, 0x2a, 0x00, 0x34, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x01, 0x01, 0x12, 0x03, 0x2a, 0x08, 0x13, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x00, 0x12, 0x03, 0x2b, 0x04, 0x25, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x04, 0x12, 0x03, 0x2b, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x05, 0x12, 0x03, 0x2b, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x01, 0x12, 0x03, 0x2b, 0x14, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x03, 0x12, 0x03, 0x2b, 0x21, 0x24, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x01, 0x12, 0x03, 0x2c, 0x04, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x04, 0x12, 0x03, 0x2c, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x05, 0x12, 0x03, 0x2c, 0x0d, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x01, 0x12, 0x03, 0x2c, 0x12, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x03, 0x12, 0x03, 0x2c, 0x1e, 0x21, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x02, 0x12, 0x03, 0x2d, 0x04, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x04, 0x12, 0x03, 0x2d, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x05, 0x12, 0x03, 0x2d, 0x0d, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x01, 0x12, 0x03, 0x2d, 0x12, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x03, 0x12, 0x03, 0x2d, 0x1d, 0x20, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x03, 0x12, 0x03, 0x2e, 0x04, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x04, 0x12, 0x03, 0x2e, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x05, 0x12, 0x03, 0x2e, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x01, 0x12, 0x03, 0x2e, 0x14, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x03, 0x12, 0x03, 0x2e, 0x1d, 0x20, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x04, 0x12, 0x03, 0x2f, 0x04, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x04, 0x12, 0x03, 0x2f, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x05, 0x12, 0x03, 0x2f, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x01, 0x12, 0x03, 0x2f, 0x14, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x03, 0x12, 0x03, 0x2f, 0x1b, 0x1e, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x05, 0x12, 0x03, 0x30, 0x04, 0x25, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x04, 0x12, 0x03, 0x30, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x05, 0x12, 0x03, 0x30, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x01, 0x12, 0x03, 0x30, 0x14, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x03, 0x12, 0x03, 0x30, 0x21, 0x24, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x06, 0x12, 0x03, 0x31, 0x04, 0x2a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x04, 0x12, 0x03, 0x31, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x05, 0x12, 0x03, 0x31, 0x0d, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x01, 0x12, 0x03, 0x31, 0x13, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x03, 0x12, 0x03, 0x31, 0x26, 0x29, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x07, 0x12, 0x03, 0x32, 0x04, 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x07, 0x04, 0x12, 0x03, 0x32, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x07, 0x05, 0x12, 0x03, 0x32, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x07, 0x01, 0x12, 0x03, 0x32, 0x14, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x07, 0x03, 0x12, 0x03, 0x32, 0x24, 0x28, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x08, 0x12, 0x03, 0x33, 0x04, 0x2c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x04, 0x12, 0x03, 0x33, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x06, 0x12, 0x03, 0x33, 0x0d, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x01, 0x12, 0x03, 0x33, 0x18, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x03, 0x12, 0x03, 0x33, 0x27, 0x2b, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x02, 0x12, 0x04, 0x36, 0x00, 0x3a, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x02, 0x01, 0x12, 0x03, 0x36, 0x08, 0x12, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x00, 0x12, 0x03, 0x37, 0x04, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x04, 0x12, 0x03, 0x37, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x06, 0x12, 0x03, 0x37, 0x0d, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x01, 0x12, 0x03, 0x37, 0x1c, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x03, 0x12, 0x03, 0x37, 0x22, 0x25, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x01, 0x12, 0x03, 0x38, 0x04, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x04, 0x12, 0x03, 0x38, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x05, 0x12, 0x03, 0x38, 0x0d, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x01, 0x12, 0x03, 0x38, 0x13, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x03, 0x12, 0x03, 0x38, 0x1e, 0x21, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x02, 0x12, 0x03, 0x39, 0x04, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x04, 0x12, 0x03, 0x39, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x05, 0x12, 0x03, 0x39, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x01, 0x12, 0x03, 0x39, 0x14, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x03, 0x12, 0x03, 0x39, 0x22, 0x25, 0x0a, 0x0a, 0x0a, 0x02, 0x05, 0x01, 0x12, 0x04, 0x3c, 0x00, 0x48, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x05, 0x01, 0x01, 0x12, 0x03, 0x3c, 0x05, 0x13, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x00, 0x12, 0x03, 0x3d, 0x04, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x00, 0x01, 0x12, 0x03, 0x3d, 0x04, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x00, 0x02, 0x12, 0x03, 0x3d, 0x19, 0x1c, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x01, 0x12, 0x03, 0x3e, 0x04, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x01, 0x01, 0x12, 0x03, 0x3e, 0x04, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x01, 0x02, 0x12, 0x03, 0x3e, 0x13, 0x16, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x02, 0x12, 0x03, 0x3f, 0x04, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x02, 0x01, 0x12, 0x03, 0x3f, 0x04, 0x14, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x02, 0x02, 0x12, 0x03, 0x3f, 0x17, 0x1a, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x03, 0x12, 0x03, 0x40, 0x04, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x03, 0x01, 0x12, 0x03, 0x40, 0x04, 0x0f, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x03, 0x02, 0x12, 0x03, 0x40, 0x12, 0x15, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x04, 0x12, 0x03, 0x41, 0x04, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x04, 0x01, 0x12, 0x03, 0x41, 0x04, 0x14, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x04, 0x02, 0x12, 0x03, 0x41, 0x17, 0x1a, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x05, 0x12, 0x03, 0x42, 0x04, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x05, 0x01, 0x12, 0x03, 0x42, 0x04, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x05, 0x02, 0x12, 0x03, 0x42, 0x16, 0x19, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x06, 0x12, 0x03, 0x43, 0x04, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x06, 0x01, 0x12, 0x03, 0x43, 0x04, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x06, 0x02, 0x12, 0x03, 0x43, 0x14, 0x17, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x07, 0x12, 0x03, 0x44, 0x04, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x07, 0x01, 0x12, 0x03, 0x44, 0x04, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x07, 0x02, 0x12, 0x03, 0x44, 0x13, 0x16, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x08, 0x12, 0x03, 0x45, 0x04, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x08, 0x01, 0x12, 0x03, 0x45, 0x04, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x08, 0x02, 0x12, 0x03, 0x45, 0x16, 0x19, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x09, 0x12, 0x03, 0x46, 0x04, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x09, 0x01, 0x12, 0x03, 0x46, 0x04, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x09, 0x02, 0x12, 0x03, 0x46, 0x13, 0x16, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x0a, 0x12, 0x03, 0x47, 0x04, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x0a, 0x01, 0x12, 0x03, 0x47, 0x04, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x0a, 0x02, 0x12, 0x03, 0x47, 0x16, 0x19, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x03, 0x12, 0x04, 0x4a, 0x00, 0x4c, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x03, 0x01, 0x12, 0x03, 0x4a, 0x08, 0x0f, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x00, 0x12, 0x03, 0x4b, 0x04, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x04, 0x12, 0x03, 0x4b, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x05, 0x12, 0x03, 0x4b, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x01, 0x12, 0x03, 0x4b, 0x14, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x03, 0x12, 0x03, 0x4b, 0x1d, 0x20, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x04, 0x12, 0x04, 0x4e, 0x00, 0x5e, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x04, 0x01, 0x12, 0x03, 0x4e, 0x08, 0x0d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x00, 0x12, 0x03, 0x4f, 0x04, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x04, 0x12, 0x03, 0x4f, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x05, 0x12, 0x03, 0x4f, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x01, 0x12, 0x03, 0x4f, 0x14, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x03, 0x12, 0x03, 0x4f, 0x22, 0x25, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x01, 0x12, 0x03, 0x50, 0x04, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x01, 0x04, 0x12, 0x03, 0x50, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x01, 0x05, 0x12, 0x03, 0x50, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x01, 0x01, 0x12, 0x03, 0x50, 0x14, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x01, 0x03, 0x12, 0x03, 0x50, 0x1c, 0x1f, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x02, 0x12, 0x03, 0x51, 0x04, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x02, 0x04, 0x12, 0x03, 0x51, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x02, 0x05, 0x12, 0x03, 0x51, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x02, 0x01, 0x12, 0x03, 0x51, 0x14, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x02, 0x03, 0x12, 0x03, 0x51, 0x22, 0x25, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x03, 0x12, 0x03, 0x52, 0x04, 0x25, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x03, 0x04, 0x12, 0x03, 0x52, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x03, 0x06, 0x12, 0x03, 0x52, 0x0d, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x03, 0x01, 0x12, 0x03, 0x52, 0x18, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x03, 0x03, 0x12, 0x03, 0x52, 0x21, 0x24, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x04, 0x12, 0x03, 0x53, 0x04, 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x04, 0x04, 0x12, 0x03, 0x53, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x04, 0x05, 0x12, 0x03, 0x53, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x04, 0x01, 0x12, 0x03, 0x53, 0x14, 0x28, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x04, 0x03, 0x12, 0x03, 0x53, 0x2b, 0x2e, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x05, 0x12, 0x03, 0x54, 0x04, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x05, 0x04, 0x12, 0x03, 0x54, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x05, 0x05, 0x12, 0x03, 0x54, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x05, 0x01, 0x12, 0x03, 0x54, 0x14, 0x27, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x05, 0x03, 0x12, 0x03, 0x54, 0x2a, 0x2d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x06, 0x12, 0x03, 0x55, 0x04, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x06, 0x04, 0x12, 0x03, 0x55, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x06, 0x05, 0x12, 0x03, 0x55, 0x0d, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x06, 0x01, 0x12, 0x03, 0x55, 0x12, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x06, 0x03, 0x12, 0x03, 0x55, 0x1c, 0x1f, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x07, 0x12, 0x03, 0x56, 0x04, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x07, 0x04, 0x12, 0x03, 0x56, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x07, 0x05, 0x12, 0x03, 0x56, 0x0d, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x07, 0x01, 0x12, 0x03, 0x56, 0x12, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x07, 0x03, 0x12, 0x03, 0x56, 0x1b, 0x1e, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x08, 0x12, 0x03, 0x57, 0x04, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x08, 0x04, 0x12, 0x03, 0x57, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x08, 0x05, 0x12, 0x03, 0x57, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x08, 0x01, 0x12, 0x03, 0x57, 0x14, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x08, 0x03, 0x12, 0x03, 0x57, 0x29, 0x2d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x09, 0x12, 0x03, 0x58, 0x04, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x09, 0x04, 0x12, 0x03, 0x58, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x09, 0x05, 0x12, 0x03, 0x58, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x09, 0x01, 0x12, 0x03, 0x58, 0x14, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x09, 0x03, 0x12, 0x03, 0x58, 0x29, 0x2d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x0a, 0x12, 0x03, 0x59, 0x04, 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0a, 0x04, 0x12, 0x03, 0x59, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0a, 0x05, 0x12, 0x03, 0x59, 0x0d, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0a, 0x01, 0x12, 0x03, 0x59, 0x12, 0x27, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0a, 0x03, 0x12, 0x03, 0x59, 0x2a, 0x2e, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x0b, 0x12, 0x03, 0x5a, 0x04, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0b, 0x04, 0x12, 0x03, 0x5a, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0b, 0x05, 0x12, 0x03, 0x5a, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0b, 0x01, 0x12, 0x03, 0x5a, 0x14, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0b, 0x03, 0x12, 0x03, 0x5a, 0x1a, 0x1e, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x0c, 0x12, 0x03, 0x5b, 0x04, 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0c, 0x04, 0x12, 0x03, 0x5b, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0c, 0x05, 0x12, 0x03, 0x5b, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0c, 0x01, 0x12, 0x03, 0x5b, 0x14, 0x27, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0c, 0x03, 0x12, 0x03, 0x5b, 0x2a, 0x2e, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x0d, 0x12, 0x03, 0x5c, 0x04, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0d, 0x04, 0x12, 0x03, 0x5c, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0d, 0x06, 0x12, 0x03, 0x5c, 0x0d, 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0d, 0x01, 0x12, 0x03, 0x5c, 0x16, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0d, 0x03, 0x12, 0x03, 0x5c, 0x1e, 0x22, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x04, 0x02, 0x0e, 0x12, 0x03, 0x5d, 0x04, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0e, 0x04, 0x12, 0x03, 0x5d, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0e, 0x06, 0x12, 0x03, 0x5d, 0x0d, 0x0f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0e, 0x01, 0x12, 0x03, 0x5d, 0x10, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x0e, 0x03, 0x12, 0x03, 0x5d, 0x15, 0x19, 0x0a, 0x0a, 0x0a, 0x02, 0x05, 0x02, 0x12, 0x04, 0x60, 0x00, 0x65, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x05, 0x02, 0x01, 0x12, 0x03, 0x60, 0x05, 0x0f, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x02, 0x02, 0x00, 0x12, 0x03, 0x61, 0x04, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x00, 0x01, 0x12, 0x03, 0x61, 0x04, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x00, 0x02, 0x12, 0x03, 0x61, 0x16, 0x19, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x02, 0x02, 0x01, 0x12, 0x03, 0x62, 0x04, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x01, 0x01, 0x12, 0x03, 0x62, 0x04, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x01, 0x02, 0x12, 0x03, 0x62, 0x16, 0x19, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x02, 0x02, 0x02, 0x12, 0x03, 0x63, 0x04, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x02, 0x01, 0x12, 0x03, 0x63, 0x04, 0x14, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x02, 0x02, 0x12, 0x03, 0x63, 0x17, 0x1a, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x02, 0x02, 0x03, 0x12, 0x03, 0x64, 0x04, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x03, 0x01, 0x12, 0x03, 0x64, 0x04, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x02, 0x02, 0x03, 0x02, 0x12, 0x03, 0x64, 0x19, 0x1c, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x05, 0x12, 0x04, 0x67, 0x00, 0x6c, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x05, 0x01, 0x12, 0x03, 0x67, 0x08, 0x10, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x05, 0x02, 0x00, 0x12, 0x03, 0x68, 0x04, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x04, 0x12, 0x03, 0x68, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x05, 0x12, 0x03, 0x68, 0x0d, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x01, 0x12, 0x03, 0x68, 0x13, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x03, 0x12, 0x03, 0x68, 0x19, 0x1c, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x05, 0x02, 0x01, 0x12, 0x03, 0x69, 0x04, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, 0x04, 0x12, 0x03, 0x69, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, 0x05, 0x12, 0x03, 0x69, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, 0x01, 0x12, 0x03, 0x69, 0x14, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, 0x03, 0x12, 0x03, 0x69, 0x1a, 0x1d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x05, 0x02, 0x02, 0x12, 0x03, 0x6a, 0x04, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x02, 0x04, 0x12, 0x03, 0x6a, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x02, 0x05, 0x12, 0x03, 0x6a, 0x0d, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x02, 0x01, 0x12, 0x03, 0x6a, 0x12, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x02, 0x03, 0x12, 0x03, 0x6a, 0x1b, 0x1e, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x05, 0x02, 0x03, 0x12, 0x03, 0x6b, 0x04, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x03, 0x04, 0x12, 0x03, 0x6b, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x03, 0x05, 0x12, 0x03, 0x6b, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x03, 0x01, 0x12, 0x03, 0x6b, 0x14, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x03, 0x03, 0x12, 0x03, 0x6b, 0x1e, 0x21, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x06, 0x12, 0x04, 0x6e, 0x00, 0x78, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x06, 0x01, 0x12, 0x03, 0x6e, 0x08, 0x0a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x00, 0x12, 0x03, 0x6f, 0x04, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x04, 0x12, 0x03, 0x6f, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x05, 0x12, 0x03, 0x6f, 0x0d, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x01, 0x12, 0x03, 0x6f, 0x13, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x03, 0x12, 0x03, 0x6f, 0x1a, 0x1d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x01, 0x12, 0x03, 0x70, 0x04, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x01, 0x04, 0x12, 0x03, 0x70, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x01, 0x05, 0x12, 0x03, 0x70, 0x0d, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x01, 0x01, 0x12, 0x03, 0x70, 0x13, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x01, 0x03, 0x12, 0x03, 0x70, 0x1d, 0x20, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x02, 0x12, 0x03, 0x71, 0x04, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x04, 0x12, 0x03, 0x71, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x05, 0x12, 0x03, 0x71, 0x0d, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x01, 0x12, 0x03, 0x71, 0x13, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x03, 0x12, 0x03, 0x71, 0x1f, 0x22, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x03, 0x12, 0x03, 0x72, 0x04, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x03, 0x04, 0x12, 0x03, 0x72, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x03, 0x05, 0x12, 0x03, 0x72, 0x0d, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x03, 0x01, 0x12, 0x03, 0x72, 0x13, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x03, 0x03, 0x12, 0x03, 0x72, 0x1e, 0x21, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x04, 0x12, 0x03, 0x73, 0x04, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x04, 0x04, 0x12, 0x03, 0x73, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x04, 0x05, 0x12, 0x03, 0x73, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x04, 0x01, 0x12, 0x03, 0x73, 0x14, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x04, 0x03, 0x12, 0x03, 0x73, 0x20, 0x23, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x05, 0x12, 0x03, 0x74, 0x04, 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x05, 0x04, 0x12, 0x03, 0x74, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x05, 0x05, 0x12, 0x03, 0x74, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x05, 0x01, 0x12, 0x03, 0x74, 0x14, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x05, 0x03, 0x12, 0x03, 0x74, 0x25, 0x28, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x06, 0x12, 0x03, 0x75, 0x04, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x06, 0x04, 0x12, 0x03, 0x75, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x06, 0x05, 0x12, 0x03, 0x75, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x06, 0x01, 0x12, 0x03, 0x75, 0x14, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x06, 0x03, 0x12, 0x03, 0x75, 0x1e, 0x21, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x07, 0x12, 0x03, 0x76, 0x04, 0x25, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x07, 0x04, 0x12, 0x03, 0x76, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x07, 0x05, 0x12, 0x03, 0x76, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x07, 0x01, 0x12, 0x03, 0x76, 0x14, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x07, 0x03, 0x12, 0x03, 0x76, 0x21, 0x24, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x08, 0x12, 0x03, 0x77, 0x04, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x08, 0x04, 0x12, 0x03, 0x77, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x08, 0x05, 0x12, 0x03, 0x77, 0x0d, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x08, 0x01, 0x12, 0x03, 0x77, 0x13, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x08, 0x03, 0x12, 0x03, 0x77, 0x19, 0x1c, ]; static mut file_descriptor_proto_lazy: ::protobuf::lazy::Lazy<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::lazy::Lazy { lock: ::protobuf::lazy::ONCE_INIT, ptr: 0 as *const ::protobuf::descriptor::FileDescriptorProto, }; fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto { ::protobuf::parse_from_bytes(file_descriptor_proto_data).unwrap() } pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto { unsafe { file_descriptor_proto_lazy.get(|| { parse_descriptor_proto() }) } }