#![allow(unknown_lints)]
#![allow(clippy::all)]
#![allow(unused_attributes)]
#![cfg_attr(rustfmt, rustfmt::skip)]
#![allow(box_pointers)]
#![allow(dead_code)]
#![allow(missing_docs)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![allow(non_upper_case_globals)]
#![allow(trivial_casts)]
#![allow(unused_imports)]
#![allow(unused_results)]
#[derive(PartialEq,Clone,Default)]
pub struct Address {
pub address_type: ::std::option::Option<Address_oneof_address_type>,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a Address {
fn default() -> &'a Address {
<Address as ::protobuf::Message>::default_instance()
}
}
#[derive(Clone,PartialEq,Debug)]
pub enum Address_oneof_address_type {
xpub(Bip32Public),
plain_address(::std::string::String),
}
impl Address {
pub fn new() -> Address {
::std::default::Default::default()
}
pub fn get_xpub(&self) -> &Bip32Public {
match self.address_type {
::std::option::Option::Some(Address_oneof_address_type::xpub(ref v)) => v,
_ => <Bip32Public as ::protobuf::Message>::default_instance(),
}
}
pub fn clear_xpub(&mut self) {
self.address_type = ::std::option::Option::None;
}
pub fn has_xpub(&self) -> bool {
match self.address_type {
::std::option::Option::Some(Address_oneof_address_type::xpub(..)) => true,
_ => false,
}
}
pub fn set_xpub(&mut self, v: Bip32Public) {
self.address_type = ::std::option::Option::Some(Address_oneof_address_type::xpub(v))
}
pub fn mut_xpub(&mut self) -> &mut Bip32Public {
if let ::std::option::Option::Some(Address_oneof_address_type::xpub(_)) = self.address_type {
} else {
self.address_type = ::std::option::Option::Some(Address_oneof_address_type::xpub(Bip32Public::new()));
}
match self.address_type {
::std::option::Option::Some(Address_oneof_address_type::xpub(ref mut v)) => v,
_ => panic!(),
}
}
pub fn take_xpub(&mut self) -> Bip32Public {
if self.has_xpub() {
match self.address_type.take() {
::std::option::Option::Some(Address_oneof_address_type::xpub(v)) => v,
_ => panic!(),
}
} else {
Bip32Public::new()
}
}
pub fn get_plain_address(&self) -> &str {
match self.address_type {
::std::option::Option::Some(Address_oneof_address_type::plain_address(ref v)) => v,
_ => "",
}
}
pub fn clear_plain_address(&mut self) {
self.address_type = ::std::option::Option::None;
}
pub fn has_plain_address(&self) -> bool {
match self.address_type {
::std::option::Option::Some(Address_oneof_address_type::plain_address(..)) => true,
_ => false,
}
}
pub fn set_plain_address(&mut self, v: ::std::string::String) {
self.address_type = ::std::option::Option::Some(Address_oneof_address_type::plain_address(v))
}
pub fn mut_plain_address(&mut self) -> &mut ::std::string::String {
if let ::std::option::Option::Some(Address_oneof_address_type::plain_address(_)) = self.address_type {
} else {
self.address_type = ::std::option::Option::Some(Address_oneof_address_type::plain_address(::std::string::String::new()));
}
match self.address_type {
::std::option::Option::Some(Address_oneof_address_type::plain_address(ref mut v)) => v,
_ => panic!(),
}
}
pub fn take_plain_address(&mut self) -> ::std::string::String {
if self.has_plain_address() {
match self.address_type.take() {
::std::option::Option::Some(Address_oneof_address_type::plain_address(v)) => v,
_ => panic!(),
}
} else {
::std::string::String::new()
}
}
}
impl ::protobuf::Message for Address {
fn is_initialized(&self) -> bool {
if let Some(Address_oneof_address_type::xpub(ref v)) = self.address_type {
if !v.is_initialized() {
return false;
}
}
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
while !is.eof()? {
let (field_number, wire_type) = is.read_tag_unpack()?;
match field_number {
1 => {
if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
self.address_type = ::std::option::Option::Some(Address_oneof_address_type::xpub(is.read_message()?));
},
3 => {
if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
self.address_type = ::std::option::Option::Some(Address_oneof_address_type::plain_address(is.read_string()?));
},
_ => {
::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u32 {
let mut my_size = 0;
if let ::std::option::Option::Some(ref v) = self.address_type {
match v {
&Address_oneof_address_type::xpub(ref v) => {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
},
&Address_oneof_address_type::plain_address(ref v) => {
my_size += ::protobuf::rt::string_size(3, &v);
},
};
}
my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
self.cached_size.set(my_size);
my_size
}
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
if let ::std::option::Option::Some(ref v) = self.address_type {
match v {
&Address_oneof_address_type::xpub(ref v) => {
os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
},
&Address_oneof_address_type::plain_address(ref v) => {
os.write_string(3, v)?;
},
};
}
os.write_unknown_fields(self.get_unknown_fields())?;
::std::result::Result::Ok(())
}
fn get_cached_size(&self) -> u32 {
self.cached_size.get()
}
fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
&self.unknown_fields
}
fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
&mut self.unknown_fields
}
fn as_any(&self) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> Address {
Address::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, Bip32Public>(
"xpub",
Address::has_xpub,
Address::get_xpub,
));
fields.push(::protobuf::reflect::accessor::make_singular_string_accessor::<_>(
"plain_address",
Address::has_plain_address,
Address::get_plain_address,
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<Address>(
"Address",
fields,
file_descriptor_proto(),
)
})
}
fn default_instance() -> &'static Address {
static instance: ::protobuf::rt::LazyV2<Address> = ::protobuf::rt::LazyV2::INIT;
instance.get(Address::new)
}
}
impl ::protobuf::Clear for Address {
fn clear(&mut self) {
self.address_type = ::std::option::Option::None;
self.address_type = ::std::option::Option::None;
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for Address {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for Address {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct Bip32Public {
pub level: u32,
pub parent_fingerprint: u32,
pub child_number: u32,
pub chaincode: ::std::vec::Vec<u8>,
pub point: ::std::vec::Vec<u8>,
pub address_type: AddressType,
pub network: super::common::BlockchainId,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a Bip32Public {
fn default() -> &'a Bip32Public {
<Bip32Public as ::protobuf::Message>::default_instance()
}
}
impl Bip32Public {
pub fn new() -> Bip32Public {
::std::default::Default::default()
}
pub fn get_level(&self) -> u32 {
self.level
}
pub fn clear_level(&mut self) {
self.level = 0;
}
pub fn set_level(&mut self, v: u32) {
self.level = v;
}
pub fn get_parent_fingerprint(&self) -> u32 {
self.parent_fingerprint
}
pub fn clear_parent_fingerprint(&mut self) {
self.parent_fingerprint = 0;
}
pub fn set_parent_fingerprint(&mut self, v: u32) {
self.parent_fingerprint = v;
}
pub fn get_child_number(&self) -> u32 {
self.child_number
}
pub fn clear_child_number(&mut self) {
self.child_number = 0;
}
pub fn set_child_number(&mut self, v: u32) {
self.child_number = v;
}
pub fn get_chaincode(&self) -> &[u8] {
&self.chaincode
}
pub fn clear_chaincode(&mut self) {
self.chaincode.clear();
}
pub fn set_chaincode(&mut self, v: ::std::vec::Vec<u8>) {
self.chaincode = v;
}
pub fn mut_chaincode(&mut self) -> &mut ::std::vec::Vec<u8> {
&mut self.chaincode
}
pub fn take_chaincode(&mut self) -> ::std::vec::Vec<u8> {
::std::mem::replace(&mut self.chaincode, ::std::vec::Vec::new())
}
pub fn get_point(&self) -> &[u8] {
&self.point
}
pub fn clear_point(&mut self) {
self.point.clear();
}
pub fn set_point(&mut self, v: ::std::vec::Vec<u8>) {
self.point = v;
}
pub fn mut_point(&mut self) -> &mut ::std::vec::Vec<u8> {
&mut self.point
}
pub fn take_point(&mut self) -> ::std::vec::Vec<u8> {
::std::mem::replace(&mut self.point, ::std::vec::Vec::new())
}
pub fn get_address_type(&self) -> AddressType {
self.address_type
}
pub fn clear_address_type(&mut self) {
self.address_type = AddressType::UNSPECIFIED;
}
pub fn set_address_type(&mut self, v: AddressType) {
self.address_type = v;
}
pub fn get_network(&self) -> super::common::BlockchainId {
self.network
}
pub fn clear_network(&mut self) {
self.network = super::common::BlockchainId::CHAIN_UNSPECIFIED;
}
pub fn set_network(&mut self, v: super::common::BlockchainId) {
self.network = v;
}
}
impl ::protobuf::Message for Bip32Public {
fn is_initialized(&self) -> bool {
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
while !is.eof()? {
let (field_number, wire_type) = is.read_tag_unpack()?;
match field_number {
1 => {
if wire_type != ::protobuf::wire_format::WireTypeVarint {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
let tmp = is.read_uint32()?;
self.level = tmp;
},
2 => {
if wire_type != ::protobuf::wire_format::WireTypeVarint {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
let tmp = is.read_uint32()?;
self.parent_fingerprint = tmp;
},
3 => {
if wire_type != ::protobuf::wire_format::WireTypeVarint {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
let tmp = is.read_uint32()?;
self.child_number = tmp;
},
4 => {
::protobuf::rt::read_singular_proto3_bytes_into(wire_type, is, &mut self.chaincode)?;
},
5 => {
::protobuf::rt::read_singular_proto3_bytes_into(wire_type, is, &mut self.point)?;
},
6 => {
::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.address_type, 6, &mut self.unknown_fields)?
},
7 => {
::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.network, 7, &mut self.unknown_fields)?
},
_ => {
::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u32 {
let mut my_size = 0;
if self.level != 0 {
my_size += ::protobuf::rt::value_size(1, self.level, ::protobuf::wire_format::WireTypeVarint);
}
if self.parent_fingerprint != 0 {
my_size += ::protobuf::rt::value_size(2, self.parent_fingerprint, ::protobuf::wire_format::WireTypeVarint);
}
if self.child_number != 0 {
my_size += ::protobuf::rt::value_size(3, self.child_number, ::protobuf::wire_format::WireTypeVarint);
}
if !self.chaincode.is_empty() {
my_size += ::protobuf::rt::bytes_size(4, &self.chaincode);
}
if !self.point.is_empty() {
my_size += ::protobuf::rt::bytes_size(5, &self.point);
}
if self.address_type != AddressType::UNSPECIFIED {
my_size += ::protobuf::rt::enum_size(6, self.address_type);
}
if self.network != super::common::BlockchainId::CHAIN_UNSPECIFIED {
my_size += ::protobuf::rt::enum_size(7, self.network);
}
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 self.level != 0 {
os.write_uint32(1, self.level)?;
}
if self.parent_fingerprint != 0 {
os.write_uint32(2, self.parent_fingerprint)?;
}
if self.child_number != 0 {
os.write_uint32(3, self.child_number)?;
}
if !self.chaincode.is_empty() {
os.write_bytes(4, &self.chaincode)?;
}
if !self.point.is_empty() {
os.write_bytes(5, &self.point)?;
}
if self.address_type != AddressType::UNSPECIFIED {
os.write_enum(6, ::protobuf::ProtobufEnum::value(&self.address_type))?;
}
if self.network != super::common::BlockchainId::CHAIN_UNSPECIFIED {
os.write_enum(7, ::protobuf::ProtobufEnum::value(&self.network))?;
}
os.write_unknown_fields(self.get_unknown_fields())?;
::std::result::Result::Ok(())
}
fn get_cached_size(&self) -> u32 {
self.cached_size.get()
}
fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
&self.unknown_fields
}
fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
&mut self.unknown_fields
}
fn as_any(&self) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> Bip32Public {
Bip32Public::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
"level",
|m: &Bip32Public| { &m.level },
|m: &mut Bip32Public| { &mut m.level },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
"parent_fingerprint",
|m: &Bip32Public| { &m.parent_fingerprint },
|m: &mut Bip32Public| { &mut m.parent_fingerprint },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
"child_number",
|m: &Bip32Public| { &m.child_number },
|m: &mut Bip32Public| { &mut m.child_number },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBytes>(
"chaincode",
|m: &Bip32Public| { &m.chaincode },
|m: &mut Bip32Public| { &mut m.chaincode },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBytes>(
"point",
|m: &Bip32Public| { &m.point },
|m: &mut Bip32Public| { &mut m.point },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<AddressType>>(
"address_type",
|m: &Bip32Public| { &m.address_type },
|m: &mut Bip32Public| { &mut m.address_type },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<super::common::BlockchainId>>(
"network",
|m: &Bip32Public| { &m.network },
|m: &mut Bip32Public| { &mut m.network },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<Bip32Public>(
"Bip32Public",
fields,
file_descriptor_proto(),
)
})
}
fn default_instance() -> &'static Bip32Public {
static instance: ::protobuf::rt::LazyV2<Bip32Public> = ::protobuf::rt::LazyV2::INIT;
instance.get(Bip32Public::new)
}
}
impl ::protobuf::Clear for Bip32Public {
fn clear(&mut self) {
self.level = 0;
self.parent_fingerprint = 0;
self.child_number = 0;
self.chaincode.clear();
self.point.clear();
self.address_type = AddressType::UNSPECIFIED;
self.network = super::common::BlockchainId::CHAIN_UNSPECIFIED;
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for Bip32Public {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for Bip32Public {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(Clone, PartialEq, Eq, Debug, Hash)]
pub enum AddressType {
UNSPECIFIED = 0,
BITCOIN_P2WPKH = 1,
BITCOIN_P2WSH = 2,
BITCOIN_P2PKH = 3,
BITCOIN_P2SH = 4,
BITCOIN_P2WPKH_P2SH = 5,
BITCOIN_P2WSH_P2SH = 6,
ETHEREUM = 10,
}
impl ::protobuf::ProtobufEnum for AddressType {
fn value(&self) -> i32 {
*self as i32
}
fn from_i32(value: i32) -> ::std::option::Option<AddressType> {
match value {
0 => ::std::option::Option::Some(AddressType::UNSPECIFIED),
1 => ::std::option::Option::Some(AddressType::BITCOIN_P2WPKH),
2 => ::std::option::Option::Some(AddressType::BITCOIN_P2WSH),
3 => ::std::option::Option::Some(AddressType::BITCOIN_P2PKH),
4 => ::std::option::Option::Some(AddressType::BITCOIN_P2SH),
5 => ::std::option::Option::Some(AddressType::BITCOIN_P2WPKH_P2SH),
6 => ::std::option::Option::Some(AddressType::BITCOIN_P2WSH_P2SH),
10 => ::std::option::Option::Some(AddressType::ETHEREUM),
_ => ::std::option::Option::None
}
}
fn values() -> &'static [Self] {
static values: &'static [AddressType] = &[
AddressType::UNSPECIFIED,
AddressType::BITCOIN_P2WPKH,
AddressType::BITCOIN_P2WSH,
AddressType::BITCOIN_P2PKH,
AddressType::BITCOIN_P2SH,
AddressType::BITCOIN_P2WPKH_P2SH,
AddressType::BITCOIN_P2WSH_P2SH,
AddressType::ETHEREUM,
];
values
}
fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
::protobuf::reflect::EnumDescriptor::new_pb_name::<AddressType>("AddressType", file_descriptor_proto())
})
}
}
impl ::std::marker::Copy for AddressType {}
impl ::std::default::Default for AddressType {
fn default() -> Self {
AddressType::UNSPECIFIED
}
}
impl ::protobuf::reflect::ProtobufValue for AddressType {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
}
}
static file_descriptor_proto_data: &'static [u8] = b"\
\n\raddress.proto\x12\remerald.vault\x1a\x0ccommon.proto\"r\n\x07Address\
\x120\n\x04xpub\x18\x01\x20\x01(\x0b2\x1a.emerald.vault.Bip32PublicH\0R\
\x04xpub\x12%\n\rplain_address\x18\x03\x20\x01(\tH\0R\x0cplainAddressB\
\x0e\n\x0caddress_type\"\x9f\x02\n\x0bBip32Public\x12\x14\n\x05level\x18\
\x01\x20\x01(\rR\x05level\x12-\n\x12parent_fingerprint\x18\x02\x20\x01(\
\rR\x11parentFingerprint\x12!\n\x0cchild_number\x18\x03\x20\x01(\rR\x0bc\
hildNumber\x12\x1c\n\tchaincode\x18\x04\x20\x01(\x0cR\tchaincode\x12\x14\
\n\x05point\x18\x05\x20\x01(\x0cR\x05point\x12=\n\x0caddress_type\x18\
\x06\x20\x01(\x0e2\x1a.emerald.vault.AddressTypeR\x0baddressType\x125\n\
\x07network\x18\x07\x20\x01(\x0e2\x1b.emerald.vault.BlockchainIdR\x07net\
work*\xa9\x01\n\x0bAddressType\x12\x0f\n\x0bUNSPECIFIED\x10\0\x12\x12\n\
\x0eBITCOIN_P2WPKH\x10\x01\x12\x11\n\rBITCOIN_P2WSH\x10\x02\x12\x11\n\rB\
ITCOIN_P2PKH\x10\x03\x12\x10\n\x0cBITCOIN_P2SH\x10\x04\x12\x17\n\x13BITC\
OIN_P2WPKH_P2SH\x10\x05\x12\x16\n\x12BITCOIN_P2WSH_P2SH\x10\x06\x12\x0c\
\n\x08ETHEREUM\x10\nJ\xc2\x07\n\x06\x12\x04\0\0\x1e\x01\n\x08\n\x01\x0c\
\x12\x03\0\0\x12\n\x08\n\x01\x02\x12\x03\x01\0\x16\n\t\n\x02\x03\0\x12\
\x03\x02\0\x16\n\n\n\x02\x04\0\x12\x04\x04\0\t\x01\n\n\n\x03\x04\0\x01\
\x12\x03\x04\x08\x0f\n\x0c\n\x04\x04\0\x08\0\x12\x04\x05\x04\x08\x05\n\
\x0c\n\x05\x04\0\x08\0\x01\x12\x03\x05\n\x16\n\x0b\n\x04\x04\0\x02\0\x12\
\x03\x06\x08\x1d\n\x0c\n\x05\x04\0\x02\0\x06\x12\x03\x06\x08\x13\n\x0c\n\
\x05\x04\0\x02\0\x01\x12\x03\x06\x14\x18\n\x0c\n\x05\x04\0\x02\0\x03\x12\
\x03\x06\x1b\x1c\n\x0b\n\x04\x04\0\x02\x01\x12\x03\x07\x08!\n\x0c\n\x05\
\x04\0\x02\x01\x05\x12\x03\x07\x08\x0e\n\x0c\n\x05\x04\0\x02\x01\x01\x12\
\x03\x07\x0f\x1c\n\x0c\n\x05\x04\0\x02\x01\x03\x12\x03\x07\x1f\x20\n\n\n\
\x02\x04\x01\x12\x04\x0b\0\x13\x01\n\n\n\x03\x04\x01\x01\x12\x03\x0b\x08\
\x13\n\x0b\n\x04\x04\x01\x02\0\x12\x03\x0c\x04\x15\n\x0c\n\x05\x04\x01\
\x02\0\x05\x12\x03\x0c\x04\n\n\x0c\n\x05\x04\x01\x02\0\x01\x12\x03\x0c\
\x0b\x10\n\x0c\n\x05\x04\x01\x02\0\x03\x12\x03\x0c\x13\x14\n\x0b\n\x04\
\x04\x01\x02\x01\x12\x03\r\x04\"\n\x0c\n\x05\x04\x01\x02\x01\x05\x12\x03\
\r\x04\n\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03\r\x0b\x1d\n\x0c\n\x05\
\x04\x01\x02\x01\x03\x12\x03\r\x20!\n\x0b\n\x04\x04\x01\x02\x02\x12\x03\
\x0e\x04\x1c\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\x03\x0e\x04\n\n\x0c\n\
\x05\x04\x01\x02\x02\x01\x12\x03\x0e\x0b\x17\n\x0c\n\x05\x04\x01\x02\x02\
\x03\x12\x03\x0e\x1a\x1b\n\x0b\n\x04\x04\x01\x02\x03\x12\x03\x0f\x04\x18\
\n\x0c\n\x05\x04\x01\x02\x03\x05\x12\x03\x0f\x04\t\n\x0c\n\x05\x04\x01\
\x02\x03\x01\x12\x03\x0f\n\x13\n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x03\
\x0f\x16\x17\n\x0b\n\x04\x04\x01\x02\x04\x12\x03\x10\x04\x14\n\x0c\n\x05\
\x04\x01\x02\x04\x05\x12\x03\x10\x04\t\n\x0c\n\x05\x04\x01\x02\x04\x01\
\x12\x03\x10\n\x0f\n\x0c\n\x05\x04\x01\x02\x04\x03\x12\x03\x10\x12\x13\n\
\x0b\n\x04\x04\x01\x02\x05\x12\x03\x11\x04!\n\x0c\n\x05\x04\x01\x02\x05\
\x06\x12\x03\x11\x04\x0f\n\x0c\n\x05\x04\x01\x02\x05\x01\x12\x03\x11\x10\
\x1c\n\x0c\n\x05\x04\x01\x02\x05\x03\x12\x03\x11\x1f\x20\n\x0b\n\x04\x04\
\x01\x02\x06\x12\x03\x12\x04\x1d\n\x0c\n\x05\x04\x01\x02\x06\x06\x12\x03\
\x12\x04\x10\n\x0c\n\x05\x04\x01\x02\x06\x01\x12\x03\x12\x11\x18\n\x0c\n\
\x05\x04\x01\x02\x06\x03\x12\x03\x12\x1b\x1c\n\n\n\x02\x05\0\x12\x04\x15\
\0\x1e\x01\n\n\n\x03\x05\0\x01\x12\x03\x15\x05\x10\n\x0b\n\x04\x05\0\x02\
\0\x12\x03\x16\x04\x14\n\x0c\n\x05\x05\0\x02\0\x01\x12\x03\x16\x04\x0f\n\
\x0c\n\x05\x05\0\x02\0\x02\x12\x03\x16\x12\x13\n\x0b\n\x04\x05\0\x02\x01\
\x12\x03\x17\x04\x17\n\x0c\n\x05\x05\0\x02\x01\x01\x12\x03\x17\x04\x12\n\
\x0c\n\x05\x05\0\x02\x01\x02\x12\x03\x17\x15\x16\n\x0b\n\x04\x05\0\x02\
\x02\x12\x03\x18\x04\x16\n\x0c\n\x05\x05\0\x02\x02\x01\x12\x03\x18\x04\
\x11\n\x0c\n\x05\x05\0\x02\x02\x02\x12\x03\x18\x14\x15\n\x0b\n\x04\x05\0\
\x02\x03\x12\x03\x19\x04\x16\n\x0c\n\x05\x05\0\x02\x03\x01\x12\x03\x19\
\x04\x11\n\x0c\n\x05\x05\0\x02\x03\x02\x12\x03\x19\x14\x15\n\x0b\n\x04\
\x05\0\x02\x04\x12\x03\x1a\x04\x15\n\x0c\n\x05\x05\0\x02\x04\x01\x12\x03\
\x1a\x04\x10\n\x0c\n\x05\x05\0\x02\x04\x02\x12\x03\x1a\x13\x14\n\x0b\n\
\x04\x05\0\x02\x05\x12\x03\x1b\x04\x1c\n\x0c\n\x05\x05\0\x02\x05\x01\x12\
\x03\x1b\x04\x17\n\x0c\n\x05\x05\0\x02\x05\x02\x12\x03\x1b\x1a\x1b\n\x0b\
\n\x04\x05\0\x02\x06\x12\x03\x1c\x04\x1b\n\x0c\n\x05\x05\0\x02\x06\x01\
\x12\x03\x1c\x04\x16\n\x0c\n\x05\x05\0\x02\x06\x02\x12\x03\x1c\x19\x1a\n\
\x0b\n\x04\x05\0\x02\x07\x12\x03\x1d\x04\x12\n\x0c\n\x05\x05\0\x02\x07\
\x01\x12\x03\x1d\x04\x0c\n\x0c\n\x05\x05\0\x02\x07\x02\x12\x03\x1d\x0f\
\x11b\x06proto3\
";
static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;
fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
::protobuf::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
}
pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
file_descriptor_proto_lazy.get(|| {
parse_descriptor_proto()
})
}